![]() |
|
|
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 |
||
|
||
|
|
||
Python ::: Dicas & Truques ::: Lista (List) |
Curso de Python - Como ordenar uma lista de strings baseado no tamanho de cada umaQuantidade de visualizações: 8599 vezes |
|
Este exemplo mostra como ordenar os elementos de uma List de strings baseado no tamanho da palavra, frase ou texto. Note como o valor "key = len" como argumento para o método sort() da classe List. Veja o código completo para a dica: def main(): # cria uma lista de nomes nomes = ['Carlos', 'Igor', 'Osmar', 'Fernanda'] # exibe a lista na ordem original print(nomes) # ordena a lista nomes.sort(key = len) # exibe a lista ordenada print(nomes) if __name__== "__main__": main() Ao executar este código Python nós teremos o seguinte resultado: ['Carlos', 'Igor', 'Osmar', 'Fernanda'] ['Igor', 'Osmar', 'Carlos', 'Fernanda'] |
C++ ::: Desafios e Lista de Exercícios Resolvidos ::: Métodos, Procedimentos e Funções |
Exercício Resolvido de C++ - Uma função C++ que recebe um valor inteiro e informa se o mesmo é um número primoQuantidade de visualizações: 9480 vezes |
|
Exercícios Resolvidos de C++ - Uma função C++ que recebe um valor inteiro e informa se o mesmo é um número primo 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. Escreva uma função C++ que recebe um valor inteiro e informe se o mesmo é um número primo. Você deverá usar a seguinte assinatura para a função:
bool primo(int valor){
// implementação aqui
}
Informe um valor inteiro: 7 O numero informado é primo Veja a resolução comentada deste exercício em C++:
#include <cstdlib>
#include <iostream>
using namespace std;
// protótipo da função primo()
bool primo(int);
int main(int argc, char *argv[]){
int numero;
setlocale(LC_ALL,""); // para acentos do português
cout << "Informe um valor inteiro: ";
cin >> numero;
// vamos verificar se o valor informado é um número primo
if(primo(numero)){
cout << "O numero informado é primo\n" << endl;
}
else{
cout << "O numero informado NÃO é primo\n" << endl;
}
system("PAUSE");
return EXIT_SUCCESS;
}
bool primo(int valor){
// se o valor fornecido for 7, a variável i 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 i = 2; i <= (valor / 2); i++){
if(valor % i == 0){
return false; // não é primo
}
}
return true;
}
|
C++ ::: Fundamentos da Linguagem ::: Tipos de Dados |
Apostila C++ para iniciantes - Como usar o tipo de dados short ou short int da linguagem C++Quantidade de visualizações: 14241 vezes |
O tipo de dados short (também chamado de short int) da linguagem C++ é uma variação do tipo int e geralmente possui a metade da capacidade de armazenamento deste. Nós o usamos quando queremos representar números inteiros, ou seja, sem partes fracionárias, que não sejam grandes o suficiente para exigir variáveis do tipo int. Veja um trecho de código demonstrando seu uso (note que estes estudos foram feitos no Windows XP - 32 bits - usando Dev-C++):
#include <iostream>
using namespace std;
int main(int argc, char *argv[]){
// declara uma variável do tipo short
short idade = 45;
cout << "A idade é: " << idade << "\n\n";
system("PAUSE"); // pausa o programa
return EXIT_SUCCESS;
}
Veja que a maioria dos compiladores C++ não faz distinção entre os tipos short e short int. A capacidade de armazenamento do tipo short depende da arquitetura na qual o programa está sendo executado. Uma forma muito comum de descobrir esta capacidade é usar os símbolos SHRT_MIN e SHRT_MAX, definidos no header climits (limits.h). Veja:
#include <iostream>
using namespace std;
int main(int argc, char *argv[]){
cout << "Valor mínimo: " << SHRT_MIN << "\n";
cout << "Valor máximo: " << SHRT_MAX << "\n\n";
system("PAUSE"); // pausa o programa
return EXIT_SUCCESS;
}
Ao executar este programa você terá um resultado parecido com: Valor mínimo: -32768 Valor máximo: 32767 Veja que o tipo short aceita valores positivos e negativos. Tudo que você tem a fazer é tomar todo o cuidado para que os valores atribuidos a variáveis deste tipo não ultrapassem a faixa permitida. Veja um trecho de código que provoca o que chamamos de transbordamento (overflow):
#include <iostream>
using namespace std;
int main(int argc, char *argv[]){
short soma = SHRT_MAX + 2;
cout << "Resultado: " << soma << "\n";
system("PAUSE"); // pausa o programa
return EXIT_SUCCESS;
}
Este programa exibirá o seguinte resultado: Resultado: -32767 Note que este não é o resultado esperado, visto que SHRT_MAX + 2 deveria retornar: 32767 + 2 = 32769 Porém, como o valor máximo que pode ser armazenado em um short é 32767, o procedimento adotado pelo compilador foi tornar o número negativo e subtrair 1. É claro que, se você testar este código em arquiteturas diferentes o resultado poderá ser diferente do exemplificado aqui. Em termos de bytes, é comum o tipo short ser armazenado em 2 bytes, o que resulta em 16 bits (um byte é formado por 8 bits, lembra?). Veja um trecho de código que mostra como usar o operador sizeof() para determinar a quantidade de bytes necessários para armazenar um variável do tipo short:
#include <iostream>
using namespace std;
int main(int argc, char *argv[]){
cout << "Tamanho de um short: " << sizeof(short)
<< " bytes\n\n";
system("PAUSE"); // pausa o programa
return EXIT_SUCCESS;
}
O resultado da execução deste código será algo como: Tamanho de um short: 2 bytes |
Java ::: Desafios e Lista de Exercícios Resolvidos ::: Estruturas de Controle |
Exercícios Resolvidos de Java - Escreva um programa Java que informa o número de dias em um determinado mês e ano. Seu código deverá solicitar ao usuário o número correspondenteQuantidade de visualizações: 1499 vezes |
|
Pergunta/Tarefa: Escreva um programa Java que informa a quantidade de dias em um determinado mês e ano. Seu código deverá solicitar ao usuário o número correspondente ao mês, na faixa de 1 a 12, e o ano. Verifique também se o ano é bissexto ou não. Sua saída deverá ser parecida com: Informe o mês (1 - 12): 4 Informe o ano: 2022 Abril de 2022 possui 30 dias. 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) {
// vamos usar a classe Scanner para ler a entrada do usuário
Scanner entrada = new Scanner(System.in);
// para guardar a quantidade de dias no mês
int quantDiasNoMes = 0;
// para o nome do mês
String nomeMes = "";
// vamos ler o número do mês
System.out.print("Informe o mês (1 - 12): ");
int mes = Integer.parseInt(entrada.nextLine());
// vamos ler o ano
System.out.print("Informe o ano: ");
int ano = Integer.parseInt(entrada.nextLine());
// agora usamos um switch para tratar o mês informado
switch (mes){
case 1:
nomeMes = "Janeiro";
quantDiasNoMes = 31;
break;
case 2:
nomeMes = "Fevereiro";
// é ano bissexto?
if ((ano % 400 == 0) || ((ano % 4 == 0) && (ano % 100 != 0))) {
quantDiasNoMes = 29;
}
else {
quantDiasNoMes = 28;
}
break;
case 3:
nomeMes = "Março";
quantDiasNoMes = 31;
break;
case 4:
nomeMes = "Abril";
quantDiasNoMes = 30;
break;
case 5:
nomeMes = "Maio";
quantDiasNoMes = 31;
break;
case 6:
nomeMes = "Junho";
quantDiasNoMes = 30;
break;
case 7:
nomeMes = "Julho";
quantDiasNoMes = 31;
break;
case 8:
nomeMes = "Agosto";
quantDiasNoMes = 31;
break;
case 9:
nomeMes = "Setembro";
quantDiasNoMes = 30;
break;
case 10:
nomeMes = "Outubro";
quantDiasNoMes = 31;
break;
case 11:
nomeMes = "Novembro";
quantDiasNoMes = 30;
break;
case 12:
nomeMes = "Desembro";
quantDiasNoMes = 31;
break;
}
// mostra o resultado
System.out.println(nomeMes + " de " + ano + " possui " + quantDiasNoMes + " dias.");
System.out.println("\n");
}
}
|
Java ::: Estruturas de Dados ::: Lista Ligada Simples |
Estruturas de dados em Java - Introdução às listas ligadas em JavaQuantidade de visualizações: 143 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 |




