![]() |
|
|
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 - Construção Civil |
||
|
||
|
|
||
Java ::: Desafios e Lista de Exercícios Resolvidos ::: Arrays e Matrix (Vetores e Matrizes) |
Exercícios Resolvidos de Java - Verifique se as componentes de um vetor de 10 componentes inteiros lidos pelo teclado formam uma progressão aritméticaQuantidade de visualizações: 2052 vezes |
|
Pergunta/Tarefa: Verifique se as componentes de um vetor de 10 componentes inteiros lidos pelo teclado formam uma progressão aritmética, informando se sim ou se não. Caso forme, imprima o termo inicial e a razão. Resposta/Solução: Para a entrada do usuário, nós vamos usar um objeto da classe Scanner. Veja a resolução comentada:
package arquivodecodigos;
import java.util.Scanner;
public class Estudos{
public static void main(String[] args){
// vamos usar a classe Scanner para leitura
Scanner entrada = new Scanner(System.in);
// declara e constrói um vetor de 10 inteiros
int valores[] = new int[10];
// vamos ler os valores dos elementos do vetor
for(int i = 0; i < valores.length; i++){
System.out.print("Informe o valor: ");
valores[i] = Integer.parseInt(entrada.nextLine());
}
// já temos o vetor. Agora vamos verificar se temos
// uma progressão geométrica
boolean progressao = true;
// vamos obter a razão
int razao = valores[1] / (valores[0]);
// vamos varrer os elementos do vetor e verificar se todos
// possuem a mesma razão
for(int i = 1; i < valores.length; i++){
if((valores[i] / (valores[i - 1])) != razao){
progressao = false;
break;
}
}
if(progressao){
System.out.println("Formam uma progressão geométrica.");
System.out.println("A razão é: " + razao);
System.out.println("O primeiro termo é: " + valores[0]);
}
else{
System.out.println("Não formam uma progressão geométrica.");
}
}
}
Ao executar este código Java nós teremos o seguinte resultado: Informe o valor: 1 Informe o valor: 2 Informe o valor: 4 Informe o valor: 8 Informe o valor: 16 Informe o valor: 32 Informe o valor: 64 Informe o valor: 128 Informe o valor: 256 Informe o valor: 512 Formam uma progressão geométrica. A razão é: 2 O primeiro termo é: 1 |
Java ::: Desafios e Lista de Exercícios Resolvidos ::: Arrays e Matrix (Vetores e Matrizes) |
Exercício Resolvido de Java - Como rotacionar os elementos de um vetor de inteiros n vezes para a direita - Solução usando força-brutaQuantidade de visualizações: 954 vezes |
|
Pergunta/Tarefa: Dado o vetor:
// vamos criar um vetor de inteiros
int valores[] = {1, 6, 9, 3, 7, 8, 5, 2};
Sua saída deverá ser parecida com: Array na ordem original: 1 6 9 3 7 8 5 2 Rotação do vetor depois do passo 1: 2 1 6 9 3 7 8 5 Rotação do vetor depois do passo 2: 5 2 1 6 9 3 7 8 Rotação do vetor depois do passo 3: 8 5 2 1 6 9 3 7 Array depois de rotacionar 3 vezes: 8 5 2 1 6 9 3 7 Veja a resolução comentada deste exercício em Java:
package estudos;
public class Estudos {
public static void main(String[] args) {
// vamos criar um vetor de inteiros
int valores[] = {1, 6, 9, 3, 7, 8, 5, 2};
// mostramos o array na ordem original
System.out.println("Array na ordem original:");
exibirVetor(valores);
// vamos rotacionar o array 3 casas para a direita
valores = rotacionarArray(valores, 3);
// e mostramos o resultado
System.out.println("Array depois de rotacionar 3 vezes:");
exibirVetor(valores);
}
// método usado para exibir o array
public static void exibirVetor(int []vetor){
// percorremos cada elemento do vetor
for (int i = 0; i < vetor.length; i++) {
System.out.print(vetor[i] + " ");
}
System.out.println("\n");
}
// método que recebe um vetor de inteiros e o rotaciona um
// determinado número de vezes
public static int[] rotacionarArray(int[] vetor, int n) {
// um laço externo que repete a mesma quantidade de n
for (int i = 0; i < n; i++) {
// começamos no último elemento e regredimos até
// o segundo elemento do vetor
for (int j = vetor.length - 1; j > 0; j--) {
// avançamos um elemento de cada vez para
// a direita
int temp = vetor[j];
vetor[j] = vetor[j - 1];
vetor[j - 1] = temp;
}
// mostramos o progresso
System.out.println("Rotação do vetor depois do passo " + (i + 1) + ":");
exibirVetor(vetor);
}
return vetor;
}
}
A solução que apresentamos aqui usa a força-bruta, isto é, uma solução não otimizada e pouco recomendada para arrays com um número exagerado de elementos. Por ser força-bruta, o laço interno percorre todos os elementos do vetor, trocando-os de lugares. Em outras dicas do site nós colocamos versões melhoradas deste código. |
PHP ::: Dicas & Truques ::: PDO (PHP Data Objects) |
PHP MySQL - Como efetuar uma conexão PHP + MySQL usando PDO (PHP Data Objects)Quantidade de visualizações: 14184 vezes |
|
O acesso e manipulação de informações em uma base de dados MySQL usando PDO está se tornando muito popular nos dias atuais. Nesta dica eu mostrarei como podemos efetuar uma conexão PHP + MySQL usando o construtor da classe PDO, passando a ele os parâmetros de conexão. Veja o código completo para o exemplo:
<html>
<head>
<title>Estudando PHP</title>
</head>
<body>
<?php
$server = "localhost";
$user = "root";
$pass = "osmar1234";
$db = "estudos";
try{
$conn = new PDO("mysql:host=$server;dbname=$db",
$user, $pass);
echo "Conexão efetuada com sucesso.";
}
catch(PDOException $e){
echo 'Não foi possível conectar: ' . $e->getMessage();
}
?>
</body>
</html>
Se você forneceu todos os parâmetros de conexão corretamente, execute a página PHP e você terá o seguinte resultado: Conexão efetuada com sucesso. |
Java ::: Desafios e Lista de Exercícios Resolvidos ::: Recursão (Recursividade) |
Exercícios Resolvidos de Java - Como resolver o problema da Torre de Hanói recursivamenteQuantidade de visualizações: 3826 vezes |
|
Pergunta/Tarefa: Torre de Hanói, ou The Towers of Hanoi, é um "quebra-cabeça" que consiste em uma base contendo três pinos, em um dos quais são dispostos alguns discos uns sobre os outros, em ordem crescente de diâmetro, de cima para baixo. O problema consiste em passar todos os discos de um pino para outro qualquer, usando um dos pinos como auxiliar, de maneira que um disco maior nunca fique em cima de outro menor em nenhuma situação. O número de discos pode variar sendo que o mais simples contém apenas três. A solução da Torre de Hanói (The Towers of Hanoi) pode ser feita recursivamente da seguinte forma: O caso base (parada da recursão) é quando n = 1. Se n = 1 nós podemos simplesmente mover o disco de A para B, sem precisar passar pelo pino C. Quando n > 1 nós podemos dividir o problema original em três sub-problemas e resolvê-los sequencialmente. 1) Mova os primeiros n - 1 discos de A para C com a ajuda do pino B; 2) Mova o disco n de A para B; 3) Mova n - 1 discos do pino C para o pino B com a ajuda do pino A. Além de resolver o problema, seu programa deverá informar quantas chamadas recursivas foram feitas. Sua saída deverá ser parecida com: ![]() Resposta/Solução: Veja a resolução comentada deste exercício usando Java console:
package arquivodecodigos;
import java.util.Scanner;
public class Estudos {
static int quantChamadasRecursivas = 0; // registra as chamadas recursivas
public static void main(String[] args) {
Scanner entrada = new Scanner(System.in);
// vamos ler a quantidade de discos a serem usados na simulação
System.out.print("Informe a quantidade de discos: ");
int discos = Integer.parseInt(entrada.nextLine());
// resolve o problema recusivamente
System.out.println("\nOs movimentos para resolver o problema foram:\n");
moverDiscos(discos, 'A', 'B', 'C');
System.out.println("\nForam feitas " + quantChamadasRecursivas +
" chamadas recursivas");
System.out.println();
}
// método recursivo que resolve o problema da Torre de Hanói
public static void moverDiscos(int n, char daTorre, char paraTorre,
char torreAux) {
quantChamadasRecursivas++; // registra mais uma chamada recursiva
if(n == 1){ // condição de parada
System.out.println("Movendo o disco " + n + " de " + daTorre + " para " +
paraTorre);
}
else{ // faz mais uma chamada recursiva
moverDiscos(n - 1, daTorre, torreAux, paraTorre);
System.out.println("Movendo o disco " + n + " de " + daTorre + " para " +
paraTorre);
moverDiscos(n - 1, torreAux, paraTorre, daTorre);
}
}
}
|
Java ::: Desafios e Lista de Exercícios Resolvidos ::: Java Básico |
Exercícios Resolvidos de Java - Escreva um programa Java que leia duas notas obtidas por um aluno na disciplina de Algoritmos e Programação de Computadores, o número de aulas ministradasQuantidade de visualizações: 19818 vezes |
|
Pergunta/Tarefa: Escreva um programa Java que leia duas notas obtidas por um aluno na disciplina de Algoritmos e Programação de Computadores, o número de aulas ministradas e o número de aulas assistidas por este aluno nesta disciplina. Calcule e mostre a média final deste aluno e diga se ele foi aprovado ou reprovado. Considere que para um aluno ser aprovado ele deve obter média final igual ou maior a 6,0 e ter no mínimo 75% de frequência. Importante: Seu código Java deverá validar os dados de entrada para que as notas não sejam menores que zero nem maiores que 10. Além disso, o número de aulas assistidas não pode ser maior que o número de aulas ministradas. Seu programa Java deverá exibir uma saída parecida com: Informe a primeira nota: 9 Informe a segunda nota: 7 Quantidade de aulas ministradas: 20 Quantidade de aulas assistidas: 17 Aluno aprovado com média 8.0 e frequencia 85.0% 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 ler a entrada do usuário
Scanner entrada = new Scanner(System.in);
// vamos ler as duas notas do aluno
System.out.print("Informe a primeira nota: ");
double n1 = Double.parseDouble(entrada.nextLine());
System.out.print("Informe a segunda nota: ");
double n2 = Double.parseDouble(entrada.nextLine());
// vamos ler a quantidade de aulas ministradas
System.out.print("Quantidade de aulas ministradas: ");
int aulas_ministradas = Integer.parseInt(entrada.nextLine());
// agora a quantidade de aulas assistidas pelo aluno
System.out.print("Quantidade de aulas assistidas: ");
int aulas_assistidas = Integer.parseInt(entrada.nextLine());
// agora temos que validar as informações inseridas
if((n1 < 0) || (n1 > 10)){
System.out.println("\nA nota n1 é inválida");
}
else if((n2 < 0) || (n2 > 10)){
System.out.println("\nA nota n2 é inválida");
}
else if(aulas_assistidas > aulas_ministradas){
System.out.println("Aulas assistidas maior que aulas ministradas");
}
else{
// vamos calcular a média do aluno
double media = (n1 + n2) / 2;
// vamos calcular a frequencia
double frequencia = (aulas_assistidas / (double)aulas_ministradas) * 100;
// vamos testar a aprovação do aluno agora
if((media >= 6.0) && (frequencia >= 75)){
System.out.println("Aluno aprovado com média " + media +
" e frequencia " + frequencia + "%");
}
else{
System.out.println("Aluno reprovado com média " + media +
" e frequencia " + frequencia + "%");
}
}
}
}
|
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 |




