Dúvidas, comentários e doaçoes: +55 62 9 8513 2505

Planilha de Dimensionamento de Tubulações Hidráulicas Água Fria e Água Quente Completa
Nossa 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.

Java ::: Dicas & Truques ::: Gráficos

Como desenhar em um JComponent (JLabel, JButton, JPanel, etc) usando o método getGraphics() para obter o contexto de desenho

Quantidade de visualizações: 14483 vezes
A classe JComponent possui um método chamado getGraphics() que retorna um objeto da classe Graphics que pode ser usado para desenhar na superfície do componente. Desta forma, qualquer componente que herda de JComponent pode ser usado para esta finalidade.

Antes de demonstrarmos como isso funciona, tenha em mente que o contexto de desenho de um componente só está disponível após ele ser pintado pela primeira vez. Se tentarmos obter o Graphics antes que o componente tenha sido pintado, corremos o risco de lançar uma exceção NullPointerException.

O trecho de código abaixo mostra como desenhar uma linha em um JLabel ao clicar em um botão. Fique atento a este código. Boa parte das dicas vistas nesta seção usam esta abordagem:

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");
    btn.addActionListener(
      new ActionListener(){
        public void actionPerformed(ActionEvent e){
          
          // Desenha uma linha no JLabel
          Graphics graphics = label.getGraphics();
          graphics.drawLine(0, 0, 150, 100);
        
        }
      }
    );
    
    // 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);
  }
}

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.


Java ::: Desafios e Lista de Exercícios Resolvidos ::: Estruturas de Controle

Exercícios Resolvidos de Java - Ler os lados de um triângulo e informar se ele é isósceles, escaleno ou equilátero

Quantidade de visualizações: 13786 vezes
Pergunta/Tarefa:

Um triângulo é uma forma geométrica (polígono) composta de três lados, sendo que cada lado é menor que a soma dos outros dois lados. Assim, para que um triângulo seja válido, é preciso que seus lados A, B e C obedeçam à seguinte regra:

A < (B + C), B < (A + C) e C < (A + B).

Escreva um programa Java que leia os três lados de um triângulo e verifique se tais valores realmente formam um triângulo. Se o teste for satisfatório, informe se o triângulo é isósceles (dois lados iguais e um diferente), escaleno (todos os lados diferentes) ou equilátero (todos os lados iguais).

Sua saída deverá ser parecida com:

Informe o primeiro lado do triângulo: 30
Informe o segundo lado do triângulo: 40
Informe o terceiro lado do triângulo: 60
O triângulo é escaleno
Resposta/Solução:

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) {
    // vamos fazer a leitura usando a classe Scanner
    Scanner entrada = new Scanner(System.in);
      
    // vamos ler o primeiro lado do triângulo
    System.out.print("Informe o primeiro lado do triângulo: ");
    int ladoA = Integer.parseInt(entrada.nextLine());
    
    // vamos ler o segundo lado do triângulo
    System.out.print("Informe o segundo lado do triângulo: ");
    int ladoB = Integer.parseInt(entrada.nextLine());
    
    // vamos ler o terceiro lado do triângulo
    System.out.print("Informe o terceiro lado do triângulo: ");
    int ladoC = Integer.parseInt(entrada.nextLine());
    
    // os lados informados formam um triângulo?
    if((ladoA < (ladoB + ladoC)) && (ladoB < (ladoA + ladoC)) 
      && (ladoC < (ladoA + ladoB))){
      // é um triângulo equilátero (todos os lados iguais)?
      if((ladoA == ladoB) && (ladoB == ladoC)){
        System.out.println("O triângulo é equilátero");  
      }
      else{
        // é isósceles (dois lados iguais e um diferente)?
        if((ladoA == ladoB) || (ladoA == ladoC) || (ladoC == ladoB)){
          System.out.println("O triângulo é isósceles");  
        }
        else{
          // é escaleno
          System.out.println("O triângulo é escaleno");
        }
      }
    }
    else{
      System.out.println("Os lados informados não formam um triângulo.");
    }
  }
}



Portugol ::: Dicas & Truques ::: Geometria, Trigonometria e Figuras Geométricas

Como calcular o coeficiente angular de uma reta em Portugol dados dois pontos no plano cartesiano

Quantidade de visualizações: 934 vezes
O Coeficiente Angular de uma reta é a variação, na vertical, ou seja, no eixo y, pela variação horizontal, no eixo x. Sim, isso mesmo. O coeficiente angular de uma reta tem tudo a ver com a derivada, que nada mais é que a taxa de variação de y em relação a x.

Vamos começar analisando o seguinte gráfico, no qual temos dois pontos distintos no plano cartesiano:



Veja que o segmento de reta AB passa pelos pontos A (x=3, y=6) e B (x=9, y=10). Dessa forma, a fórmula para obtenção do coeficiente angular m dessa reta é:

\[\ \text{m} = \frac{y_2 - y_1}{x_2 - x_1} = \frac{\Delta y}{\Delta x} = tg \theta \]

Note que __$\Delta y__$ e __$\Delta x__$ são as variações dos valores no eixo das abscissas e no eixo das ordenadas. No triângulo retângulo que desenhei acima, a variação __$\Delta y__$ se refere ao comprimento do cateto oposto e a variação __$\Delta y__$ se refere ao comprimento do cateto adjascente.

Veja agora o trecho de código na linguagem Portugol que solicita as coordenadas x e y dos dois pontos, efetua o cálculo e mostra o coeficiente angular m da reta que passa pelos dois pontos:

// Calcular o coeficiente angular de uma reta em Portugol

programa {
  // vamos incluir a biblioteca Matematica
  inclua biblioteca Matematica --> mat
  
  funcao inicio() {
    // coordenadas dos dois pontos
    real x1, y1, x2, y2
    // guarda o coeficiente angular
    real m

    // x e y do primeiro ponto
    escreva("Coordenada x do primeiro ponto: ")
    leia(x1)
    escreva("Coordenada y do primeiro ponto: ")
    leia(y1)

    // x e y do segundo ponto
    escreva("Coordenada x do segundo ponto: ")
    leia(x2)
    escreva("Coordenada y do segundo ponto: ")
    leia(y2)

    // vamos calcular o coeficiente angular
    m = (y2 - y1) / (x2 - x1)

    // mostramos o resultado
    escreva("O coeficiente angular é: ", m) 
  }
}

Ao executar este código Portugol Webstudio nós teremos o seguinte resultado:

Coordenada x do primeiro ponto: 3
Coordenada y do primeiro ponto: 6
Coordenada x do segundo ponto: 9
Coordenada y do segundo ponto: 10
O coeficiente angular é: 0.6666666666666666

No entanto, fique atento às propriedades do coeficiente angular da reta:

1) O coeficiente angular é positivo quando a reta for crescente, ou seja, m > 0;

2) O coeficiente angular é negativo quando a reta for decrescente, ou seja, m < 0;

3) Se a reta estiver na horizontal, ou seja, paralela ao eixo x, seu coeficiente angular é zero (0).

4) Se a reta estiver na vertical, ou seja, paralela ao eixo y, o coeficiente angular não existe.


Python ::: NumPy Python Library (Biblioteca Python NumPy) ::: Arrays e Matrix (Vetores e Matrizes)

Como repetir os elementos de um vetor ou matriz usando a função repeat() da NumPy do Python

Quantidade de visualizações: 1413 vezes
A função repeat() da biblioteca NumPy do Python é usada quando queremos repetir os elementos de um vetor ou matriz um determinado número de vezes. Em sua forma mais simples esta função pede um array e um número inteiro indicando a quantidade de repetições.

Veja o código Python completo para o exemplo:

# vamos importar a biblioteca NumPy
import numpy as np

def main():
  # vamos criar um vetor contendo 5 elementos
  vetor = np.array([5, 3, 9, 1, 4])

  # agora vamos aplicar a função repeat() a este vetor
  novo_vetor = np.repeat(vetor, 3)

  # vamos mostrar o resultado
  print("O vetor original é: {0}".format(vetor))
  print("O novo vetor é: {0}".format(novo_vetor))

if __name__== "__main__":
  main()

Ao executar este código Python nós teremos o seguinte resultado:

O vetor original é: [5 3 9 1 4]
O novo vetor é: [5 5 5 3 3 3 9 9 9 1 1 1 4 4 4]

Veja agora o efeito desta função em uma matriz de 2 linhas por 3 colunas:

# vamos importar a biblioteca NumPy
import numpy as np

def main():
  # vamos criar uma matriz de 2 linhas e 3 colunas
  matriz = np.array([(1, 2, 3), (4, 5, 6)])

  # agora vamos aplicar a função repeat() a esta matriz
  nova_matriz = np.repeat(matriz, 3, 0)

  # vamos mostrar o resultado
  print("A matriz original é:\n\n{0}".format(matriz))
  print("A nova matriz é:\n\n{0}".format(nova_matriz))

if __name__== "__main__":
  main()

Note que informei o valor 0 para o terceiro parâmetro da função repeat(). Isso faz com que os elementos da matriz sejam repetidos no eixo x. Veja:

A matriz original é:

[[1 2 3]
 [4 5 6]]

A nova matriz é:

[[1 2 3]
 [1 2 3]
 [1 2 3]
 [4 5 6]
 [4 5 6]
 [4 5 6]]


Se trocarmos o valor 0 por 1, o resultado será:

A matriz original é:

[[1 2 3]
 [4 5 6]]

A nova matriz é:

[[1 1 1 2 2 2 3 3 3]
 [4 4 4 5 5 5 6 6 6]]



Nossas 20 dicas & truques de programação mais populares

Você também poderá gostar das dicas e truques de programação abaixo

Nossas 20 dicas & truques de programação mais recentes

Últimos Projetos e Códigos Fonte Liberados Para Apoiadores do Site

Últimos Exercícios Resolvidos

E-Books em PDF

E-Book 650 Dicas, Truques e Exercícios Resolvidos de Python - PDF com 1.200 páginas
Domine lógica de programação e a linguagem Python com o nosso E-Book 650 Dicas, Truques e Exercícios Exercícios de Python, para você estudar onde e quando quiser.

Este e-book contém dicas, truques e exercícios resolvidos abrangendo os tópicos: Python básico, matemática e estatística, banco de dados, programação dinâmica, strings e caracteres, entrada e saída, estruturas condicionais, vetores e matrizes, funções, laços, recursividade, internet, arquivos e diretórios, programação orientada a objetos e muito mais.
Ver Conteúdo do E-book
E-Book 350 Exercícios Resolvidos de Java - PDF com 500 páginas
Domine lógica de programação e a linguagem Java com o nosso E-Book 350 Exercícios Exercícios de Java, para você estudar onde e quando quiser.

Este e-book contém exercícios resolvidos abrangendo os tópicos: Java básico, matemática e estatística, programação dinâmica, strings e caracteres, entrada e saída, estruturas condicionais, vetores e matrizes, funções, laços, recursividade, internet, arquivos e diretórios, programação orientada a objetos e muito mais.
Ver Conteúdo do E-book

Linguagens Mais Populares

1º lugar: Java
2º lugar: Python
3º lugar: C#
4º lugar: PHP
5º lugar: C
6º lugar: Delphi
7º lugar: JavaScript
8º lugar: C++
9º lugar: VB.NET
10º lugar: Ruby


E-Book 350 Exercícios Resolvidos de Java - PDF com 500 páginas
Domine lógica de programação e a linguagem Java com o nosso E-Book 350 Exercícios Exercícios de Java, para você estudar onde e quando quiser. Este e-book contém exercícios resolvidos abrangendo os tópicos: Java básico, matemática e estatística, programação dinâmica, strings e caracteres, entrada e saída, estruturas condicionais, vetores e matrizes, funções, laços, recursividade, internet, arquivos e diretórios, programação orientada a objetos e muito mais.
Ver Conteúdo do E-book Apenas R$ 19,90


© 2026 Arquivo de Códigos - Todos os direitos reservados
Neste momento há 18 usuários muito felizes estudando em nosso site.