![]() |
|
|
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 |
||
|
||
|
|
||
C ::: Desafios e Lista de Exercícios Resolvidos ::: C Básico |
Exercícios Resolvidos de C - Lendo a idade de um nadador e classificando sua categoria como infantil, juvenil, adolescente, adulto ou sêniorQuantidade de visualizações: 780 vezes |
|
Pergunta/Tarefa: Escreva um programa C que solicita a idade de um nadador e classifica sua categoria de acordo com as seguintes regras: a) De 5 a 7 anos - Infantil; b) De 8 a 10 anos - Juvenil; c) De 11 a 15 anos - Adolescente; d) De 16 a 30 anos - Adulto; e) Acima de 30 anos - Sênior. Sua saída deverá ser parecida com: Informe sua idade: 19 Sua categoria é Adulto Veja a resolução comentada deste exercício usando C:
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[]) {
// variáveis usadas na resolução do problema
int idade;
// vamos solicitar a idade do nadador
printf("Informe sua idade: ");
scanf("%d", &idade);
// vamos verificar a categoria do nadador
if((idade >= 5) && (idade <= 7)) {
printf("Sua categoria é Infantil");
}
else if((idade >= 8) && (idade <= 10)) {
printf("Sua categoria é Juvenil");
}
else if((idade >= 11) && (idade <= 15)) {
printf("Sua categoria é Adolescente");
}
else if((idade >= 16) && (idade <= 30)) {
printf("Sua categoria é Adulto");
}
else if(idade > 30) {
printf("Sua categoria é Sênior");
}
else {
printf("Não pertence a nenhuma categoria.");
}
printf("\n\n");
system("PAUSE");
return 0;
}
|
C ::: Dicas & Truques ::: Arrays e Matrix (Vetores e Matrizes) |
Tenha cuidado com os limites dos índices de um vetor ou matriz na linguagem CQuantidade de visualizações: 10403 vezes |
|
Um erro muito comum em programas C ocorre quando não atentamos para os limites dos índices de um vetor ou matriz. Como sabemos, os índices iniciam em 0 e vão até o tamanho do vetor menos 1. Porém, ao contrário de outras linguagens, o C (compiladores sendo usados em 2007 e 2008) não evita que este limite seja ultrapassado. O resultado disso é que o programa acaba lendo posições de memória inexistentes ou pertecentes a outros programas. Veja um trecho de código no qual acessamos uma posição inválida no vetor valores. Este código foi testado no MinGW 3.4.2 e compilou e executou sem qualquer mensagem de advertência.
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
// array com 5 inteiros
int valores[] = {23, 6, 45, 9, 3};
// acessa um índice além dos limites do array
// lembre-se de que os índices iniciam em 0
int valor = valores[5];
// exibe o resultado
printf("%d\n\n", valor);
system("PAUSE");
return 0;
}
Ao executar este código nós teremos o seguinte resultado (o seu vai ser diferente, é claro): -858993460 Minha recomendação é: se você quer mesmo programar na linguagem C, crie uma forma de impedir o acesso à índices inválidos. Se isso acontecer, os resultados exibidos pelos seus programas poderão ser realmente inesperados. |
C++ ::: Dicas & Truques ::: Strings e Caracteres |
Como retornar uma substring de uma string em C++ usando a função substr()Quantidade de visualizações: 10722 vezes |
Este exemplo usa a função substr() para obter uma substring a partir de uma string. A assinatura para essa função é:string substr(size_t pos = 0, size_t n = npos) const; Se a posição inicial da substring for maior que o tamanho da string, uma exceção do tipo out_of_range será atirada. Nenhum erro é indicado se o tamanho da substring exceder o tamanho da string. Veja o código C++ completo para o exemplo:
#include <string>
#include <iostream>
using namespace std;
int main(int argc, char *argv[]){
// vamos criar uma string
string frase = "Gosto de Java e C++";
cout << "A frase e: " << frase << endl;
// agora vamos obter uma parte da frase
string sub = frase.substr(9, 4);
// e mostramos o resultado
cout << "A substring retornada e: " << sub << endl; // retorna "Java"
system("PAUSE"); // pausa o programa
return EXIT_SUCCESS;
}
Ao executar este código C++ nós teremos o seguinte resultado: A frase é: Gosto de Java e C++ A substring retornada é: Java |
GNU Octave ::: Dicas & Truques ::: Trigonometria - Funções Trigonométricas |
Como calcular o cateto oposto dadas as medidas da hipotenusa e do cateto adjascente em GNU OctaveQuantidade de visualizações: 1441 vezes |
|
Todos estamos acostumados com o Teorema de Pitágoras, que diz que "o quadrado da hipotenusa é igual à soma dos quadrados dos catetos". Baseado nessa informação, fica fácil retornar a medida do cateto oposto quando temos as medidas da hipotenusa e do cateto adjascente. Isso, claro, via programação em linguagem GNU Octave. Comece observando a imagem a seguir: ![]() Veja que, nessa imagem, eu já coloquei os comprimentos da hipotenusa, do cateto oposto e do cateto adjascente. Para facilitar a conferência dos cálculos, eu coloquei também os ângulos theta (que alguns livros chamam de alfa) e beta já devidamente calculados. A medida da hipotenusa é, sem arredondamentos, 36.056 metros. Então, sabendo que o quadrado da hipotenusa é igual à soma dos quadrados dos catetos (Teorema de Pitógoras): \[c^2 = a^2 + b^2\] Tudo que temos que fazer é mudar a fórmula para: \[a^2 = c^2 - b^2\] Veja que agora o quadrado do cateto oposto é igual ao quadrado da hipotenusa menos o quadrado do cateto adjascente. Não se esqueça de que a hipotenusa é o maior lado do triângulo retângulo. Veja agora como esse cálculo é feito em linguagem GNU Octave (script GNU Octave):
c = 36.056 # medida da hipotenusa
b = 30 # medida do cateto adjascente
# agora vamos calcular o comprimento da cateto oposto
a = sqrt(power(c, 2) - power(b, 2))
# e mostramos o resultado
fprintf("A medida do cateto oposto é: %f\n", a);
Ao executar este código GNU Octave nós teremos o seguinte resultado: A medida do cateto oposto é: 20.000878 Como podemos ver, o resultado retornado com o código GNU Octave confere com os valores da imagem apresentada. |
Java ::: Estruturas de Dados ::: Lista Ligada Simples |
Estruturas de dados em Java - Introdução às listas ligadas em JavaQuantidade de visualizações: 167 vezes |
|
Então você se interessou pelo assunto de listas ligadas em Java? Recomendo que leia esta anotação com muita atenção. É o ponto de partida para o entendimento e implementação desta estrutura de dados tão importante. Uma lista singularmente ou duplamente ligada (singly or doubly linked list) é uma lista dinâmica no sentido de que ela pode crescer ou diminuir de acordo com as necessidades do programa. As matrizes (arrays) comuns também têm seu papel assegurado no estudo das estruturas de dados. No entanto, uma de suas limitações é que seus elementos são dispostos lado a lado na memória. Isso torna a inserção de um novo elemento no meio do array uma tarefa dispendiosa, visto que os demais elementos precisam ser movidos para outras posições. Em uma lista dinâmica isso não acontece. O conceito principal das listas ligadas é a capacidade de um nó (cada elemento da lista é chamado de nó) poder apontar para um outro nó com estrutura semelhante. Veja a estrutura típica de um nó em uma lista ligada:
// classe No
public class No{
public int valor;
public No proximo;
}
// fim da classe No
Note que esta classe contém dois campos: um campo do tipo int que guarda o valor do nó e um campo do tipo referência apontando para um objeto do mesmo tipo que o nó atual. Isso permite a circularidade das listas, ou seja, um nó apontando para um elemento de seu mesmo tipo. Com este conhecimento já podemos criar o início de uma lista singularmente ligada, para isso só precisamos declarar uma variável do tipo No. Veja: // declara o início da lista No inicio; Até agora temos uma lista ligada vazia. A criação do primeiro elemento da lista pode ser feito da seguinte forma:
public class Lista{
// declara o início da lista
static No inicio = null;
public static void main(String args[]){
// verifica se a lista está vazia
if(inicio == null){
// reserva memória para o novo nó
inicio = new No();
// a memória foi alocada com sucesso?
if(inicio != null){
inicio.valor = 150;
// é o primeiro nó...seu campo proximo não deve
// apontar para lugar nenhum
inicio.proximo = null;
}
}
System.out.println(inicio.valor);
System.exit(0);
}
}
Aqui nós temos a criação do primeiro nó de uma lista singularmente ligada. Note como usamos a palavra-chave new para alocar memória para o nó atual. Veja também que o valor null é fornecido para o campo próximo do nó. Isso aconteceu porque temos apenas um nó. Em outras dicas desta seção abordaremos como inserir os demais nós e também listar todos os nós existentes na lista. Até lá. |
Desafios, 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 |





