![]() |
|
|
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 AutoCAD Civil 3D |
||
|
||
|
|
||
Java ::: Desafios e Lista de Exercícios Resolvidos ::: Estruturas de Dados - Listas Ligadas |
Exercícios Resolvidos de Java - Como inserir um nó em qualquer posição de uma lista ligada em Java - Escreva um programa Java que cria uma lista dinamicamente encadeadaQuantidade de visualizações: 1155 vezes |
|
Pergunta/Tarefa: Escreva um programa Java que cria uma lista dinamicamente encadeada (lista singularmente encadeada) e pede para o usuário inserir 5 elementos do tipo inteiro. Em seguida peça para o usuário informar um índice e um novo elemento e insira tal elemento no índice informado. Faça a validação dos índices para que ele não saia da faixa permitida. Sua saída deve ser parecida com: Inserindo 5 valores na lista Informe o 1.o valor: 8 Informe o 2.o valor: 2 Informe o 3.o valor: 4 Informe o 4.o valor: 7 Informe o 5.o valor: 3 Valores na lista: 8 -> 2 -> 4 -> 7 -> 3 -> null Inserindo um elemento no índice k Informe o índice desejado: 2 Informe o valor do nó: 9 Valores na lista: 8 -> 2 -> 9 -> 4 -> 7 -> 3 -> null Na saída podemos ver que o índice 2 corresponde ao terceiro elemento da lista ligada. Por isso o valor 4 foi empurrado para a frente para abrir espaço para o valor 9. Se o índice 0 fosse informado, o número 8 seria empurrado para a frente e o nó com valor 9 passaria a ser o início da lista ligada. Veja a resolução comentada deste exercício usando Java:
package estudos;
import java.util.Scanner;
// classe interna usada para representar um
// nó na lista ligada
class No {
int valor; // valor do nó
No proximo; // aponta para o novo nó
// construtor cheio da classe No
public No(int valor, No proximo) {
this.valor = valor;
this.proximo = proximo;
}
// construtor vazio da classe No
public No() {
this.valor = 0;
this.proximo = null;
}
}
public class Estudos {
public static void main(String args[]){
// para ler a entrada do usuário
Scanner entrada = new Scanner(System.in);
// vamos criar uma referência para o início da lista
No inicio = null;
// vamos inserir 5 valores inteiros na lista ligada
int valor;
System.out.println("Inserindo 5 valores na lista\n");
for (int i = 0; i < 5; i++) {
System.out.print("Informe o " + (i + 1) + ".o valor: ");
valor = Integer.parseInt(entrada.nextLine());
// vamos inserir este valor no final da lista
inicio = inserirFinal(inicio, valor);
}
// vamos exibir os valores na lista ligada
System.out.print("\nValores na lista: ");
exibirLista(inicio);
// vamos inserir um novo elemento no índice informado
System.out.println("\nInserindo um elemento no índice k\n");
System.out.print("Informe o índice desejado: ");
int indice = Integer.parseInt(entrada.nextLine());
// o índice é válido?
if ((indice < 0) || (indice > tamanhoLista(inicio) - 1)) {
System.out.println("O índice é inválido.");
}
else {
// vamos inserir o novo nó no índice indicado
System.out.print("Informe o valor do nó: ");
valor = Integer.parseInt(entrada.nextLine());
inicio = inserirIndice(inicio, indice, valor);
// vamos exibir os valores na lista ligada
System.out.print("\nValores na lista: ");
exibirLista(inicio);
}
}
// função que permite adicionar um nó em uma determinada
// posição da lista ligada
public static No inserirIndice(No inicio, int indice, int valor) {
// vamos apontar para o nó inicial
No atual = inicio;
// criamos um novo nó
No novo = criarNo(valor);
// a lista ligada ainda está vazia?
if (atual == null){
// inicio recebe o novo nó
inicio = novo;
}
else if (indice == 0) {
// o índice é igual a 0? vamos inserir
// o nó no início da lista ligada
novo.proximo = inicio;
inicio = novo;
}
else {
// vamos procurar o local adequado para inserção
// primeiro criamos um nó temporário
No temp = new No();
// apontamos o nó temporário para o início da lista
temp = inicio;
// e percorremos os nós até encontrar a posição
// de inserção
for(int i = 1; i < indice; i++) {
if (temp != null) {
// passa para o próximo nó
temp = temp.proximo;
}
}
// concluimos a inserção
novo.proximo = temp.proximo;
temp.proximo = novo;
}
// e retornamos o início da lista
return inicio;
}
// função que permite adicionar um nó no final da
// lista ligada
public static No inserirFinal(No inicio, int valor) {
// vamos apontar para o nó inicial
No atual = inicio;
// criamos um novo nó
No novo = criarNo(valor);
// a lista ligada ainda está vazia?
if (atual == null){
// inicio recebe o novo nó
inicio = novo;
}
else { // temos um ou mais nós na lista ligada
// vamos localizar o último nó
while (atual.proximo != null) {
atual = atual.proximo;
}
// encontramos o último nó. Agora vamos inserir
// o novo nó depois dele
atual.proximo = novo;
}
// e retornamos o início da lista
return inicio;
}
// função usada para construir e retornar um novo nó
public static No criarNo(int valor) {
// cria o novo nó
No no = new No(valor, null);
// retorna o nó criado
return no;
}
// função usada para percorrer a lista ligada e
// exibir os valores contidos em seus nós
public static void exibirLista(No inicio) {
// vamos apontar para o início da lista
No temp = inicio;
// a lista está vazia?
if (temp == null) {
System.out.println("A lista está vazia.");
}
else {
// esse laço se repete enquanto tempo for
// diferente de null
while (temp != null) {
// vamos mostrar o valor desse nó
System.out.print(temp.valor + " -> ");
// avança para o próximo nó
temp = temp.proximo;
}
// mostra o final da lista
System.out.println("null");
}
}
// função que retorna a quantidade de nós na lista ligada
public static int tamanhoLista(No inicio) {
int tamanho = 0;
// vamos apontar para o início da lista
No temp = inicio;
// a lista está vazia?
if (temp == null) {
return 0;
}
else {
// esse laço se repete enquanto tempo for
// diferente de null
while (temp != null) {
// vamos incrementar o tamanho
tamanho++;
// avança para o próximo nó
temp = temp.proximo;
}
}
return tamanho;
}
}
|
Python ::: NumPy Python Library (Biblioteca Python NumPy) ::: Passos Iniciais |
Machine Learning para iniciantes - Como usar a biblioteca NumPy em seus programas PythonQuantidade de visualizações: 2647 vezes |
|
Criada em 2005 por Travis Oliphant, a biblioteca NumPy é uma biblioteca Python que, embora escrita parcialmente em código Python, possui trechos de código C ou C++, principalmente as partes que requerem processamento ou computação mais veloz. Estudiosos, entusiastas e desenvolvedores de soluções envolvendo Data Science, Deep Learning, Machine Learning e Inteligência Artificial (IA) em geral, encontram nessa biblioteca muitas funções úteis para a criação e manipulação de vetores e matrizes, além de funções para trabalhar no domínio de algebra linear e transformação fourier. A biblioteca NumPy (Numerical Python) é um projeto open source e pode ser usada livremente em qualquer programa Python. Uma das razões para a sua adoção é a substituição das listas Python pelos vetores e matrizes NumPy, já que estes últimos são 50 vezes mais rápidas que as listas Python, que muitas vezes fazem o papel de arrays. Minha instalação do Python já possui a biblioteca NumPy? A melhor forma de descobrir se a NumPy já está disponível para os seus códigos Python é rodando o seguinte trecho de código: # importamos a bibliteca NumPy import numpy as np def main(): # construimos um vetor de cinco elementos vetor = np.array([20, 3, 87, 4, 120]) # imprimimos seu conteúdo print(vetor) if __name__== "__main__": main() Se você vir o resultado abaixo: [ 20 3 87 4 120] então sua instalação do Python já contém a biblioteca NumPy e você está pronto(a) para experimentar as demais dicas e truques dessa seção. Porém, se você ainda não tiver a NumPy, a seguinte mensagem de erro será exibida:
Exception has occurred: ModuleNotFoundError
No module named 'numpy'
File "C:\estudos_python\estudos.py", line 2, in <module>
import numpy as np
Não se desespere. Basta abrir uma janela de prompt e disparar o comando abaixo: pip install numpy Aguarde alguns minutos para que o Pip baixe e instale a biblioteca. Em seguida tente executar o código acima novamente. Agora é só aproveitar tudo que a biblioteca NumPy tem a nos oferecer. |
Python ::: Desafios e Lista de Exercícios Resolvidos ::: Engenharia Civil - Cálculo Estrutural |
Exercícios Resolvidos de Python - Como calcular as reações de apoio, momento de flexão máxima e forças cortantes em uma viga bi-apoiada com carga distribuída retangular usando PythonQuantidade de visualizações: 2444 vezes |
|
Pergunta/Tarefa: Veja a seguinte figura: ![]() Nesta imagem temos uma viga bi apoiada com uma carga q distribuída de forma retangular a uma distância l. Para fins didáticos, vamos considerar que a carga q será em kN/m e a distância l será em metros. O apoio A é de segundo gênero e o apoio B é de primeiro gênero. Escreva um programa Python que solicita ao usuário que informe o valor da carga q e a distância l entre os apoios A e B. Em seguida mostre os valores das reações nos apoios A e B, o momento de flexão máxima da viga e o momento de flexão para uma determinada distância (que o usuário informará) a partir do apoio A. Mostre também as forças cortantes nos apoios A e B. Lembre-se de que, para uma carga distribuída de forma retangular, o diagrama de momento fletor é uma parábola, enquanto o diagrama de cortante é uma reta (com o valor zero para a força cortante no meio da viga). Sua saída deve ser parecida com: Valor da carga em kN/m: 10 Distância em metros: 13 A reação no apoio A é: 65.000000 kN A reação no apoio B é: 65.000000 kN O momento fletor máximo é: 211.250000 kN.m Informe uma distância a partir do apoio A: 4 O momento fletor na distância informada é: 180.000000 kN.m A força cortante no apoio A é: 65.000000 kN A força cortante no apoio B é: -65.000000 kN Veja a resolução comentada deste exercício usando Python:
# Algoritmo que calcula reação de apoio, momento fletor
# e força cortante em uma viga bi-apoiada em Python
# vamos importar o módulo Math
import math
# função principal do programa
def main():
# vamos pedir para o usuário informar o valor da carga
carga = float(input("Valor da carga em kN/m: "))
# vamos pedir para o usuário informar a distância entre os apoios
distancia = float(input("Distancia em metros: "))
# vamos calcular a reação no apoio A
reacao_a = (1.0 / 2.0) * carga * distancia
# vamos calcular a reação no apoio B
reacao_b = reacao_a
# vamos calcular o momento fletor máximo
flexao_maxima = (1.0 / 8.0) * carga * math.pow(distancia, 2.0)
# e mostramos o resultado
print("\nA reação no apoio A é: {0} kN".format(reacao_a))
print("A reação no apoio B é: {0} kN".format(reacao_b))
print("O momento fletor máximo é: {0} kN.m".format(flexao_maxima))
# vamos pedir para o usuário informar uma distância a
# partir do apoio A
distancia_temp = float(input("\nInforme uma distância a partir do apoio A: "))
# vamos mostrar o momento fletor na distância informada
if distancia_temp > distancia:
print("\nDistância inválida.")
else:
flexao_distancia = (1.0 / 2.0) * carga * distancia_temp * \
(distancia - distancia_temp)
print("O momento fletor na distância informada é: {0} kN.m".format(
flexao_distancia))
# vamos mostrar a força cortante no apoio A
cortante_a = (1.0 / 2.0) * carga * distancia
print("\nA força cortante no apoio A é: {0} kN".format(cortante_a))
# vamos mostrar a força cortante no apoio B
cortante_b = cortante_a * -1
print("A força cortante no apoio B é: {0} kN".format(cortante_b))
if __name__== "__main__":
main()
|
PHP ::: Dicas & Truques ::: Strings e Caracteres |
Como testar se duas strings são iguais em PHP sem considerar maiúsculas e minúsculas usando a função strcasecmp()Quantidade de visualizações: 2 vezes |
|
Em algumas situações nós gostaríamos de testar se duas strings são iguais em PHP, sem diferentes letras maiúsculas e minúsculas. Isso pode ser feito com o auxílio da função strcasecmp(), que retorna um valor 0 se as duas strings forem iguais. Veja um exemplo completo de seu uso:
<?php
$palavra1 = "Programar";
$palavra2 = "PROGRAMAR";
echo "A primeira palavra é: " . $palavra1;
echo "\nA segunda palavra é: " . $palavra2;
if(strcasecmp($palavra1, $palavra2) == 0){
echo "\nAs duas palavras são iguais";
}
else{
echo "\nAs duas palavras são diferentes";
}
?>
Ao executar este código PHP nós teremos o seguinte resultado: A primeira palavra é: Programar A segunda palavra é: PROGRAMAR As duas palavras são iguais |
Portugol ::: Desafios e Lista de Exercícios Resolvidos ::: Arrays e Matrix (Vetores e Matrizes) |
Exercícios Resolvidos de Portugol - Faça um algoritmo em Portugol que leia 9 números inteiros, guarde-os em uma matriz 3x3 e mostre os números paresQuantidade de visualizações: 1548 vezes |
|
Pergunta/Tarefa: Faça um algoritmo em Portugol que leia 9 números inteiros e guarde-os em uma matriz 3x3. Imprima a matriz no formato tabular, usando a melhor formatação que você conseguir. Em seguida, percorra a matriz novamente e imprima somente os números que são pares, todos na mesma linha e separados por espaço. Sua saída deverá ser parecida com:
Linha 1 e coluna 1: 8
Linha 1 e coluna 2: 1
Linha 1 e coluna 3: 5
Linha 2 e coluna 1: 3
Linha 2 e coluna 2: 9
Linha 2 e coluna 3: 30
Linha 3 e coluna 1: 7
Linha 3 e coluna 2: 23
Linha 3 e coluna 3: 10
Valores na matriz
8 1 5
3 9 30
7 23 10
Os valores pares são: 8 30 10
Veja a resolução completa para o exercício em Portugol, comentada linha a linha (fiz a resolução no Portugol Webstudio):
// Um algoritmo que lê uma matriz 3x3
programa {
funcao inicio() {
// variáveis usadas na resolução do problema
inteiro matriz[3][3]
inteiro i, j
// vamos pedir para o usuário informar os valores
// dos elementos da matriz, uma linha de cada vez
para (inteiro i = 0; i < 3; i++) {
para (inteiro j = 0; j < 3; j++) {
escreva("Linha ", (i + 1), " e coluna ", (j + 1), ": ")
leia(matriz[i][j])
}
}
// vamos mostrar a matriz da forma que ela foi informada
escreva("\nValores na matriz:\n\n")
para (inteiro i = 0; i < 3; i++) {
para (inteiro j = 0; j < 3; j++) {
escreva(matriz[i][j], " ")
}
// passa para a próxima linha da matriz
escreva("\n")
}
// agora vamos percorrer a matriz novamente e mostrar
// apenas os valores pares
escreva("\nOs valores pares são: ")
para (inteiro i = 0; i < 3; i++) {
para (inteiro j = 0; j < 3; j++) {
// é um número par?
se (matriz[i][j] % 2 == 0) {
escreva(matriz[i][j], " ")
}
}
}
}
}
|
Mais Desafios de Programação e Exercícios e Algoritmos Resolvidos de Portugol |
Veja mais Dicas e truques de Portugol |
Dicas e truques de outras linguagens |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
|
1º lugar: Java |





