![]() |
|
|
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 Cards de Hidrologia |
||
|
||
|
|
||
PHP ::: Dicas & Truques ::: Arrays e Matrix (Vetores e Matrizes) |
Como obter apenas os elementos duplicados em um vetor usando as funções array_unique() e array_diff_assoc() do PHPQuantidade de visualizações: 15765 vezes |
Em algumas situações precisamos obter apenas os elementos que se repetem em um vetor (array). Isso pode ser feito combinando-se as funções array_unique() e array_diff_assoc(). Veja:
<?
// vamos declarar e inicializar um array de inteiros
$valores = array(9, 2, 6, 11, 6, 9, 3, 6);
// vamos listar os valores dos elementos no array
echo "Elementos no array:<br>";
for($i = 0; $i < count($valores); $i++){
echo $valores[$i] . " - ";
}
// vamos exibir apenas os valores duplicados
// Aviso: não use o laço for para percorrer o array
// resultante. Em vez disso use foreach
$valores = array_unique(array_diff_assoc(
$valores, array_unique($valores)));
echo "<br><br>Elementos repetidos:<br>";
foreach($valores as $valor){
echo $valor . " - ";
}
?>
A execução deste código produz o seguinte resultado: Elementos no array: 9 - 2 - 6 - 11 - 6 - 9 - 3 - 6 - Elementos repetidos: 6 - 9 - |
Python ::: Python para Engenharia ::: Geometria Analítica e Álgebra Linear |
Como calcular vetor unitário em Python - Python para Física e EngenhariaQuantidade de visualizações: 1237 vezes |
|
Um vetor unitário ou versor num espaço vetorial normado é um vetor (mais comumente um vetor espacial) cujo comprimento ou magnitude é 1. Em geral um vetor unitário é representado por um "circunflexo", assim: __$\hat{i}__$. O vetor normalizado __$\hat{u}__$ de um vetor não zero __$\vec{u}__$ é o vetor unitário codirecional com __$\vec{u}__$. O termo vetor normalizado é algumas vezes utilizado simplesmente como sinônimo para vetor unitário. Dessa forma, o vetor unitário de um vetor __$\vec{u}__$ possui a mesma direção e sentido, mas magnitude 1. Por magnitude entendemos o módulo, a norma ou comprimento do vetor. Então, vejamos a fórmula para a obtenção do vetor unitário: \[\hat{u} = \dfrac{\vec{v}}{\left|\vec{v}\right|}\] Note que nós temos que dividir as componentes do vetor pelo seu módulo de forma a obter o seu vetor unitário. Por essa razão o vetor nulo não possui vetor unitário, pois o seu módulo é zero, e, como sabemos, uma divisão por zero não é possível. Veja agora o código Python que pede as coordenadas x e y de um vetor 2D ou R2 e retorna o seu vetor unitário:
# vamos precisar do módulo Math
import math
# função principal do programa
def main():
# vamos ler os valores x e y
x = float(input("Informe o valor de x: "))
y = float(input("Informe o valor de y: "))
# o primeiro passo é calcular a norma do vetor
norma = math.sqrt(math.pow(x, 2) + math.pow(y, 2))
# agora obtemos as componentes x e y do vetor unitário
u_x = x / norma
u_y = y / norma
# mostra o resultado
print("O vetor unitário é: (x = {0}; y = {1})".format(u_x, u_y))
if __name__== "__main__":
main()
Ao executar este código Python nós teremos o seguinte resultado: Informe o valor de x: -4 Informe o valor de y: 6 O vetor unitário é: (x = -0.5547001962252291; y = 0.8320502943378437) Veja agora uma modificação deste código para retornarmos o vetor unitário de um vetor 3D ou R3, ou seja, um vetor no espaço:
# vamos precisar do módulo Math
import math
# função principal do programa
def main():
# vamos ler os valores x, y e z
x = float(input("Informe o valor de x: "))
y = float(input("Informe o valor de y: "))
z = float(input("Informe o valor de z: "))
# o primeiro passo é calcular a norma do vetor
norma = math.sqrt(math.pow(x, 2) + math.pow(y, 2) + math.pow(z, 2))
# agora obtemos as componentes x, y e z do vetor unitário
u_x = x / norma
u_y = y / norma
u_z = z / norma
# mostra o resultado
print("O vetor unitário é: (x = {0}; y = {1}; z = {2})".format(
u_x, u_y, u_z))
if __name__== "__main__":
main()
Ao executarmos este novo código nós teremos o seguinte resultado: Informe o valor de x: 3 Informe o valor de y: 7 Informe o valor de z: 5 O vetor unitário é: (x = 0.329292779969071; y = 0.7683498199278324; z = 0.5488212999484517) |
Java ::: Desafios e Lista de Exercícios Resolvidos ::: Java Básico |
Exercícios Resolvidos de Java - Valor da diária, valor médio arrecadado com e sem promoção e o lucro ou prejuízo mensal de uma promoção em um hotelQuantidade de visualizações: 15274 vezes |
|
Pergunta/Tarefa: Escreva um programa Java para resolver o seguinte problema: Um hotel com 42 apartamentos resolveu fazer promoções para os fins de semana fora da alta temporada, isto é, nos meses de abril, maio, junho, agosto, setembro, outubro e novembro. A taxa da promoção é de 22% da diária normal. A ocupação média do hotel sem promoção é de 40%. A expectativa é aumentar a taxa de ocupação para 70%. Supondo que as expectativas se confirmem, escrever um algoritmo que lê a diária normal, que calcule e escreva as seguintes informações: (a) O valor da diária no período da promoção. (b) O valor médio arrecadado sem a promoção, durante um mês. (c) O valor médio arrecadado com a promoção, durante um mês. (d) O lucro ou prejuízo mensal com a promoção. Seu código Java deverá apresentar uma saída parecida com: Informe o valor da diária normal: 120 Diária no período de promoção: 26,40 Média arrecadada sem a promoção durante um mês: 8064,00 Média arrecadada com a promoção durante um mês: 3104,64 Prejuízo mensal com a promoção: 4959,36 Veja a resolução comentada deste exercício usando Java console (lendo a entrada do usuário por meio do uso da classe Scanner):
package estudos;
import java.util.Scanner;
public class Estudos {
public static void main(String[] args) {
// vamos criar um objeto da classe Scanner
Scanner entrada = new Scanner(System.in);
// valor da diária em período normal
double valor_diaria_normal;
// valor da diária no período de promoção
double valor_diaria_promocao;
// vamos obter o valor da diária no período normal
System.out.print("Informe o valor da diária normal: ");
valor_diaria_normal = Double.parseDouble(entrada.nextLine());
// vamos obter o valor da diária no período promocional
valor_diaria_promocao = valor_diaria_normal * (22.0 / 100.0);
// vamos calcular o valor médio arrecadado sem a promoção, durante um mês
// estamos assumindo 4 finais de semana por mês
double media_arrecado_sem_promocao = (valor_diaria_normal
* (42 * (40.0 / 100.0)) * 4);
// vamos calcular o valor médio arrecadado com a promoção, durante um mês
// estamos assumindo 4 finais de semana por mês
double media_arrecado_com_promocao = (valor_diaria_promocao
* (42 * (70.0 / 100.0)) * 4);
System.out.printf("Diária no período de promoção: %.2f\n",
valor_diaria_promocao);
System.out.printf("Média arrecadada sem a promoção durante um mês: %.2f\n",
media_arrecado_sem_promocao);
System.out.printf("Média arrecadada com a promoção durante um mês: %.2f\n",
media_arrecado_com_promocao);
// houve lucro ou prejuízo?
if (media_arrecado_sem_promocao < media_arrecado_com_promocao) {
System.out.printf("Lucro mensal com a promoção: %.2f\n",
media_arrecado_com_promocao - media_arrecado_sem_promocao);
}
else {
System.out.printf("Prejuízo mensal com a promoção: %.2f\n",
media_arrecado_sem_promocao - media_arrecado_com_promocao);
}
}
}
|
C ::: Dicas & Truques ::: Struct (Estruturas, Registros) |
Como alocar memória para instâncias de uma estrutura (struct) e acessá-las usando ponteiros em CQuantidade de visualizações: 11809 vezes |
|
Esta dica mostra como declarar uma estrutura (struct), alocar duas instâncias desta e acessá-las usando ponteiros. Considere a seguinte struct:
// define a estrutura Livro
struct Livro{
char titulo[80];
int codigo;
int paginas;
};
Note que agora a variável titulo foi declarada como uma matriz de caracteres de 80 posições. Mais adiante você entenderá o propósito de tal abordagem. Veja agora como alocamos memória para duas instâncias desta estrutura: // cria dois ponteiros para duas instâncias (recém-alocadas) // de Livro Livro *a = (struct Livro*)malloc(sizeof(struct Livro)); Livro *b = (struct Livro*)malloc(sizeof(struct Livro)); A partir deste ponto as variáveis a e b são ponteiros para as duas instâncias recém alocadas. Observe que, quando usamos ponteiros para estruturas, seus membros são acessados usando-se a notação -> em vez do ponto. Veja: a->codigo = 342; a->paginas = 230; Para definir o valor para o membro titulo é preciso lançar mão da função strcpy(). Isso é feito porque estamos lidando com ponteiros, e cada instância de Livro possui sua área de memória a partir da qual a posição inicial da cadeia de caracteres que receberá o título do livro já foi inicializada. Veja: strcpy(a->titulo, "Programando em Java"); Observe agora o código completo para o exemplo:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
// define a estrutura Livro
struct Livro{
char titulo[80];
int codigo;
int paginas;
};
int main(int argc, char *argv[]){
// cria dois ponteiros para duas instâncias (recém-alocadas)
// de Livro
Livro *a = (struct Livro*)malloc(sizeof(struct Livro));
Livro *b = (struct Livro*)malloc(sizeof(struct Livro));
// preenche os dados do primeiro Livro
// Estamos usando ponteiros agora. Para definir o título
// do livro é preciso usar a função strcpy, já que estamos
// usando uma cadeia de caracteres
strcpy(a->titulo, "Programando em Java");
a->codigo = 342;
a->paginas = 230;
// preenche os dados do segundo Livro
strcpy(b->titulo, "JavaScript - O Guia Prático");
b->codigo = 675;
b->paginas = 930;
// exibe os dados do primeiro livro
printf("Primeiro Livro\nTitulo: %s\nCodigo: %d\nPaginas: %d\n",
a->titulo, a->codigo, a->paginas);
// exibe os dados do segundo livro
printf("\nSegundo Livro\nTitulo: %s\nCodigo: %d\nPaginas: %d\n",
b->titulo, b->codigo, b->paginas);
puts("\n\n");
system("PAUSE");
return 0;
}
|
Java ::: Desafios e Lista de Exercícios Resolvidos ::: Programação Orientada a Objetos |
POO - Programação Orientada a Objetos - Exercícios Resolvidos de Java - Ex. 2 - A classe Circulo (construtores, métodos, getters e setters e encapsulamento)Quantidade de visualizações: 20620 vezes |
|
Pergunta/Tarefa: Escreva uma classe Circulo para representar círculos. Esta classe deverá conter os seguintes atributos e métodos: a) Uma variável privada do tipo double chamada raio que guardará o valor do raio atual do circulo. b) Métodos get() e set() públicos que permitem definir e acessar o valor da variável raio. c) Um construtor que recebe o valor do raio como argumento. d) Um método getArea() que calcula e retorna a área do círculo. e) Um método getCircunferencia() que calcula e retorna a circunferência do círculo. f) Um método aumentarRaio() que recebe um valor double e o usa como percentual para aumentar o raio do círculo. Crie uma classe contendo um método main() para testar a funcionalidade da classe Circulo. Eis um exemplo de entrada e saída: ![]() Resposta/Solução: Veja a resolução comentada deste exercício usando Java console: Circulo.java:
package estudos;
public class Circulo{
private double raio; // guarda o raio atual do círculo
// construtor que recebe o valor do raio como argumento
public Circulo(double raio){
this.raio = raio;
}
// permite obter o raio do círculo
public double getRaio(){
return raio;
}
// permite definir o raio do círculo
public void setRaio(double raio){
this.raio = raio;
}
// obtém a área do círculo
public double getArea(){
double area = Math.PI * Math.pow(this.raio, 2);
return area;
}
// obtém a circunferência do círculo
public double getCircunferencia(){
double circunferencia = (2 * Math.PI) * this.raio;
return circunferencia;
}
// permite aumentar o raio de acordo com uma porcentagem fornecida
public void aumentarRaio(double porcentagem){
this.raio = this.raio + (porcentagem / 100.0) * this.raio;
}
}
Veja agora o método main() que nos permite testar a funcionalidade da classe Circulo:
package estudos;
import java.util.Scanner;
public class Estudos {
public static void main(String[] args) {
// vamos criar uma instância da classe Circulo
Scanner entrada = new Scanner(System.in);
System.out.print("Informe o raio do círculo: ");
double raio = Double.parseDouble(entrada.nextLine());
Circulo c = new Circulo(raio);
// vamos mostrar o valor do raio atual
System.out.println("Raio: " + c.getRaio());
// vamos mostrar a área
System.out.println("Área: " + c.getArea() + " metros quadrados");
// vamos mostrar a circunferência
System.out.println("Circunferência: " + c.getCircunferencia() + " metros");
// vamos aumentar o raio do circulo em uma determinada porcentagem
System.out.print("\nInforme o percentual de aumento do raio: ");
double percentual = Double.parseDouble(entrada.nextLine());
c.aumentarRaio(percentual);
// vamos mostrar o valor do raio atual
System.out.println("Raio: " + c.getRaio());
// vamos mostrar a área
System.out.println("Área: " + c.getArea() + " metros quadrados");
// vamos mostrar a circunferência
System.out.println("Circunferência: " + c.getCircunferencia() + " metros");
}
}
|
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 |
|
Java - Estruturas de Dados em Java - Como inserir nós no início de uma lista singularmente ligada em Java |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
|
1º lugar: Java |





