![]() |
|
|
Planilha de Dimensionamento de Tubulações
Hidráulicas Água Fria e Água Quente CompletaNossa planilha automática de dimensionamento de tubulações de água fria e quente é uma ferramenta desenvolvida para auxiliar engenheiros e projetistas no cálculo rápido e preciso das redes hidráulicas de edificaçoes. Por meio da inserçao de dados como vazao, diâmetro da tubulaçao, comprimento da rede, material do tubo e coeficientes hidráulicos, a planilha realiza automaticamente os cálculos necessários para verificar velocidade da água, perda de carga e dimensionamento adequado das tubulaçoes. |
||
Você está aqui: Cards de Python |
||
|
||
|
|
||
Java ::: Java + MySQL ::: Metadados da Base de Dados (Database Metadata) |
Java MySQL - Como obter uma lista das funções de data e hora suportadas pelo MySQL usando o método getTimeDateFunctions() da interface DatabaseMetaDataQuantidade de visualizações: 5982 vezes |
|
Em algumas situações gostaríamos de, via código, obter uma lista das funções de data e hora suportadas pelo MySQL. Para isso podemos usar o método getTimeDateFunctions() da interface DatabaseMetaData. É importante observar que, no Sun Microsystem's JDBC Driver for MySQL, a interface DatabaseMetaData é implementada por uma classe do mesmo nome, no pacote com.mysql.jdbc.DatabaseMetaData. E esta classe implementa o método getTimeDateFunctions() de forma a retornar a lista de funções de data e hora separadas por vírgulas. Veja um trecho de código Java no qual listamos todas as funções de data e hora suportados no MySQL 5.0:
package estudosbancodados;
import java.sql.Connection;
import java.sql.DatabaseMetaData;
import java.sql.DriverManager;
import java.sql.SQLException;
public class EstudosBancoDados{
public static void main(String[] args) {
// strings de conexão
String databaseURL = "jdbc:mysql://localhost/estudos";
String usuario = "root";
String senha = "osmar1234";
String driverName = "com.mysql.jdbc.Driver";
try {
Class.forName(driverName).newInstance();
Connection conn = DriverManager.getConnection(databaseURL, usuario, senha);
// vamos obter um objeto da classe com.mysql.jdbc.DatabaseMetaData
DatabaseMetaData dbmd = conn.getMetaData();
// vamos obter a lista de funções de data e hora disponíveis
// nesta versão do MySQL
String funcoesDataHora = dbmd.getTimeDateFunctions();
// como a lista de funções está separada por vírgulas, vamos obter
// uma matriz de strings
String funcoes[] = funcoesDataHora.split(",");
// vamos mostrar o resultado
for(int i = 0; i < funcoes.length; i++){
System.out.println(funcoes[i]);
}
}
catch (SQLException ex) {
System.out.println("SQLException: " + ex.getMessage());
System.out.println("SQLState: " + ex.getSQLState());
System.out.println("VendorError: " + ex.getErrorCode());
}
catch (Exception e) {
System.out.println("Problemas ao tentar conectar com o banco de dados: " + e);
}
}
}
Ao executarmos este código teremos o seguinte resultado: DAYOFWEEK WEEKDAY DAYOFMONTH DAYOFYEAR MONTH DAYNAME MONTHNAME QUARTER WEEK YEAR HOUR MINUTE SECOND PERIOD_ADD PERIOD_DIFF TO_DAYS FROM_DAYS DATE_FORMAT TIME_FORMAT CURDATE CURRENT_DATE CURTIME CURRENT_TIME NOW SYSDATE CURRENT_TIMESTAMP UNIX_TIMESTAMP FROM_UNIXTIME SEC_TO_TIME TIME_TO_SEC |
Java ::: Desafios e Lista de Exercícios Resolvidos ::: Matemática e Estatística |
Exercício Resolvido de Java - Escreva um programa Java que pede um número inteiro e informa se o número informado é um número de ArmstrongQuantidade de visualizações: 1507 vezes |
|
Pergunta/Tarefa: Um número é chamado de número de Armstrong quando a soma de cada um dos seus dígitos, elevado à quantidade de dígitos do número, equivale ao próprio número. Por exemplo, 153 e 93084 são números de Armstrong, já que: 153 = 13 + 53 + 33 93084 = 95 + 35 + 05 + 85 + 45 Escreva um programa Java que pede para o usuário informar um número inteiro e informa se o número informado é um número de Armstrong ou não. Seu código deve usar apenas os operadores matemáticos disponíveis na linguagem Java. Sua saída deverá ser parecida com: Informe um número inteiro: 153 O número informado é um número de Armstrong Veja a resolução comentada deste exercício usando Java:
package estudos;
import java.util.Scanner;
public class Estudos{
public static void main(String args[]){
// para efetuar a leitura da entrada do usuário
Scanner entrada = new Scanner(System.in);
// vamos pedir para o usuário informar um número
System.out.print("Informe um número inteiro: ");
int numero = Integer.parseInt(entrada.nextLine());
// o primeiro passo é obter a quantidade de dígitos que o número informado
// possui
int quant_digitos = 0;
int temp = numero;
while(temp != 0) {
quant_digitos = quant_digitos + 1;
temp = temp / 10;
}
// agora efetuamos o cálculo que verifica se o número é um número
// de Armstrong ou não
int resto, soma = 0;
temp = numero;
while(temp > 0){
resto = temp % 10;
soma = soma + (int)(Math.pow(resto, quant_digitos));
temp = temp / 10;
}
if(soma == numero){
System.out.println("O número informado é um número de Armstrong");
}
else{
System.out.println("O número informado não é um número de Armstrong");
}
}
}
|
Python ::: Dicas & Truques ::: Formatação de datas, strings e números |
Python para iniciantes - Como inserir uma determinada quantidade de espaços à direita de uma stringQuantidade de visualizações: 9019 vezes |
|
Este trecho de código mostra como inserir uma determinada quantidade de espaços à direita de uma string. Esta técnica é muito útil para formatar a saída em tela ou em arquivos. Veja o código completo para a dica:
def main():
palavra1 = "Estudando"
palavra2 = "Python"
palavra3 = "C++"
palavra4 = "Delphi"
print("%-12s %s" % (palavra1, palavra2))
print("%-12s %s" % (palavra3, palavra4))
if __name__== "__main__":
main()
Ao executarmos este código Python nós teremos o seguinte resultado: Estudando Python C++ Delphi |
Ruby ::: Dicas & Truques ::: Strings e Caracteres |
Como contar as ocorrências de uma substring em uma string em Ruby usando a função scan()Quantidade de visualizações: 8942 vezes |
Podemos obter a quantidade de vezes em que uma substring aparece em uma string Ruby usando o método scan() da classe String. Este método nos permite executar um bloco de código a cada vez que a substring fornecida a ele for encontrada. Veja o exemplo:
# declara e inicializa uma variável string
frase = "Ruby? Gosto muito de Ruby"
puts "A frase é: " + frase
# vamos obter a quantidade de vezes em que a
# substring "Ruby" aparece na frase
quant = 0
substring = "Ruby"
frase.scan(substring){quant = quant + 1}
# exibe o resultado
puts "A substring \"Ruby\" aparece " + quant.to_s \
+ " vezes"
Ao executarmos este código Ruby nós teremos o seguinte resultado: A frase é: Ruby? Gosto muito de Ruby A substring "Ruby" aparece 2 vezes |
Delphi ::: Dicas & Truques ::: Ponteiros, Referências e Memória |
Como usar nil para testar ou indicar que um ponteiro Delphi não referencia nenhuma posição de memóriaQuantidade de visualizações: 15742 vezes |
O propósito dos ponteiros é nos permitir acessar e manipular os valores de outras variáveis. Isso é feito acessando-se diretamente o endereço de memória destas variáveis. Porém, há situações nas quais queremos testar se um determinado ponteiro está realmente apontando para um local na memória. Veja o seguinte trecho de código:procedure TForm1.Button1Click(Sender: TObject); var pvalor: ^integer; begin // vamos exibir o valor da variável referenciada pelo // ponteiro pvalor ShowMessage(IntToStr(pvalor^)); end; Ao executarmos este código nós teremos um valor aleatório sendo exibido (e um warning do tipo W1036 Variable 'pvalor' might not have been initialized. Isso acontece porque criamos um ponteiro para um Integer mas não indicamos o endereço da variável para a qual ele aponta, ou seja, até o momento este ponteiro é nulo (não aponta para nenhuma posição de memória). Mova a declaração do ponteiro para a seção interface e verá que código compilará mas teremos uma exceção do tipo EAccessViolation (Exception class EAccessViolation with message 'Access violation at address ... in module ...). Clássico erro de lógica. Estamos tentando acessar dados não existentes na memória. Esta situação pode ser evitada testando se o ponteiro ainda é nulo antes de tentarmos desreferenciá-lo. Veja:
procedure TForm1.Button1Click(Sender: TObject);
begin
// vamos exibir o valor da variável referenciada pelo
// ponteiro pvalor
if pvalor = nil then
ShowMessage('O ponteiro ainda é nulo.')
else
ShowMessage(IntToStr(pvalor^));
end;
Note que movi a declaração do ponteiro para a secão interface, de forma a torná-la global. Isso evita que o ponteiro seja automaticamente inicializado (o que sempre acontece com as variáveis locais). Ao executar o código novamente você verá a mensagem indicando que o ponteiro ainda é nulo. Podemos também usar nil para, explicitamente, marcar um ponteiro como nulo, ou seja, definir que o ponteiro não aponta para nenhum local na memória. Comece declarando as variáveis abaixo na seção interface do formulário: valor: Integer; pvalor: ^Integer; Em seguida coloque o código abaixo no evento Click de um botão: procedure TForm1.Button1Click(Sender: TObject); begin // vamos atribuir um valor à variável valor valor := 14; // vamos "apontar" nosso ponteiro para o local de // memória da variável valor pvalor := @valor; // vamos exibir o valor da variável apontada por pvalor ShowMessage(IntToStr(pvalor^)); // vamos marcar pvalor como nulo pvalor := nil; // vamos causar um EAccessViolation já que pvalor // não aponta para nenhum local na memória agora ShowMessage(IntToStr(pvalor^)); end; Sempre que marcamos um ponteiro como nil, a memória até então ocupada por ele é liberada para uso por parte do sistema operacional ou demais programas. Este procedimento ajuda a evitar os vazamentos de memória (memory leak) tão frequentes em códigos que trabalham com memória alocada dinamicamente. Para fins de compatibilidade, esta dica foi escrita usando Delphi 2009. |
Desafios, Exercícios e Algoritmos Resolvidos de Delphi |
Veja mais Dicas e truques de Delphi |
Dicas e truques de outras linguagens |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
|
1º lugar: Java |




