Ofereço ajuda em Java, C/C++, Python, C#, LISP, AutoLisp, AutoCAD
Ofereço ajuda em PHP, Python, C#, JavaScript, Laravel, Google Ads e SEO

Planilha Web - Planilhas e Calculadoras online para estudantes e profissionais de Engenharia Civil, Engenharia Elétrica e Engenharia Mecânica.

Delphi ::: Dicas & Truques ::: Bilbiotecas Estáticas (obj) e Dinâmicas (DLLs)

Apostila Delphi para iniciantes - Como criar sua primeira DLL usando Delphi

Quantidade de visualizações: 18937 vezes
Em dicas anteriores você aprendeu o que é um DLL e sua importância para a programação no ambiente Windows. Nesta dica mostrarei como criar uma DLL bem simples e usá-la a partir de um programa Delphi. Para isso siga atentamente os passos abaixo:

1) Vá em File -> New -> Other;

2) Selecione Delphi Projects e escolha DLL Wizard;

3) Neste momento o DLL Wizard criará o esqueleto do código fonte da DLL. Note que o código desta unit é bem parecido com aquele da unit de uma aplicação. A diferença principal é o uso da palavra-chave library em vez de program:

library Project2;

{ Important note about DLL memory management: ShareMem must be the
  first unit in your library's USES clause AND your project's (select
  Project-View Source) USES clause if your DLL exports any procedures or
  functions that pass strings as parameters or function results. This
  applies to all strings passed to and from your DLL--even those that
  are nested in records and classes. ShareMem is the interface unit to
  the BORLNDMM.DLL shared memory manager, which must be deployed along
  with your DLL. To avoid using BORLNDMM.DLL, pass string information
  using PChar or ShortString parameters. }

uses
  SysUtils,
  Classes;

{$R *.res}

begin
end.

Salve esta unit como MinhaDLL.dproj em um diretório de sua preferência. Em seguida vamos criar uma rotina que receberá dois valores inteiros e retornará sua soma. Veja a modificação no código:

library MinhaDLL;

function Somar(a, b: Integer): Integer; stdcall;
begin
  Result := a + b; // retorna a soma
end;

{ vamos exportar (export) a função Somar }
exports
  Somar;

begin
end.

Nossa DLL está pronta. Agora vá no menu Project -> Build MinhaDLL (ou pressione Shift+F9). Se tudo correu bem você terá um arquivo chamado MinhaDLL.dll no diretório no qual você salvou o projeto. O próximo passo é aprender a carregar esta DLL a partir de seus programas Delphi. Veja mais dicas nesta seção para aprender como isso é feito.

Para fins de compatibilidade, esta dica foi escrita usando Delphi 2009.


C ::: Dicas & Truques ::: Strings e Caracteres

Como percorrer os caracteres de uma string C usando um laço for

Quantidade de visualizações: 17630 vezes
Como em C uma string é um vetor de caracteres, tais caracteres podem ser acessados por meio de seu índice no vetor (um valor inteiro começando em 0). Este trecho de código mostra como você pode usar o laço for para acessar cada caractere individualmente e exibí-lo na tela do programa:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int main(int argc, char *argv[]){
  char palavra[] = "Arquivo";

  // vamos percorrer os caracteres usando um laço for
  int i;
  for(i = 0; i < strlen(palavra); i++){
    printf("Caractere na posicao %d = %c\n", i, palavra[i]);
  }

  puts("\n\n");
  system("PAUSE");
  return 0;
}

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

Caractere na posicao 0 = A
Caractere na posicao 1 = r
Caractere na posicao 2 = q
Caractere na posicao 3 = u
Caractere na posicao 4 = i
Caractere na posicao 5 = v
Caractere na posicao 6 = o


Java ::: Reflection (introspecção) e RTI (Runtime Type Information) ::: Passos Iniciais

Como usar o método getMethods() da classe Class - Como listar todos os métodos de uma classe ou interface Java em tempo de execução - Revisado

Quantidade de visualizações: 9438 vezes
O método getMethods() da classe Class permite obter um vetor contendo todos os métodos públicos de uma classe ou interface. Este método retorna um vetor de objetos da classe Method[] e pode atirar uma exceção SecurityException. Veja que os métodos herdados de e por superclasses da classe sendo investigada são também retornados.

O exemplo a seguir mostra como listar todos os métodos públicos da classe javax.swing.JButton (veja como usamos o método getName() da classe Method para obter o nome do método):

package arquivodecodigos;

import java.lang.reflect.*;
 
public class Estudos{
  public static void main(String args[]){
    // vamos carregar a classe JButton
    try{
      Class c = Class.forName("javax.swing.JButton");
 
      // obtém os nomes dos métodos
      Method[] metodos = c.getMethods(); 
 
      // exibe o nome de cada método
      for(int i = 0; i < metodos.length; i++){
        System.out.println(metodos[i].getName() + ", "); 
      }
    }
    catch(ClassNotFoundException e){
      System.out.println(e.getMessage()); 
    }
 
    System.exit(0);
  }
} 

Note que aqui nós estamos usando o método getName() da classe Method para retornar apenas o nome do método. Nesta seção você encontra exemplos de como obter também o tipo de retorno dos métodos de um determinada classe ou interface.

A execução desse código gera uma lista gigante de métodos. Vou mostrá-los abaixo para que você tenha uma idéia do funcionamento real:

getAccessibleContext(), getUIClassID(), isDefaultButton(), isDefaultCapable(), removeNotify(), setDefaultCapable(), updateUI(), getUI(), setAction(), setModel(), setUI(), addActionListener(), addChangeListener(), addItemListener(), doClick(), doClick(), getAction(), getActionCommand(), getActionListeners(), getChangeListeners(), getDisabledIcon(), getDisabledSelectedIcon(), getDisplayedMnemonicIndex(), getHideActionText(), getHorizontalAlignment(), getHorizontalTextPosition(), getIcon(), getIconTextGap(), getItemListeners(), getLabel(), getMargin(), getMnemonic(), getModel(), getMultiClickThreshhold(), getPressedIcon(), getRolloverIcon(), getRolloverSelectedIcon(), getSelectedIcon(), getSelectedObjects(), getText(), getVerticalAlignment(), getVerticalTextPosition(), imageUpdate(), isBorderPainted(), isContentAreaFilled(), isFocusPainted(), isRolloverEnabled(), isSelected(), removeActionListener(), removeChangeListener(), removeItemListener(), setActionCommand(), setBorderPainted(), setContentAreaFilled(), setDisabledIcon(), setDisabledSelectedIcon(), setDisplayedMnemonicIndex(), setEnabled(), setFocusPainted(), setHideActionText(), setHorizontalAlignment(), setHorizontalTextPosition(), setIcon(), setIconTextGap(), setLabel(), setLayout(), setMargin(), setMnemonic(), setMnemonic(), setMultiClickThreshhold(), setPressedIcon(), setRolloverEnabled(), setRolloverIcon(), setRolloverSelectedIcon(), setSelected(), setSelectedIcon(), setText(), setVerticalAlignment(), setVerticalTextPosition(), update(), contains(), getLocation(), print(), getSize(), isOpaque(), disable(), enable(), addAncestorListener(), addNotify(), addVetoableChangeListener(), computeVisibleRect(), createToolTip(), getActionForKeyStroke(), getActionMap(), getAlignmentX(), getAlignmentY(), getAncestorListeners(), getAutoscrolls(), getBaseline(), getBaselineResizeBehavior(), getBorder(), getBounds(), getClientProperty(), getComponentPopupMenu(), getConditionForKeyStroke(), getDebugGraphicsOptions(), getDefaultLocale(), getFontMetrics(), getGraphics(), getHeight(), getInheritsPopupMenu(), getInputMap(), getInputMap(), getInputVerifier(), getInsets(), getInsets(), getMaximumSize(), getMinimumSize(), getNextFocusableComponent(), getPopupLocation(), getPreferredSize(), getRegisteredKeyStrokes(), getToolTipLocation(), getToolTipText(), getToolTipText(), getTopLevelAncestor(), getTransferHandler(), getVerifyInputWhenFocusTarget(), getVetoableChangeListeners(), getVisibleRect(), getWidth(), getX(), getY(), grabFocus(), hide(), isDoubleBuffered(), isLightweightComponent(), isManagingFocus(), isOptimizedDrawingEnabled(), isPaintingForPrint(), isPaintingTile(), isRequestFocusEnabled(), isValidateRoot(), paint(), printAll(), putClientProperty(), registerKeyboardAction(), registerKeyboardAction(), removeAncestorListener(), removeVetoableChangeListener(), requestDefaultFocus(), requestFocus(), requestFocus(), requestFocusInWindow(), resetKeyboardActions(), reshape(), scrollRectToVisible(), setActionMap(), setAutoscrolls(), setBackground(), setBorder(), setComponentPopupMenu(), setDebugGraphicsOptions(), setDefaultLocale(), setDoubleBuffered(), setFocusTraversalKeys(), setFont(), setForeground(), setInheritsPopupMenu(), setInputMap(), setInputVerifier(), setMaximumSize(), setMinimumSize(), setNextFocusableComponent(), setOpaque(), setPreferredSize(), setRequestFocusEnabled(), setToolTipText(), setTransferHandler(), setVerifyInputWhenFocusTarget(), setVisible(), unregisterKeyboardAction(), firePropertyChange(), firePropertyChange(), firePropertyChange(), getRootPane(), getListeners(), paintImmediately(), paintImmediately(), repaint(), repaint(), revalidate(), setAlignmentX(), setAlignmentY(), add(), add(), add(), add(), add(), remove(), remove(), list(), list(), removeAll(), setFocusTraversalPolicyProvider(), transferFocusDownCycle(), validate(), getComponent(), getComponentCount(), getComponents(), getFocusTraversalPolicy(), invalidate(), isFocusCycleRoot(), isFocusCycleRoot(), setFocusTraversalPolicy(), addContainerListener(), applyComponentOrientation(), areFocusTraversalKeysSet(), countComponents(), deliverEvent(), doLayout(), findComponentAt(), findComponentAt(), getComponentAt(), getComponentAt(), getComponentZOrder(), getContainerListeners(), getFocusTraversalKeys(), getLayout(), getMousePosition(), insets(), isAncestorOf(), isFocusTraversalPolicyProvider(), isFocusTraversalPolicySet(), layout(), locate(), minimumSize(), paintComponents(), preferredSize(), printComponents(), removeContainerListener(), setComponentZOrder(), setFocusCycleRoot(), addPropertyChangeListener(), addPropertyChangeListener(), add(), remove(), toString(), getName(), contains(), size(), getLocation(), getParent(), setName(), list(), list(), list(), getSize(), location(), setSize(), setSize(), resize(), resize(), enable(), transferFocus(), transferFocusBackward(), addComponentListener(), addFocusListener(), addHierarchyBoundsListener(), addHierarchyListener(), addInputMethodListener(), addKeyListener(), addMouseListener(), addMouseMotionListener(), addMouseWheelListener(), bounds(), checkImage(), checkImage(), createImage(), createImage(), createVolatileImage(), createVolatileImage(), enableInputMethods(), getColorModel(), getComponentListeners(), getComponentOrientation(), getCursor(), getDropTarget(), getFocusListeners(), getFocusTraversalKeysEnabled(), getHierarchyBoundsListeners(), getHierarchyListeners(), getIgnoreRepaint(), getInputContext(), getInputMethodListeners(), getInputMethodRequests(), getKeyListeners(), getLocale(), getLocationOnScreen(), getMouseListeners(), getMouseMotionListeners(), getMouseWheelListeners(), getToolkit(), gotFocus(), hasFocus(), inside(), isBackgroundSet(), isCursorSet(), isFocusTraversable(), isFontSet(), isForegroundSet(), keyDown(), keyUp(), lostFocus(), mouseDown(), mouseDrag(), mouseEnter(), mouseExit(), mouseMove(), mouseUp(), move(), paintAll(), prepareImage(), prepareImage(), removeComponentListener(), removeFocusListener(), removeHierarchyBoundsListener(), removeHierarchyListener(), removeInputMethodListener(), removeKeyListener(), removeMouseListener(), removeMouseMotionListener(), removeMouseWheelListener(), setComponentOrientation(), setCursor(), setDropTarget(), setFocusTraversalKeysEnabled(), setFocusable(), setIgnoreRepaint(), show(), show(), transferFocusUpCycle(), getBackground(), getBounds(), getFocusCycleRootAncestor(), getFont(), getForeground(), getPeer(), getPropertyChangeListeners(), getPropertyChangeListeners(), getTreeLock(), isDisplayable(), isMaximumSizeSet(), isMinimumSizeSet(), isPreferredSizeSet(), isShowing(), isVisible(), nextFocus(), setBounds(), setBounds(), setLocale(), setLocation(), setLocation(), dispatchEvent(), getGraphicsConfiguration(), getMousePosition(), handleEvent(), isFocusable(), isLightweight(), isValid(), postEvent(), firePropertyChange(), firePropertyChange(), firePropertyChange(), firePropertyChange(), firePropertyChange(), action(), isEnabled(), isFocusOwner(), removePropertyChangeListener(), removePropertyChangeListener(), repaint(), repaint(), repaint(), wait(), wait(), wait(), equals(), hashCode(), getClass(), notify(), notifyAll(),

Esta dica foi revisada e atualizada para o Java 8.


C# ::: Windows Forms ::: ListBox

Como excluir todos os itens de uma ListBox do C# Windows Forms usando a função Clear()

Quantidade de visualizações: 596 vezes
Em algumas situações nós precisamos limpar uma ListBox do C# Windows Forms, ou seja, excluir todos os seus itens de uma só vez em tempo de execução, enquanto o programa estiver rodando.

Esta tarefa pode ser realizada por meio de uma chamada ao método Clear() do objeto ObjectCollection da ListBox.

Veja um trecho de código no qual clicamos em um botão e removemos todos os itens da ListBox:

private void button2_Click(object sender, EventArgs e)
{
  // remove todos os itens da ListBox
  listBox1.Items.Clear();
}



Java ::: Dicas & Truques ::: Data e Hora

Datas e horas em Java - Como obter o dia do mês usando as constantes DATE e DAY_OF_MONTH da classe Calendar

Quantidade de visualizações: 9233 vezes
Em algumas situações pode ser necessário obtermos o dia do mês para uma determinada data. Nestes casos podemos usar o método get() em combinação com as constantes DATE e DAY_OF_MONTH da classe Calendar. Estas constantes retornam um valor inteiro na faixa de 1 a 31. Veja um exemplo:

package arquivodecodigos;

import java.util.*;
 
public class Estudos{ 
  public static void main(String args[]){ 
    // vamos obter a data e hora atual
    Calendar agora = Calendar.getInstance();
 
    // vamos obter o dia do mês
    System.out.println("O dia do mês é: " +
      agora.get(Calendar.DAY_OF_MONTH));
  } 
}

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

O dia do mês é: 26


C ::: C para Engenharia ::: Física - Mecânica

Como calcular a altura da queda livre de um corpo dado o tempo de queda e a aceleração da gravidade usando a linguagem C

Quantidade de visualizações: 1902 vezes
A Queda livre é um movimento unidimensional e uniformemente acelerado. Tal movimento ocorre quando algum corpo é solto do repouso a partir de certa altura. Uma vez que a aceleração da gravidade é constante, se desconsiderarmos a ação de forças dissipativas, o tempo de descida nesse movimento será sempre igual.

Na prática, o movimento de queda livre ideal é bastante próximo daquele em que um objeto é solto a uma pequena altura em relação ao chão. No entanto, rigorosamente, esse movimento só acontece quando algum objeto é solto no vácuo. De acordo com as equações do movimento de queda livre, o tempo de queda não depende da massa dos objetos, mas da aceleração da gravidade e da altura em que esse objeto é solto.

A queda livre é um movimento vertical que ocorre com aceleração constante, de modo que a velocidade de queda do corpo aumenta a cada segundo em relação ao centro da Terra, de acordo com a aceleração da gravidade local.

Quando soltos no vácuo, corpos de massas diferentes chegarão no mesmo tempo ao chão. O fato de uma pena não chegar ao chão no mesmo tempo em que uma bola de boliche, quando soltas na superfície da Terra, está associado ao atrito com o ar, que é quase desprezível para objetos pesados e aerodinâmicos, como a bola de boliche.

A altura da queda livre de um objeto, quando temos apenas o tempo (duração da queda), pode ser obtida por meio da seguinte fórmula:

\[ \text{H} = \frac{\text{g} \cdot t^2}{2} \]

Onde:

H ? altura em metros na qual o corpo é abandonado.

g ? aceleração da gravidade (m/s2).

t ? tempo da queda (em segundos).

Em alguns livros de Física esta fórmula é encontrada também na forma:

\[ \text{h} = \frac{1}{2} \text{g} \cdot t^2 \]

Vamos ver um exemplo? Veja o seguinte enunciado:

1) Sabendo que um corpo leva 2s para chegar ao chão após ter sido abandonado a uma altura H em relação ao solo, calcule a altura em que esse corpo foi abandonado, em metros.

Note que o tempo de queda é de 2 segundos. Então, como sabemos que a aceleração da gravidade terrestre é 9.80665, só precisamos jogar na fórmula. Veja o código C completo para o exemplo:

#include <stdio.h>
#include <stdlib.h>
#include <math.h> 
     
int main(int argc, char *argv[]){
  // gravidade terrestre em m/s2
  float gravidade = 9.80665;
  // tempo da queda
  float segundos = 2; // em segundos
  
  // vamos calcular a altura da queda
  float altura = (gravidade * pow(segundos, 2)) / 2;
  
  // mostramos o resultado
  printf("A altura da queda livre é: %f metros",
    altura);
			  
  printf("\n\n");
  system("PAUSE");
  return 0;
}

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

A altura da queda livre é: 19.613300 metros.


Python ::: Python para Engenharia ::: Engenharia Civil - Instalações de Águas Pluviais

Como calcular a área de contribuição de água da chuva de um telhado usando Python - Python para Engenharia Civil - Instalações de Águas Pluviais

Quantidade de visualizações: 337 vezes


De acordo com a NBR 10844 de 1989, que trata das instalações de águas pluviais, a área de contribuição corresponde à "Soma das áreas das superfícies que, interceptando chuva, conduzem as águas para determinado ponto da instalação".

As superfícies que interceptam a água da chuva podem ser, por exemplo, superfícies planas horizontais (como lajes), superfícies inclinadas (como os telhados da maioria das casas e edifícios e mostrado na figura acima) e superfícies planas verticais (como as platibandas).

No caso das superficies inclinadas, ou seja, os telhados comumente encontrados, a fórmula para o cálculo da área da contribuição da água da chuva é feito por meio da seguinte fórmula:

\[A = \left(a + \frac{h}{2}\right) \cdot b\]

Onde:

A é a área de contribuição de água da chuva do telhado considerado em m2;

a é a largura do telhado em metros;

b é o comprimento do telhado em metros;

h é a altura do telhado em metros, conforme mostrado na figura acima.

Veja agora o código Python que pede para o usuário informar a largura, a altura e o comprimento do telhado e mostra a sua área de contribuição de água da chuva:

# função principal do programa
def main():
  # vamos pedir para o usuário informar a largura do telhado
  largura = float(input("Informe a largura do telhado em metros: "))

  # vamos pedir para o usuário informar o comprimento do telhado
  comprimento = float(input("Informe o comprimento do telhado em metros: "))

  # vamos pedir para o usuário informar a altura do telhado
  altura = float(input("Informe a altura do telhado em metros: "))

  # vamos calcular a área de contribuição do telhado
  area = (largura + (altura / 2.0)) * comprimento

  # e mostramos os resultados
  print("\nA área de contribuição do telhado é: {0} m2".format(
    round(area, 5)))
  
if __name__ == "__main__":
  main()

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

Informe a largura do telhado em metros: 5
Informe o comprimento do telhado em metros: 15
Informe a altura do telhado em metros: 1.5

A área de contribuição do telhado é: 86.25 m2


Java ::: Dicas & Truques ::: Threads

Threads em Java - Como definir as prioridades das threads Java

Quantidade de visualizações: 12738 vezes
Quando estamos trabalhando com threads em Java, precisamos estar cientes de que cada thread possui uma prioridade de execução. É por meio da prioridade de cada uma que o gerenciador de threads decidirá qual thread deverá ser executada primeiro.

Por padrão, todas as threads possuem prioridade NORM_PRIORITY. Esta é uma constante que possui o valor 5 e está declarada na classe Thread. Além disso, cada thread herda automaticamente a prioridade da thread que a criou.

As constantes MAX_PRIORITY (prioridade máxima), MIN_PRIORITY (prioridade mínima) e NORM_PRIORITY (prioridade normal) são usadas para definir as prioridades das threads Java. Veja um exemplo no qual temos duas threads. A primeira possui a prioridade máxima enquanto a segunda possui a prioridade mínima:

// criamos uma classe que servirá como thread
class MinhaThread extends Thread{
  private String nome;  

  public MinhaThread(String nome){
    this.nome = nome;
  }   

  public void run(){
    for(int i = 1; i <= 20; i++){
      System.out.println(nome + ": " + i);
    }
  }
}

public class Estudos{
  public static void main(String[] args){
    // vamos criar duas threads
    MinhaThread t1 = new MinhaThread("Thread 1");
    t1.setPriority(Thread.MAX_PRIORITY); // prioridade máxima
    t1.start();    

    MinhaThread t2 = new MinhaThread("Thread 2");
    t2.setPriority(Thread.MIN_PRIORITY); // prioridade mínima
    t2.start();
  }
}

Execute este exemplo e veja como a segunda thread só é executada quando a primeira finaliza. Remova as linhas que definem a prioridade e note como o tempo de cada thread é novamente fracionado. É importante ter em mente que aqui estamos falando de um ambiente de processador único. Em ambientes de múltiplos processadores o comportamento pode ser diferente do abordado na dica.

Não devemos confiar em prioridades de threads quando o objetivo é aguardar a finalização de uma thread e só então permitir o processamento das instruções contidas no método run() de outra thread. Para estes casos o recomendável é usar alguma forma para sinalizar as demais threads de que a thread atual concluiu sua tarefa.


Java ::: Coleções (Collections) ::: ArrayList

Java ArrayList para iniciantes - Como excluir todos os elementos de uma ArrayList usando seu método clear()

Quantidade de visualizações: 12419 vezes
Nesta dica eu mostro como podemos usar o método clear() da classe ArrayList, da linguagem Java, para limpar seu conteúdo, ou seja, excluir todos os seus itens de uma só vez.

Veja o código completo:

import java.util.ArrayList;

public class Estudos{
  public static void main(String[] args){
    // cria uma ArrayList que conterá inteiros
    ArrayList<Integer> valores = new ArrayList<Integer>();
    
    // adiciona itens na lista
    valores.add(34);
    valores.add(12);
    valores.add(8);
    valores.add(23);
    	
    // obtém a quantidade de itens na lista
    int quant = valores.size();
    System.out.println("A lista contém " 
      + quant + " itens");

    // limpa a lista
    valores.clear();

    // obtém a nova quantidade
    quant = valores.size();
    System.out.println("Agora a lista contém " 
      + quant + " itens");

    System.exit(0);
  }
}

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

A lista contém 4 itens
Agora a lista contém 0 itens


Java ::: Desafios e Lista de Exercícios Resolvidos ::: Laços de Repetição

Exercícios Resolvidos de Java - Ler a idade e o peso de 10 pessoas e mostrar a quantidade de pessoas com mais de 80 quilos e a média das idades

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

Escreva um programa Java que receba a idade (como int) e o peso (como double) de 10 pessoas. Em seguida calcule e mostre:

1) A quantidade de pessoas com mais de 80 quilos;
2) A média das idades das pessoas.

Sua saída deve ser parecida com:

Informe a idade da 1.a pessoa: 95
Informe o peso da 1.a pessoa: 83

Informe a idade da 2.a pessoa: 45
Informe o peso da 2.a pessoa: 115

Informe a idade da 3.a pessoa: 83
Informe o peso da 3.a pessoa: 76

Informe a idade da 4.a pessoa: 19
Informe o peso da 4.a pessoa: 79

Informe a idade da 5.a pessoa: 40
Informe o peso da 5.a pessoa: 93

Quantidade de pessoas com mais de 80 quilos: 3
Média das idades das pessoas: 56.4
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) {
    // para ler a entrada do usuário
    Scanner entrada = new Scanner(System.in);
    
    int quant_acima_80_kg = 0; // quantidade de pessoas acima de 80 quilos
    int soma_idades = 0; // soma das idades para depois obter a média
    
    // vamos ler os dados das 5 pessoas
    for(int i = 0; i < 5; i++){
      System.out.print("Informe a idade da " + (i + 1) + ".a pessoa: ");
      int idade = Integer.parseInt(entrada.nextLine());
      System.out.print("Informe o peso da " + (i + 1) + ".a pessoa: ");
      double peso = Double.parseDouble(entrada.nextLine());
      
      // vamos somar mais esta idade
      soma_idades = soma_idades + idade;
      
      // esta pessoa possui mais de 80 quilos?
      if(peso > 80){
        // aumenta o contador de pessoas acima de 80 quilos
        quant_acima_80_kg++;  
      }
      
      // adiciona uma quebra de linha
      System.out.println();
    }
    
    // e agora mostramos o resultado
    System.out.println("Quantidade de pessoas com mais de 80 quilos: " + 
      quant_acima_80_kg);
    System.out.println("Média das idades das pessoas: " + (soma_idades / 5.0));
  }
}


Carregar Publicações Anteriores


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 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
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

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 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 Apenas R$ 32,90


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