![]() |
|
|
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 - Construção Civil |
||
|
||
|
|
||
Java ::: Classes e Componentes ::: JTextArea |
Java Swing - Como ler as linhas de texto de um JTextArea uma de cada vezQuantidade de visualizações: 3 vezes |
|
Nesta dica veremos como ler as linhas de um controle JTextArea do Java Swing individualmente, ou seja, uma linha de cada vez. Para isso nós vamos usar os método getLineStartOffset() e getLineEndOffset() da classe JTextArea para acessar suas linhas separadamente. Veja o resultado na imagem abaixo: ![]() E aqui está o código Java Swing completo para a dica:
package arquivodecodigos;
import javax.swing.*;
import javax.swing.text.*;
import java.awt.*;
import java.awt.event.*;
public class Estudos extends JFrame{
JTextArea textArea;
JButton btn;
public Estudos() {
super("Lendo as linhas de um JTextArea");
Container c = getContentPane();
FlowLayout layout = new FlowLayout(FlowLayout.LEFT);
c.setLayout(layout);
textArea = new JTextArea(10, 20);
textArea.setLineWrap(true);
btn = new JButton("Ler Linhas");
btn.addActionListener(
new ActionListener(){
@Override
public void actionPerformed(ActionEvent e){
int quant = textArea.getLineCount();
for(int i = 0; i < quant; i++){
try{
int inicio = textArea.getLineStartOffset(i);
int fim = textArea.getLineEndOffset(i);
String linha = textArea.getText(inicio, fim - inicio);
JOptionPane.showMessageDialog(null, "Linha " +
(i + 1) + " = " + linha);
}
catch(BadLocationException ble){
// possiveis erros são tratados aqui
}
}
}
}
);
c.add(textArea);
c.add(btn);
setSize(350, 250);
setVisible(true);
}
public static void main(String args[]){
Estudos app = new Estudos();
app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
|
C ::: Dicas & Truques ::: Ponteiros, Referências e Memória |
Como usar ponteiros void na linguagem C - Curso de Linguagem C para iniciantesQuantidade de visualizações: 17208 vezes |
Em dicas desta seção você aprendeu que é possível criar ponteiros para os mais diferentes tipos. Veja:int *ponteiro_int; float *ponteiro_float; double *ponteiro_double; Existe, porém, um tipo de ponteiro que pode ser usado com todos os tipos de dados existentes ou ainda a serem criados. Este tipo é conhecido como void, ou seja, um ponteiro genérico e pode ser declarado da seguinte forma: void *ponteiro; // ponteiro genérico Veja um trecho de código no qual usamos um ponteiro genéríco para apontar para variáveis de diferentes tipos:
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
int valor = 20;
float valor2 = 5.23;
void *ponteiro; // ponteiro genérico
ponteiro = &valor; // aponta para um inteiro
printf("%d\n", *(int *)ponteiro);
ponteiro = &valor2; // aponta para um float
printf("%0.2f\n", *(float *)ponteiro);
system("PAUSE");
return 0;
}
Uma observação importante é a necessidade de uma conversão explícita (cast) no momento de desreferenciar um ponteiro genéríco. Neste caso ele precisa ser convertido para o tipo de ponteiro sendo usado no momento. Veja:
printf("%d\n", *(int *)ponteiro);
A parte (int *)ponteiro converte o ponteiro genérico em um ponteiro do tipo int e o símbolo * externo é usado para desreferenciar. Se essa conversão não for feita teremos um aviso e erro na maioria dos compiladores. Veja:
printf("%d\n", *ponteiro);
[Warning] dereferencing 'void *' pointer
invalid use of void expression
Embora essa conversão seja necessária quando estamos desreferenciando um ponteiro genérico, podemos abrir mão dela na atribuição de um ponteiro genérico a um ponteiro de um tipo específico:
ponteiro = &valor; // aponta para um inteiro
int *ponteiro_int = ponteiro;
printf("%d\n", *ponteiro_int);
Para finalizar, saiba que as funções malloc() e calloc() retornam ponteiros void, ou seja, ponteiros genéricos que podem ser atribuídos a ponteiros de qualquer tipos. Neste caso, o ponteiro retornado por estas funções aponta para a primeira posição do bloco de memória requisitada. |
C ::: Desafios e Lista de Exercícios Resolvidos ::: Laços de Repetição |
Exercício Resolvido de C - Escreva um programa C que usa o laço for para desenhar um padrão de diamante de estrelasQuantidade de visualizações: 2503 vezes |
|
Pergunta/Tarefa: Neste exercício para a prática da linguagem C você deverá usar o laço for para desenhar o famoso padrão de diamante de estrelas. Você pode também usar o laço while, se assim você o desejar. O programa deverá pedir que o usuário informe a quantidade de linhas que marcará a metade do diamante. Seu programa deve apresentar a seguinte saída:
Informe a quantidade de linhas: 5
*
***
*****
*******
*********
*******
*****
***
*
Pressione qualquer tecla para continuar...
Veja a resolução comentada deste exercício em C:
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[]){
int i, j; // para controlar o laço externo e interno
int linhas; // quantidade de linhas
int estrelas, espacos; // quantidade de estrelas e espaços
// vamos pedir a quantidade de linhas
printf("Informe a quantidade de linhas: ");
// vamos ler a entrada do usuário
scanf("%d", &linhas);
estrelas = 1; // começamos com uma estrela (no topo do diamante)
espacos = linhas - 1; // se linhas for igual a 5 nós começamos
// com 4 espaços
// repete duas vezes a quantidade de linhas informadas
for(i = 1; i < linhas * 2; i++){
// vamos imprimir os espaços
for(j = 1; j <= espacos; j++){
printf(" ");
}
// agora vamos imprimir estrelas
for(j = 1; j < estrelas * 2; j++){
printf("*");
}
// passamos para a próxima linha
printf("\n");
if(i < linhas){ // é a parte superior do diamante
espacos--; // diminui os espaços
estrelas++; // e aumenta as estrelas
}
else{ // é a parte inferior do diamente
espacos++; // aumenta os espaços
estrelas--; // e diminui as estrelas
}
}
printf("\n\n");
system("pause");
return 0;
}
|
C ::: Desafios e Lista de Exercícios Resolvidos ::: Arrays e Matrix (Vetores e Matrizes) |
Exercícios Resolvidos de C - Como retornar o primeiro elemento de um vetor em CQuantidade de visualizações: 696 vezes |
|
Pergunta/Tarefa: Dado o vetor: [9, 5, 3, 2, 4, 8] Escreva um programa C que mostra como acessar e retornar o primeiro elemento de um vetor (array) em C. Sua saída deverá ser parecida com: O primeiro elemento do array é: 9 Veja a resolução comentada deste exercício usando C:
#include <stdio.h>
#include <stdlib.h>
// função principal do programa
int main(int argc, char *argv[]){
// vamos criar um array de inteiros
int valores[] = {9, 5, 3, 2, 4, 8};
// agora vamos retornar o primeiro elemento do vetor
int primeiro = valores[0];
// e mostramos o resultado
printf("O primeiro elemento do array é: %d", primeiro);
printf("\n\n");
system("PAUSE");
return 0;
}
|
Python ::: Desafios e Lista de Exercícios Resolvidos ::: Estruturas de Controle |
Exercício Resolvido de Python - Um comerciante comprou um produto e quer vendê-lo com um lucro de 45% se o valor da compra for menorQuantidade de visualizações: 5102 vezes |
|
Algoritmos Resolvidos de Python - Um comerciante comprou um produto e quer vendê-lo com um lucro de 45% se o valor da compra for menor Pergunta/Tarefa: Um comerciante comprou um produto e quer vendê-lo com um lucro de 45% se o valor da compra for menor que R$ 20,00; caso contrário, o lucro será de 30%. Elabore um algoritmo que leia o valor do produto e imprima o valor de venda para o produto. Sua saída deverá ser parecida com: Informe o valor do produto: 85 O valor de venda é: 110.5 Veja a resolução comentada deste exercício usando Python: Código para principal.py:
# método principal
def main():
# valor ler o valor do produto
valor = float(input("Informe o valor do produto: "))
# vamos calcular o valor de venda
if valor < 20:
valor_venda = valor + (valor * (45.0 / 100))
else:
valor_venda = valor + (valor * (30.0 / 100))
print("O valor de venda é: {0}".format(valor_venda))
if __name__== "__main__":
main()
|
Mais Desafios de Programação e Exercícios e Algoritmos Resolvidos de Python |
Veja mais Dicas e truques de Python |
Dicas e truques de outras linguagens |
|
Java - Como percorrer uma árvore binária em Java usando o algorítmo depth-first search (DFS) recursivo |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
|
1º lugar: Java |





