![]() |
|
|
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 Engenharia Civil - Fundações |
||
|
||
|
|
||
Java ::: Desafios e Lista de Exercícios Resolvidos ::: Laços de Repetição |
Exercício Resolvido de Java - Usando o laço while para pedir ao usuário que tente acertar um número aleatório entre 0 e 10 (incluindo) e mostrar a quantidade de tentativas feitasQuantidade de visualizações: 3245 vezes |
|
Pergunta/Tarefa: Escreva um programa Java que gera um número aleatório (randômico) entre 0 e 10 (incluindo estes dois valores) e peça ao usuário para adivinhá-lo. Use um laço while para registrar as tentativas feitas e, a cada tentativa, dê dicas informando se o número gerado é maior ou menor que a tentativa feita. Finalmente mostre a quantidade de tentativas feitas até que o número fosse acertado. Sua saída deverá ser parecida com a mostrada abaixo: Informe um número de 0 a 10: 5 Errou! Tente um número menor. Informe um número de 0 a 10: 2 Parabéns! Você acertou em 2 tentativas. Veja a resolução comentada deste exercício usando Java:
package estudos;
import java.util.Scanner;
public class Exercicio {
public static void main(String[] args) {
// vamos fazer a leitura usando a classe Scanner
Scanner entrada = new Scanner(System.in);
// declaração das variáveis
int tentativas = 0, numeroLido;
boolean acertou = false;
// vamos gerar um número aleatório entre 0 e 10
int numero = (int)(Math.random() * 11);
// um laço while que repetirá até que o número seja acertado
while(!acertou){
System.out.print("Informe um número de 0 a 10: ");
numeroLido = Integer.parseInt(entrada.nextLine());
tentativas++;
if(numeroLido == numero){ // acertou?
System.out.println("Parabéns! Você acertou em " + tentativas + " tentativas.");
acertou = true;
}
else if(numeroLido < numero){ // o número informado é menor que o número gerado
System.out.println("Errou! Tente um número maior.");
}
else{ // o número informado é maior que o número gerado
System.out.println("Errou! Tente um número menor.");
}
}
System.out.println("\n");
}
}
|
Delphi ::: Dicas & Truques ::: Arrays e Matrix (Vetores e Matrizes) |
Como usar arrays (vetores e matrizes) em DelphiQuantidade de visualizações: 74456 vezes |
|
Em programação de computadores, um array, também conhecido como vector (para arrays uni-dimensionais) ou matriz (para arrays bi-dimensionais), é uma das mais simples estruturas de dados. Os arrays mantêm uma série de elementos de dados, geralmente do mesmo tamanho e tipo de dados. Elementos individuais são acessados por sua posição no array. A posição é dada por um índice, também chamado de subscrição. O índice geralmente utiliza uma seqüência de números inteiros, (ao contrário de um array associativo) mas o índex pode ter qualquer valor ordinal. Alguns arrays são multi-dimensionais, significando que eles são indexados por um número fixo de números inteiros, por exemplo, por um seqüência (ou sucessão) finita de quatro números inteiros. Geralmente, arrays uni- e bi-dimensionais são os mais comuns. Os arrays podem ser considerados como as estruturas de dado mais simples que é possível imaginar. Têm a vantagem de que os seus elementos são acessíveis de forma rápida, mas têm uma notável limitação: são de tamanho fixo, mas podem ser incrementados ou diminuídos com determinados algoritmos, geralmente envolvendo a cópia de elementos de um array para outro e reinicializando o original com a nova dimensão. Os vetores podem ser implementados desta forma. Em Delphi um array é declarado da seguinte forma: var valores: array[1..10] of Integer; Aqui nós temos um array chamado valores que contém 10 elementos do tipo Integer. Estes elementos podem ser acessados por índices que variarão de 1 a 10, ou seja, podemos acessar o 5º elemento da seguinte forma: procedure TForm1.Button1Click(Sender: TObject); var valores: array[1..10] of Integer; begin valores[5] := 20; end; Este tipo de array que ora criamos é chamado de array estático, em contraposição aos arrays dinâmicos, os quais podem ter seus tamanhos redimensionados durante a execução do programa. A forma mais prática de se trabalhar com arrays em Delphi é usando laços. Veja:
procedure TForm1.Button1Click(Sender: TObject);
var
valores: array[1..5] of Integer;
i, soma: Integer;
begin
// vamos preencher o array com os valores de 1 a 5
for i := 1 to 5 do
begin
valores[i] := i;
end;
// vamos percorrer o array novamente e obter a soma dos
// valores de seus elementos
soma := 0;
for i := 1 to 5 do
begin
soma := soma + valores[i];
end;
// vamos exibir o resultado
ShowMessage('A soma dos valores é: ' + IntToStr(soma));
end;
Aqui nós declaramos um array de 5 elementos do tipo Integer e inicializamos seus elementos com os valores de 1 a 5. Em seguida percorremos todo o array novamente para obter a soma dos valores dos elementos. É possível também declarar e já inicializar um array. Veja:
procedure TForm1.Button1Click(Sender: TObject);
const
valores: array[1..5] of Integer = (3, 2, 6, 12, 9);
var
i, soma: Integer;
begin
// vamos percorrer o array novamente e obter a soma dos
// valores de seus elementos
soma := 0;
for i := 1 to 5 do
begin
soma := soma + valores[i];
end;
// vamos exibir o resultado
ShowMessage('A soma dos valores é: ' + IntToStr(soma));
end;
Note que aqui eu declarei o array como uma constante. Isso aconteceu porque o Delphi não permite que inicializemos variáveis locais ([DCC Error] Unit1.pas(32): E2195 Cannot initialize local variables). Caso você realmente precise do array como variável e não constante, e deseje inicializá-lo juntamente com a declaração, mova-o para a seção interface do formulário ou classe. Para finalizar, veja que é possível criar arrays de todos os tipos em Delphi. Veja no trecho de código abaixo como usamos um array de Char para guardar uma palavra e exibí-la normal e depois invertida:
procedure TForm1.Button1Click(Sender: TObject);
const
letras: array[1..5] of Char = ('O', 's', 'm', 'a', 'r');
var
i: Integer;
resultado: String;
begin
resultado := '';
// vamos exibir a palavra na forma normal
for i := 1 to 5 do
resultado := resultado + letras[i];
// exibe o resultado
ShowMessage(resultado);
// vamos exibir a palavra invertida
resultado := '';
for i := 5 downto 1 do
resultado := resultado + letras[i];
// exibe o resultado
ShowMessage(resultado);
end;
Para fins de compatibilidade, esta dica foi escrita usando Delphi 2009. |
PHP ::: Fundamentos da Linguagem ::: Passos Iniciais |
PHP para iniciantes - Quais as diferenças entre include e require do PHP?Quantidade de visualizações: 14297 vezes |
A principal diferença entre as diretivas require() e include() do PHP é que, se usarmos require() para incluir um arquivo que não pode ser incluído (talvez o arquivo não exista), um erro fatal será gerado e a execução de código na página será imediatamente suspenso. Um exemplo de tal mensagem de erro é:Warning: require(inexistente.php) [function.require]: failed to open stream: No such file or directory in /public_html/testes.php on line 3 Fatal error: require() [function.require]: Failed opening required 'inexistente.php' (include_path='.:/usr/share/pear') in /public_html/testes.php on line 3 Veja que geralmente recebemos um Warning e depois um Fatal error. Experimente criar o arquivo "inexistente.php" e as mensagens de advertência e erro desaparecerão. Se usarmos include() e o arquivo de inclusão não puder ser localizado, teremos uma advertência mas a execução do código na página não será interrompida: Warning: include(inexistente.php) [function.include]: failed to open stream: No such file or directory in /public_html/testes.php on line 3 Warning: include() [function.include]: Failed opening 'inexistente.php' for inclusion (include_path='.:/usr/share/pear') in /public_html/testes.php on line 3 O uso de require() ou include() vai depender da situação: require() é melhor empregado para carregar arquivos que são essenciais para o restante da página, por exemplo, se você tiver um site usando banco de dados, então usar require() para incluir o arquivo contendo o login e senha do banco de dados é muito melhor que usar include(). Se usarmos include() nesta situação, poderemos terminar gerando mais erros e advertências que o pretendido. include() deve ser usado quando o arquivo a ser incluído não é essencial para o correto funcionamento da página. Um exemplo disso é quando incluímos um arquivo de topo ou rodapé de páginas. |
Java ::: Pacote java.awt.event ::: KeyEvent |
Java Swing - Como usar o método getKeyCode() da classe KeyEvent para detectar as teclas de Espaço, Enter ou EscQuantidade de visualizações: 6762 vezes |
|
Em algumas situações nós precisamos detectar o pressionamento das teclas de Espaço, Enter ou Esc. Para isso podemos usar o método getKeyCode() da classe KeyEvent e testar se o código equivale a uma das constantes KeyEvent.VK_SPACE (espaço), KeyEvent.VK_ENTER (Enter) ou KeyEvent.VK_ESCAPE (Esc). Veja um trecho de código no qual testamos se alguma destas três teclas foi pressionada:
package estudos;
import java.awt.Container;
import java.awt.FlowLayout;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
public class Janela extends JFrame implements KeyListener{
public Janela(){
super("Eventos do Teclado");
Container c = getContentPane();
FlowLayout layout = new FlowLayout(FlowLayout.LEFT);
c.setLayout(layout);
// vamos adicionar o objeto listener
addKeyListener(this);
setSize(350, 250);
setVisible(true);
}
@Override
public void keyPressed(KeyEvent e){
// a tecla Space foi pressionada?
if(e.getKeyCode() == KeyEvent.VK_SPACE){
JOptionPane.showMessageDialog(null, "A tecla de espaço foi pressionada");
}
// a tecla Enter foi pressionada?
else if(e.getKeyCode() == KeyEvent.VK_ENTER){
JOptionPane.showMessageDialog(null, "A tecla Enter foi pressionada");
}
// a tecla Esc foi pressionada?
else if(e.getKeyCode() == KeyEvent.VK_ESCAPE){
JOptionPane.showMessageDialog(null, "A tecla Esc foi pressionada");
}
else{
JOptionPane.showMessageDialog(null, "Outra tecla foi pressionada");
}
}
@Override
public void keyReleased(KeyEvent e){
// sem implementação
}
@Override
public void keyTyped(KeyEvent e){
// sem implementação
}
public static void main(String args[]){
Janela j = new Janela();
j.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
É importante observar que as teclas Space, Enter e Esc podem ser detectadas somente nos eventos keyPressed e keyReleased. |
Java ::: Desafios e Lista de Exercícios Resolvidos ::: Laços de Repetição |
Exercícios Resolvidos de Java - Como calcular e exibir os 50 primeiros números primos em JavaQuantidade de visualizações: 11505 vezes |
|
Pergunta/Tarefa: Um inteiro é um número primo se ele for divisível somente por 1 e por ele mesmo. Assim, 2, 3, 5 e 7 são primos, enquanto 4, 6, 8 e 9 não são. Note que o número 1 não é primo. Escreva um programa (algorítmo) Java que usa um laço for, while ou do...while para calcular e exibir os 50 primeiros números primos. Sua saída deverá ser parecida com:
50 primeiros numeros primos:
2 3 5 7 11 13 17 19 23 29
31 37 41 43 47 53 59 61 67 71
73 79 83 89 97 101 103 107 109 113
127 131 137 139 149 151 157 163 167 173
179 181 191 193 197 199 211 223 227 229
Veja a resolução comentada deste exercício usando Java:
package estudos;
public class Estudos {
public static void main(String[] args) {
int quantidade = 50; // quantidade de números primos
int contador = 0; // quantidade de números primos encontrados
int numero = 0; // inteiro inicial
// Lembre-se! O número 1 não é primo
System.out.println(quantidade + " primeiros numeros primos:\n");
// laço while será executado até encontrar os 50 primeiros números primos
while(contador < quantidade){
boolean primo = true;
// se o valor de i for 7, a variável j do laço contará
// de 2 até 7 / 2 (divisão inteira), ou seja, 3. Se o
// módulo de 7 por qualquer um dos valores neste intervalo
// for igual a 0, então o número não é primo
for(int j = 2; j <= (numero / 2); j++){
if(numero % j == 0){
primo = false; // não é primo
break;
}
}
if((primo) && (numero > 1)){
System.out.printf("%6d", numero);
contador++; // encontramos um número primo
if(contador % 10 == 0){
System.out.println();
}
}
numero++;
}
}
}
|
Mais Desafios de Programação e Exercícios e Algoritmos Resolvidos de Java |
Veja mais Dicas e truques de Java |
Dicas e truques de outras linguagens |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
|
1º lugar: Java |





