![]() |
|
|
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 |
||
|
||
|
|
||
Java ::: Pacote java.awt ::: Graphics |
Como desenhar linhas em determinados ângulos usando o método drawLine() da classe Graphics - Computação Gráfica em JavaQuantidade de visualizações: 14392 vezes |
É possível usar o método drawLine() da classe Graphics para desenhar linhas em determinados ângulos. Observe atentamente a assinatura deste método:public abstract void drawLine(int x1, int y1, int x2, int y2) Aqui x1 e x2 representam as coordenadas iniciais da linha e x2 e y2 representam as coordenadas finais. Assim, vamos analisar a fórmula matemática que permite definir o ângulo de desenho. Comece definindo os valores para as coordenadas iniciais x1 e y1, o ângulo desejado e o comprimento da linha: int x1 = 30; int y1 = 50; int ang = 0; int comp = 100; Vamos começar obtendo a coordenada x final, que chamaremos de x2. Já sabemos que o ângulo é 0, então obteremos uma linha horizontal para a direita. Vamos ao cálculo: int x2 = (int)(x1 + Math.cos(ang / 180.0 * Math.PI) * comp); Já sabemos que o valor de x2 é igual a 0 pois (pode testar na barra de endereços de seu browser): javascript:alert(0 / 180.0 * Math.PI) resulta em 0 e: javascript:alert(Math.cos(0)) resulta em 1. Assim: x1 + (1 * 100) = 130. Para que nosso código esteja correto, o valor de y2 deverá ser igual a y1. Vejamos: int y2 = (int)(y1 - Math.sin(ang / 180.0 * Math.PI) * comp); Já sabemos que (ang / 180.0 * Math.PI) resulta em 0 e que o seno de 0 é 0. Assim: y1 - (0 * 100) = 50. Veja o código completo:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class Estudos extends JFrame{
JLabel label;
public Estudos() {
super("Desenhando em um JLabel");
Container c = getContentPane();
c.setLayout(new BorderLayout());
// Cria um JLabel
label = new JLabel();
c.add(label, BorderLayout.CENTER);
// Cria um botão
JButton btn = new
JButton("Desenhar uma linha (ângulo)");
btn.addActionListener(
new ActionListener(){
public void actionPerformed(ActionEvent e){
// Desenha uma string no JLabel
int x1 = 30; // coordenada inicial x
int y1 = 50; // coordenada inicial y
int ang = 0; // ângulo
int comp = 100; // comprimento
// coordenada x final
int x2 = (int)(x1 +
Math.cos(ang / 180.0 * Math.PI) * comp);
// coordenada y final
int y2 = (int)(y1 -
Math.sin(ang / 180.0 * Math.PI) * comp);
Graphics graphics = label.getGraphics();
graphics.drawLine(x1, y1, x2, y2);
}
}
);
// Adiciona o botão à janela
c.add(btn, BorderLayout.SOUTH);
setSize(350, 250);
setVisible(true);
}
public static void main(String args[]){
Estudos app = new Estudos();
app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
Experimente agora fornecer ângulos diferentes, por exemplo, 45 (uma linha diagonal para a direita e para cima), 90 (uma linha vertical para cima), 135 (uma linha diagonal para a esquerda e para cima), 180 (uma linha horizontal para a esquerda), 225 (uma linha diagonal para a esquerda e para baixo), 270 (uma linha vertical para baixo), 315 (uma linha diagonal para a direita e para baixo) e 360 (uma linha horizontal para a direita). Há algo de interessante neste código. Se você maximizar, minimizar ou redimensionar a janela verá que o desenho é apagado. Isso acontece porque todas as vezes que a janela sofre alguma alteração, ela é pintada novamente, juntamente com seus componentes filhos. Se você deseja que o desenho seja feito automaticamente novamente, é melhor fazer uma sub-classe do componente desejado e sobrescrever seu método paintComponent(). Nesta mesma seção você encontrará exemplos de como fazer isso. |
Portugol ::: Dicas & Truques ::: Cadeias e Caracteres |
Como converter uma palavra, frase ou texto para letras minúsculas usando a função caixa_baixa() da biblioteca Texto do PortugolQuantidade de visualizações: 694 vezes |
|
Em algumas situações nós precisamos converter uma letra, palavra, frase ou texto em letras minúsculas. Na linguagem Portugol isso pode ser feito usando-se a função caixa_baixa() da biblioteca Texto. Veja um código Portugol completo no qual pedimos para o usuário informar o seu nome e mostramos o resultado convertido para letras minúsculas:
programa {
// vamos incluir a biblioteca Texto
inclua biblioteca Texto --> texto
funcao inicio() {
// vamos declarar uma variável para guardar o nome de uma pessoa
cadeia nome, nome_minusculo
// vamos pedir para o usuário informar o seu nome
escreva("Informe o seu nome: ")
leia(nome)
// vamos converter o nome para letras minúsculas
nome_minusculo = texto.caixa_baixa(nome)
// vamos mostrar o resultado
escreva("O seu nome em letras minúsculas é: " + nome_minusculo)
}
}
Ao executar este código Portugol nós teremos o seguinte resultado: Informe o seu nome: Fabiana de Carvalho Gomes O seu nome em letras minúsculas é: fabiana de carvalho gomes |
C ::: Dicas & Truques ::: Strings e Caracteres |
Como escrever uma função is_numeric() em C que verifica se uma string contém apenas dígitos de 0 a 9Quantidade de visualizações: 10648 vezes |
Em algumas situações precisamos verificar se uma string contém apenas dígitos de 0 a 9, ou seja, é um valor numérico inteiro válido. Para isso podemos usar a função personalizada em C que mostro nesta dica. Veja que o segredo é passar todos os caracteres individualmente para a função isdigit(). Veja o código:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>
// função personalizada que permite verificar se uma
// string contém apenas dígitos de 0 a 9
int is_numeric(const char *str){
int res = 1; // passou no teste
// vamos percorrer todos os caracteres da string
// e testar se cada um é um dígito. Se não
// for nós marcamos res como 0 e retornamos
while(*str){
if(!isdigit(*str)){
res = 0;
break;
}
// vamos passar para o próximo caractere
str++;
}
return res;
}
int main(int argc, char *argv[]){
char valor[20]; // vamos guardar o valor digitado aqui
// vamos ler o valor informado pelo usuário
printf("Digite qualquer coisa e tecle ENTER: ");
gets(valor);
// vamos verificar se o usuário informou uma string
// que contém apenas dígitos de 0 a 9
if(is_numeric(valor))
printf("Voce informou uma string numerica");
else
printf("Voce NAO informou uma string numerica");
puts("\n\n");
system("PAUSE");
return 0;
}
E, antes que perguntem como é possível verificar se a string contém um valor fracionário válido, a seguinte alteração pode ser feita:
int is_numeric(const char *str){
int res = 1; // passou no teste
// vamos percorrer todos os caracteres da string
// e testar se cada um é um dígito ou uma vírgula. Se não
// for nós marcamos res como 0 e retornamos
while(*str){
if((!isdigit(*str)) and (*str != ',')){
res = 0;
break;
}
// vamos passar para o próximo caractere
str++;
}
return res;
}
|
C++ ::: Win32 API (Windows API) ::: Aplicativos e Outros |
C++ WinAPI - Como criar o aplicativo de interface gráfica mais simples usando a API do Windows com C++Quantidade de visualizações: 35226 vezes |
|
Esta dica mostra uma das mais aplicações gráficas mais simples que podem ser criadas em C++ usando a API do Windows. Trata-se de uma chamada MessageBox() da WinAPI para criar uma caixa de mensagem. Embora simples, este programa pode ser o ponto de partida para aplicações mais úteis. O resultado pode ser visto na imagem abaixo: ![]() E agora o código C++ para o exemplo:
#include <string>
#include <iostream>
#include <windows.h>
using namespace std;
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE
hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
{
MessageBox(NULL, "Bem-vindo ao Arquivo de Códigos!",
"Meu Programa", MB_OK);
return 0;
}
Este exemplo foi escrito no Dev-C++ e Windows 10. Mas você pode usar Visual C++ ou qualquer outro compilador que permita desenvolver aplicações Windows. |
Java ::: Desafios e Lista de Exercícios Resolvidos ::: Arrays e Matrix (Vetores e Matrizes) |
Exercícios Resolvidos de Java - Como verificar quantas vezes um valor é encontrado em um vetor - Como usar vetores e matrizes em JavaQuantidade de visualizações: 16647 vezes |
|
Pergunta/Tarefa: Escreva um programa Java que declara, constrói e inicializa um vetor de 10 inteiros. Em seguida peça para que o usuário informe um valor a ser pesquisado. Faça uma varredura no vetor e informe quantas vezes o valor pesquisado é encontrado:
// declara, constrói e inicializa um vetor de 10 inteiros
int valores[] = {4, 21, 9, 8, 12, 21, 4, 4, 1, 10};
Informe um valor: 4 O valor foi encontrado: 3 vezes Informe um valor: 8 O valor foi encontrado: 1 vezes Informe um valor: 3 O valor foi encontrado: 0 vezes 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){
// declara, constrói e inicializa um vetor de 10 inteiros
int valores[] = {4, 21, 9, 8, 12, 21, 4, 4, 1, 10};
// para ler a entrada do usuário
Scanner entrada = new Scanner(System.in);
// vamos ler um valor inteiro
System.out.print("Informe um valor: ");
int pesquisa = Integer.parseInt(entrada.nextLine());
// vamos verificar quantas vezes o valor informado está
// contido no vetor
int repeticoes = 0;
for(int i = 0; i < valores.length; i++){
if(valores[i] == pesquisa){
repeticoes++; // encontrou? vamos contar esta ocorrência
}
}
// vamos mostrar o resultado
System.out.println("O valor foi encontrado: " +
repeticoes + " vezes");
}
}
|
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 |
|
VisuAlg - Exercícios Resolvidos de VisuAlg - Como calcular e exibir os 50 primeiros números primos em VisuAlg |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
|
1º lugar: Java |






