![]() |
|
|
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 |
||
|
||
|
|
||
Delphi ::: Dicas & Truques ::: Recursão (Recursividade) |
Como escrever uma função recursiva para calcular a potência de um número em DelphiQuantidade de visualizações: 14164 vezes |
O código abaixo mostra como você pode escrever uma função recursiva em Delphi que permite calcular a potência de um número inteiro:
// uma função recursiva para elevar uma determinada
// base ao seu expoente
function potencia(base, expoente: Integer): Integer;
begin
if expoente = 0 then
Result := 1
else
Result := base * potencia(base, expoente - 1);
end;
// vamos chamar a função recursiva
// a partir do Click de um botão
procedure TForm1.Button1Click(Sender: TObject);
begin
// vamos obter o resultado de 4 elevado a 3
ShowMessage('4 ao cubo é igual a: ' +
IntToStr(potencia(4, 3)));
end;
Para fins de compatibilidade, esta dica foi escrita usando Delphi 2009. |
Python ::: Desafios e Lista de Exercícios Resolvidos ::: Estruturas de Controle |
Exercícios Resolvidos de Python - Ler os lados de um triângulo e informar se ele é isósceles, escaleno ou equiláteroQuantidade de visualizações: 2626 vezes |
|
Pergunta/Tarefa: Um triângulo é uma forma geométrica (polígono) composta de três lados, sendo que cada lado é menor que a soma dos outros dois lados. Assim, para que um triângulo seja válido, é preciso que seus lados A, B e C obedeçam à seguinte regra: A < (B + C), B < (A + C) e C < (A + B). Escreva um programa Python que leia os três lados de um triângulo e verifique se tais valores realmente formam um triângulo. Se o teste for satisfatório, informe se o triângulo é isósceles (dois lados iguais e um diferente), escaleno (todos os lados diferentes) ou equilátero (todos os lados iguais). Sua saída deverá ser parecida com: Informe o primeiro lado do triângulo: 30 Informe o segundo lado do triângulo: 40 Informe o terceiro lado do triângulo: 60 O triângulo é escaleno Veja a resolução comentada deste exercício usando Python:
# método principal
def main():
# vamos ler o primeiro lado do triângulo
lado_a = int(input("Informe o primeiro lado do triângulo: "))
# vamos ler o segundo lado do triângulo
lado_b = int(input("Informe o segundo lado do triângulo: "))
# vamos ler o terceiro lado do triângulo
lado_c = int(input("Informe o terceiro lado do triângulo: "))
# os lados informados formam um triângulo?
if((lado_a < (lado_b + lado_c)) and (lado_b < (lado_a + lado_c))
and (lado_c < (lado_a + lado_b))):
# é um triângulo equilátero (todos os lados iguais)?
if((lado_a == lado_b) and (lado_b == lado_c)):
print("O triângulo é equilátero")
else:
# é isósceles (dois lados iguais e um diferente)?
if((lado_a == lado_b) or (lado_a == lado_c) or (lado_c == lado_b)):
print("O triângulo é isósceles")
else:
# é escaleno
print("O triângulo é escaleno")
else:
print("Os lados informados não formam um triângulo.")
if __name__== "__main__":
main()
|
Java ::: Desafios e Lista de Exercícios Resolvidos ::: Laços de Repetição |
Exercícios Resolvidos de Java - Um laço for que solicita ao usuário 10 números inteiros e mostra o menor e o maior valor informadoQuantidade de visualizações: 1879 vezes |
|
Pergunta/Tarefa: Escreva um programa Java console que usa o laço for para solicitar ao usuário que informe 10 números inteiros. Em seguida mostre o maior e o menor valor lido. Não é permitido usar matrizes: Dica: Use um objeto da classe Scanner para obter a entrada do usuário. Resposta/Solução: Como a solução deste exercício depende de valores informados pelo usuário, a classe Scanner deverá ser usada. Desta forma, você deverá importá-la, usando a linha: import java.util.Scanner;
public static void main(String[] args){
// para este exercício você deverá importar a classe
// Scanner. Ela está no pacote java.util.*;
// vamos construir um objeto da classe Scanner para ler a
// entrada do usuário
Scanner entrada = new Scanner(System.in);
int valor; // guarda o valor lido
int maior = 0, menor = 0; // variáveis que guardarão o maior e o menor valor lido
// vamos pedir ao usuário que informe 10 valores inteiros
for(int i = 0; i < 10; i++){
System.out.print("Informe o " + (i + 1) + "º valor: ");
valor = Integer.parseInt(entrada.nextLine());
// esta é a primeira iteração do laço? se for vamos assumir que o
// maior e menor valor lido são o primeiro valor informado
if(i == 0){
maior = valor;
menor = valor;
// poderia ser escrito assim:
//maior = menor = valor;
}
else{ // não é a primeira iteração
// vamos verificar se é maior que o valor atual da variável maior
if(valor > maior){
maior = valor;
}
// vamos verificar se é menor que o valor atual da variável menor
if(valor < menor){
menor = valor;
}
}
}
// vamos exibir o maior e o menor valor lido
System.out.println("\nO maior valor lido foi: " + maior);
System.out.println("O menor valor lido foi: " + menor);
}
|
Java ::: Dicas & Truques ::: Fuso Horários |
Como retornar uma lista de todos os IDs de fusos horários suportados pela linguagem Java usando o método getAvailableIDs() da classe TimeZoneQuantidade de visualizações: 9353 vezes |
A linguagem Java, por meio da classe TimeZone, nos permite trabalhar com uma enorme variedade de fusos horários. No entanto, antes de assumir que um determinado fuso horário é suportado, é interessante verificar se tal fuso horário está na lista de IDs suportados. Isso pode ser feito com uma chamada ao método estático getAvailableIDs(). Este método retorna o ID de todos os fusos horários suportados. Veja um exemplo de como usá-lo:
import java.util.*;
public class Estudos{
public static void main(String args[]){
// obtém todos os IDs de fusos horários
// disponíveis na classe TimeZone
String fusos[] = TimeZone.getAvailableIDs();
for(int i = 0; i < fusos.length; i++){
System.out.println(fusos[i]);
}
}
}
Ao executar este código você terá um resultado semelhante à (optamos por listar apenas os 100 primeiros resultados): Etc/GMT+12 Etc/GMT+11 MIT Pacific/Apia Pacific/Midway Pacific/Niue Pacific/Pago_Pago Pacific/Samoa US/Samoa America/Adak America/Atka Etc/GMT+10 HST Pacific/Fakaofo Pacific/Honolulu Pacific/Johnston Pacific/Rarotonga Pacific/Tahiti SystemV/HST10 US/Aleutian US/Hawaii Pacific/Marquesas AST America/Anchorage America/Juneau America/Nome America/Yakutat Etc/GMT+9 Pacific/Gambier SystemV/YST9 SystemV/YST9YDT US/Alaska America/Dawson America/Ensenada America/Los_Angeles America/Tijuana America/Vancouver America/Whitehorse Canada/Pacific Canada/Yukon Etc/GMT+8 Mexico/BajaNorte PST PST8PDT Pacific/Pitcairn SystemV/PST8 SystemV/PST8PDT US/Pacific US/Pacific-New America/Boise America/Cambridge_Bay America/Chihuahua America/Dawson_Creek America/Denver America/Edmonton America/Hermosillo America/Inuvik America/Mazatlan America/Phoenix America/Shiprock America/Yellowknife Canada/Mountain Etc/GMT+7 MST MST7MDT Mexico/BajaSur Navajo PNT SystemV/MST7 SystemV/MST7MDT US/Arizona US/Mountain America/Belize America/Cancun America/Chicago America/Costa_Rica America/El_Salvador America/Guatemala America/Indiana/Knox America/Indiana/Petersburg America/Indiana/Vincennes America/Knox_IN America/Managua America/Menominee America/Merida America/Mexico_City America/Monterrey America/North_Dakota/Center America/North_Dakota/New_Salem America/Rainy_River America/Rankin_Inlet America/Regina America/Swift_Current America/Tegucigalpa America/Winnipeg CST CST6CDT Canada/Central Canada/East-Saskatchewan Canada/Saskatchewan Chile/EasterIsland Um bom uso deste método é quando estamos desenvolvendo uma aplicação que mostra o horário ao redor do mundo. Podemos ter uma lista de fusos horários e, mediante a seleção do usuário, fornecer o valor selecionado para o método setTimeZone() da classe Calendar, por exemplo. |
C++ ::: Fundamentos da Linguagem ::: Estruturas de Controle |
Como usar ponteiros para controlar um laço while em C++Quantidade de visualizações: 9837 vezes |
É possível usar ponteiros para controlar a execução de um laço while em C++. Comece analisando o seguinte trecho de código:// uma matriz de caracteres char nome[] = "Arquivo"; // aponta para a primeira letra char *letra = nome; if(*letra) cout << "True"; else cout << "False"; Aqui o valor "True" será exibido, visto que o ponteiro *letra está apontando para um local da matriz de caracteres nome[] que é diferente de NULL. Veja agora: // uma matriz de caracteres char nome[] = "Arquivo"; // aponta para a primeira letra char *letra = nome; // posição 0 // vamos atingir o final da matriz // de caracteres letra++; // posição 1 letra++; // posição 2 letra++; // posição 3 letra++; // posição 4 letra++; // posição 5 letra++; // posição 6 letra++; // NULL if(*letra) cout << "True"; else cout << "False"; Como sabemos que a matriz de caracteres nome[] contém sete caracteres (de 0 a 6), incrementamos o ponteiro *letra até que este aponte para o caractere que marca o fim da matriz. Assim, o valor "False" é exibido. Veja agora um laço while que tira proveito do que vimos aqui para exibir as letras da palavra "Arquivo" separadamente usando um ponteiro:
#include <string>
#include <iostream>
using namespace std;
int main(int argc, char *argv[]){
// uma matriz de caracteres
char nome[] = "Arquivo";
// aponta para a primeira letra
char *letra = nome;
// vamos usar o laço while para
// imprimir as letras separadamente
while(*letra){
cout << *letra << " ";
letra++;
}
cout << "\n\n";
system("PAUSE"); // pausa o programa
return EXIT_SUCCESS;
}
|
Desafios, Exercícios e Algoritmos Resolvidos de C++ |
Veja mais Dicas e truques de C++ |
Dicas e truques de outras linguagens |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
|
1º lugar: Java |



