![]() |
|
|
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 - Estruturas de Aço e Madeira |
||
|
||
|
|
||
PHP ::: Dicas & Truques ::: Trigonometria - Funções Trigonométricas |
Como converter radianos em graus em PHP usando a função rad2deg()Quantidade de visualizações: 10192 vezes |
|
As unidades graus e radianos são muito usadas em cálculos de trigonometria, especialmente em aplicações que lidam com geometria, topografia e engenharia. O grau é de uso mais no cotidiano, pela sua praticidade, pois envolve na maioria dos casos números inteiros. O radiano, por sua vez, é de uso em cálculos envolvendo geralmente números racionais. Este trecho de código PHP mostra como converter radianos em graus usando a função rad2deg().
<?php
// vamos definir um valor em radianos
$radianos = 1.45;
// agora vamos converter para graus
$graus = rad2deg($radianos);
echo $radianos . " radianos convertido para graus é " .
$graus . "<br>";
// outra forma:
echo $radianos . " radianos convertido para graus é " .
($radianos * 180) / pi();
?>
Ao executar este código PHP nós teremos o seguinte resultado: 1.45 radianos convertido para graus é 83.078880293969 |
Delphi ::: Dicas & Truques ::: Arrays e Matrix (Vetores e Matrizes) |
Delphi para iniciantes - Como escrever uma função que retorna uma matriz de IntegerQuantidade de visualizações: 14049 vezes |
Em algumas situações precisamos retornar uma matriz a partir de uma função. Nesta dica eu mostro como isso pode ser feito. O primeiro passo é declarar um novo tipo. Veja:type // vamos declarar um novo tipo TMatrizInteiros = array of Integer; Aqui o tipo TMatrizInteiros representa uma matriz de inteiros. Veja a unit completa para o exemplo:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
Memo1: TMemo;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
type // vamos declarar um novo tipo
TMatrizInteiros = array of Integer;
var
Form1: TForm1;
implementation
{$R *.dfm}
// função usada para construir e retornar uma
// matriz de Integer
function obterValores: TMatrizInteiros;
var
tempArray: TMatrizInteiros;
i: integer;
begin
// vamos definir o tamanho da matriz
SetLength(tempArray, 10);
// vamos inicializar a matriz com os números pares de 0 até 18
// note que em matrizes abertas o índice inicial é sempre 0
for i := Low(tempArray) to High(tempArray) do
begin
tempArray[i] := i * 2;
end;
Result := tempArray; // vamos retornar a matriz
end;
procedure TForm1.Button1Click(Sender: TObject);
var
valores: TMatrizInteiros; // uma matriz do tipo TMatrizInteiros
i: Integer;
begin
valores := obterValores();
// que já temos a matriz, vamos exibir os valores de
// seus elementos
for i := 0 to High(valores) do
begin
Memo1.Lines.Add(IntToStr(valores[i]));
end;
end;
end.
Note que a função retornará uma matriz aberta (open array). Desta forma, seu índice inicial será sempre 0. |
Java ::: Desafios e Lista de Exercícios Resolvidos ::: Recursão (Recursividade) |
Exercícios Resolvidos de Java - Uma função recursiva que conta quantas vezes um valor inteiro k ocorre em um vetor de inteirosQuantidade de visualizações: 2431 vezes |
|
Pergunta/Tarefa: Escreva um método recursivo que conta quantas vezes um valor inteiro k ocorre em um vetor de 10 inteiros. Seu método deverá ter a seguinte assinatura:
public static int quantRepeticoes(int indice, int valor, int[] vetor){
// sua implementação aqui
}
Informe o 1 valor: 2 Informe o 2 valor: 7 Informe o 3 valor: 4 Informe o 4 valor: 7 Informe o 5 valor: 1 Informe o valor a ser pesquisado no vetor: 7 O valor informado se repete 2 vezes. Veja a resolução comentada deste exercício usando Java console:
package exercicio;
import java.util.Scanner;
public class Exercicio {
public static void main(String[] args) {
// cria um novo objeto da classe Scanner
Scanner entrada = new Scanner(System.in);
// vamos declarar um vetor de 10 inteiros
int valores[] = new int[5];
// vamos pedir ao usuário que informe os valores do vetor
for(int i = 0; i < valores.length; i++){
System.out.print("Informe o " + (i + 1) + " valor: ");
// efetua a leitura do valor informado para a posição atual do vetor
valores[i] = Integer.parseInt(entrada.nextLine());
}
// agora vamos pedir para informar o valor a ser pesquisado
System.out.print("\nInforme o valor a ser pesquisado no vetor: ");
int valor = Integer.parseInt(entrada.nextLine());
// e vamos ver a quantidade de repetições
int repeticoes = quantRepeticoes(0, valor, valores);
System.out.print("O valor informado se repete " + repeticoes + " vezes.");
System.out.println("\n");
}
// método recursivo que recebe um valor
public static int quantRepeticoes(int indice, int valor, int[] vetor){
if(indice == vetor.length - 1){ // caso base...hora de parar a recursividade
if(vetor[indice] == valor){
return 1; // mais um repetição foi encontrada
}
}
else{ // dispara mais uma chamada recursiva
if(vetor[indice] == valor){ // houve mais uma repetição
return 1 + quantRepeticoes(indice + 1, valor, vetor);
}
else{
return 0 + quantRepeticoes(indice + 1, valor, vetor); // não repetiu
}
}
return 0; // só para deixar o compilador satisfeito...esta linha nunca é executada
}
}
|
Java ::: Desafios e Lista de Exercícios Resolvidos ::: Arrays e Matrix (Vetores e Matrizes) |
Exercícios e Algorítmos Resolvidos de Java - Programa Java para somar os elementos da diagonal secundária de uma matrizQuantidade de visualizações: 9920 vezes |
|
Pergunta/Tarefa: Em álgebra linear, a diagonal secundária de uma matriz A é a coleção das entradas Aij em que i + j é igual a n + 1 (onde n é a ordem da matriz). A diagonal secundária de uma matriz quadrada une o seu canto inferior esquerdo ao canto superior direito (conforme mostrado na saída do problema proposto abaixo). Escreva um programa (algorítmo) Java que declara uma matriz 3x3 e pede ao usuário para informar seus valores. Em seguida mostre todos os valores da matriz e a soma dos elementos da diagonal secundária. Sua saída deverá ser parecida com a imagem abaixo:
Informe o valor para a linha 0 e coluna 0: 5
Informe o valor para a linha 0 e coluna 1: 2
Informe o valor para a linha 0 e coluna 2: 7
Informe o valor para a linha 1 e coluna 0: 5
Informe o valor para a linha 1 e coluna 1: 3
Informe o valor para a linha 1 e coluna 2: 12
Informe o valor para a linha 2 e coluna 0: 4
Informe o valor para a linha 2 e coluna 1: 10
Informe o valor para a linha 2 e coluna 2: 1
5 2 7
5 3 12
4 10 1
A soma dos elementos da diagonal secundária é: 14
Veja a resolução comentada deste exercício usando Java console:
package exercicios;
import java.util.Scanner;
public class Exercicios {
public static void main(String[] args) {
// vamos fazer a leitura usando a classe Scanner
Scanner entrada = new Scanner(System.in);
// vamos declarar e construir uma matriz de três linhas e
// três colunas
int matriz[][] = new int[3][3];
int soma_diagonal = 0; // guarda a soma dos elementos na
// diagonal secundária
// vamos ler os valores para os elementos da matriz
for(int i = 0; i < matriz.length; i++){ // linhas
for(int j = 0; j < matriz[0].length; j++){ // colunas
System.out.print("Informe o valor para a linha " + i
+ " e coluna " + j + ": ");
matriz[i][j] = Integer.parseInt(entrada.nextLine());
}
}
// vamos mostrar a matriz da forma que ela foi informada
System.out.println();
for(int i = 0; i < matriz.length; i++){ // percorre as linhas
for(int j = 0; j < matriz[0].length; j++){ // percorre as colunas
System.out.printf("%5d ", matriz[i][j]);
}
// passa para a próxima linha da matriz
System.out.println();
}
// vamos calcular a soma dos elementos da diagonal secundária
int ordem = 3; // ordem da matriz
for(int i = 1; i <= matriz.length; i++){
for(int j = 1; j <= matriz[0].length; j++){
if((i + j) == (ordem + 1)){
soma_diagonal = soma_diagonal + matriz[i - 1][j - 1];
}
}
}
// finalmente mostramos a soma da diagonal secundária
System.out.println("\nA soma dos elementos da diagonal secundária é: " +
soma_diagonal);
}
}
|
C ::: Estruturas de Dados ::: Lista Ligada Simples |
Estruturas de Dados em C - Como remover um nó no final de uma lista ligada simples em C - Listas encadeadas em CQuantidade de visualizações: 2439 vezes |
Nesta dica mostraremos como é possível excluir o nó no fim (o último nó) de uma lista encadeada simples (singly linked list) em C. Veja a função:
// função que permite remover um nó no fim
// da lista, ou seja, o último nó da lista.
// A função retorna um ponteiro para o início da lista
struct No *remover_final(struct No *inicio){
struct No *n; // nó que será removido
// nó que antecede o nó a ser removido. Isso
// faz sentido, já que ele será o último nó
// agora
struct No *anterior;
n = inicio; // aponta para o início da lista
// varremos os nós da lista e paramos um nó antes do
// nó a ser excluído
while(n->proximo != NULL){
anterior = n; // anterior assume o lugar de n
n = n->proximo; // e n assume o seu próximo
}
// anterior passa a ser o último nó agora
anterior->proximo = NULL;
// mostra o nó removido
printf("\nNo removido: %d\n", n->valor);
free(n); // libera o nó que antes era o último
return inicio;
}
Note que a função recebe um ponteiro para o início da lista e retorna também um ponteiro para o início da lista. Tenha o cuidado de verificar se a lista não está vazia antes de tentar fazer a exclusão. No exemplo eu fiz isso na função main(). Veja a listagem completa abaixo:
#include <stdio.h>
#include <stdlib.h>
// estrutura Nó
struct No{
int valor;
struct No *proximo;
};
// fim da estrutura Nó
// função que permite exibir os valores de
// todos os nós da lista
void exibir(struct No *n){
if(n != NULL){
do{
printf("%d\n", n->valor);
n = n->proximo;
}while(n != NULL);
}
else
printf("A lista esta vazia\n\n");
}
// função que permite remover um nó no fim
// da lista, ou seja, o último nó da lista.
// A função retorna um ponteiro para o início da lista
struct No *remover_final(struct No *inicio){
struct No *n; // nó que será removido
// nó que antecede o nó a ser removido. Isso
// faz sentido, já que ele será o último nó
// agora
struct No *anterior;
n = inicio; // aponta para o início da lista
// varremos os nós da lista e paramos um nó antes do
// nó a ser excluído
while(n->proximo != NULL){
anterior = n; // anterior assume o lugar de n
n = n->proximo; // e n assume o seu próximo
}
// anterior passa a ser o último nó agora
anterior->proximo = NULL;
// mostra o nó removido
printf("\nNo removido: %d\n", n->valor);
free(n); // libera o nó que antes era o último
return inicio;
}
// função que permite inserir nós no
// final da lista.
// veja que a função recebe o valor a ser
// armazenado em cada nó e um ponteiro para o
// início da lista. A função retorna um
// ponteiro para o início da lista
struct No *inserir_final(struct No *n, int v){
// reserva memória para o novo nó
struct No *novo = (struct No*)malloc(sizeof(struct No));
novo->valor = v;
// verifica se a lista está vazia
if(n == NULL){
// é o primeiro nó...não deve apontar para
// lugar nenhum
novo->proximo = NULL;
return novo; // vamos retornar o novo nó como sendo o início da lista
}
else{ // não está vazia....vamos inserir o nó no final
// o primeiro passo é chegarmos ao final da lista
struct No *temp = n; // vamos obter uma referência ao primeiro nó
// vamos varrer a lista até chegarmos ao último nó
while(temp->proximo != NULL){
temp = temp->proximo;
}
// na saída do laço temp aponta para o último nó da lista
// novo será o último nó da lista...o campo próximo dele deve
// apontar para NULL
novo->proximo = NULL;
// vamos fazer o último nó apontar para o nó recém-criado
temp->proximo = novo;
return n; // vamos retornar o início da lista intacto
}
}
int main(int argc, char *argv[])
{
// declara a lista
struct No *inicio = NULL;
// vamos inserir quatro valores no final
// da lista
inicio = inserir_final(inicio, 45);
inicio = inserir_final(inicio, 3);
inicio = inserir_final(inicio, 98);
inicio = inserir_final(inicio, 47);
// vamos exibir o resultado
printf("Valores presentes na lista ligada antes da remocao:\n");
exibir(inicio);
// vamos remover o nó no fim da lista
if(inicio != NULL){
inicio = remover_final(inicio);
}
// vamos exibir o resultado
printf("\nValores presentes na lista ligada apos a remocao:\n");
exibir(inicio);
system("pause");
return 0;
}
Ao executar esse código você terá o seguinte resultado: Valores presentes na lista ligada antes da remocao: 45 3 98 47 No removido: 47 Valores presentes na lista ligada apos a remocao: 45 3 98 Pressione qualquer tecla para continuar. . . |
Desafios, Exercícios e Algoritmos Resolvidos de C |
Veja mais Dicas e truques de C |
Dicas e truques de outras linguagens |
|
Java - Como retornar a hora atual em Java usando um objeto da classe Calendar - Datas e Horas em Java |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
|
1º lugar: Java |




