Buscar

Curso Programacao Java I Aluno

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 79 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 79 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 79 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Continue navegando


Prévia do material em texto

Programação 
Java I 
Prof. Vinicius Rosalen 
 
 
Parte I 
 
É importante termos uma linguagem para 
chamarmos de “minha”…. 
 
 
Java - Hoje 
• Java fez 16 anos em 2011. 
 
• A plataforma Java evoluiu bastante. 
– Versões atuais do JDK é a 1.6 ou Java 6 
 
• Há diversas ferramentas visuais (IDEs) para desenvolvimento 
em Java. 
– Eclipse (http://www.eclipse.org); 
– NetBeans (http://www.netbeans.org); 
– IntelliJ IDEA (http://www.jetbrains.com/idea); 
– JBuilder (http://www.borland.com/br/products/jbuilder/); 
http://java.sun.com/ 
A Plataforma Java 
UNIX 
JVM 
Windows 
JVM 
OS2 
JVM 
MacOS 
JVM 
“Tradução” 
Linguagem Java 
Para cada 
Sistema 
Operacional há 
uma JVM 
específica. 
O usuário deve 
instalar uma 
JVM para poder 
executar um 
programa Java. 
JVMs são 
gratuitas. 
Plataforma 
• Linguagem + “Hardware” 
• Surge dois conceitos importantes... 
Java: Visão Geral 
• Conceitos importantes da linguagem 
– Bytecode 
• É o código de máquina da Máquina Virtual Java 
– Bytecode é interpretado: Código passado para máquina on-the-fly 
 
• Formato bytecodes foi feito pensando na geração de código de 
máquina, de maneira otimizado 
– Lembra das opções de otimização de código em C??? 
 
• Desempenho do código final (bytecodes transformados em binário) 
é praticamente o mesmo de código feito em C/C++. 
– Uso da HotSpot, nova tecnologia de JVM: aos poucos um bytecode 
Java vai virando código em linguagem de máquina 
– Em última instância, integra-se com códigos em C/C++. 
Java: Visão Geral 
• Conceitos importantes da linguagem 
– Java Virtual Machine (JVM) 
• É o programa que executa/interpreta os bytecodes Java. 
 
• Elemento que permite a portabilidade 
– Esconde as diferenças entre os diversos sistemas operacionais que 
executam código Java. 
 
• Um mesmo código compilado (bytecode) pode ser executado em 
diferentes JVMs sem qualquer modificação. 
– “Arquiteturalmente Neutra” 
 
• Para cada Sistema Operacional há uma JVM específica. 
– O usuário deve instalar uma JVM para poder executar um programa 
Java. JVMs são gratuitas. 
Diagrama de criação e 
execução de código Java 
Máquina Virtual Java - JVM 
Sistema Operacional 
.java 
.class 
Código 
fonte 
compilação 
Bytecodes 
Execução/interpretado 
Um código Java é 
compilado para 
um código 
intermediário 
(bytecode), que é 
executado por 
uma Máquina 
Virtual Java (Java 
Virtual Machine) 
A Plataforma Java 
• Características básicas – Resumindo... 
– Linguagem OO 
– Baseia-se na JVM – (Java Virtual Machine) 
– Executáveis escritos em bytecodes 
– Idéia fundamental: 
• “write once, run anywhere” 
– Linguagem Java é a parte central da plataforma. 
Editor 
Disco Fonte 
API 
API 
API 
API 
Programador 
Ambiente Java 
Compilador 
Bytecode 
Interpretador 
Memória 
Depende da 
Plataforma 
• Processo de compilação e execução pela JVM 
– Resumindo... 
Linguagem Java 
• Blz, 
– Entendido a estrutura da plataforma Java… 
 
– Podemos começar agora a conversar sobre 
características da linguagem Java 
Nomes e Extensões 
• Conceitos iniciais 
– A extensão dos arquivos é .java e é obrigatória 
• Após compilado, a extensão é .class 
– Cada arquivo .java só pode conter uma classe 
pública, que deve ter o mesmo nome do arquivo 
• Exemplo: 
– Se o nome da classe é PrimeiraClasse, o nome do arquivo 
fonte deverá obrigatoriamente ser PrimeiraClasse.java 
 
– Uma aplicação Java completa é composta por um 
ou mais arquivos .java 
Convenções 
Nomes de classes: 
Cliente 
CadastrarCarro 
Pedido 
Variáveis: 
valor 
numeroPedido 
foneClienteEspecial 
Métodos: 
modifica 
modificaNome 
atualizaValorTaxa 
Constantes: 
DIREITA 
PI 
• Conceitos iniciais 
– Convenções de Nomes 
• São adotados por padrões de empresas... 
Questões Léxicas 
Durante a compilação, os caracteres no código Java 
são reduzidos a uma série de tokens. 
O compilador Java reconhece cinco tipos de tokens : 
 
 
 
 
 
 
Comentários e espaços em branco, como tabulação, 
são usados para separar os tokens. 
• Identificadores 
• Palavras 
Reservadas 
• Literais 
• Separadores 
• Operadores 
• Comentários 
Vamos falar um pouco sobre cada uma destas questões…. 
É importante para entende uma nova linguagem!!! 
Questões Léxicas 
• Identificadores 
– Identificadores são nomes usados para nomear variáveis, 
atributos, métodos, classes 
– As regras para declarar identificadores são: 
• Maiúsculas e minúsculas são diferentes 
– Java é sensível ao caso 
» int A é diferente de int a 
• Palavras reservadas não podem ser usadas como identificadores 
• Pode conter letras, números, o caractere $ (cifrão) ou _ (underscore) 
• Não pode começar com número 
• É possível utilizar acentuação nas variáveis porque Java usa Unicode 
como código de caracteres 
Questões Léxicas 
– Tabela: Tipos, modificadores e mecanismo de controle de fluxo. 
 
abstract boolean break byte case 
catch char class const continue 
default do double else extends 
false final finallly float for 
goto if implements import instanceof 
int interface long native new 
null package private protected public 
return short static super synchronized 
this throw throws transient true 
try void volatile while 
• Palavras Reservadas 
– É importante sabermos quais são as palavras reservadas da 
linguagem Java, 
– Primeiro pra não ocorrer o erro de tentar criar variáveis com estes 
nomes, 
– Segundo porque a certificação pede esse conhecimento... 
Questões Léxicas 
• Identificadores - Exercício 
– Quais dos identificadores abaixo são válidos ? 
a) foobar 
b) alguem_sabe_o$_que_e_foobar$ 
c) 3_node5 
d) !puxaVida 
e) my_$_money 
f) new 
g) newInterface 
h) ExageratedLong$WeirdAndMeaninglessName 
Questões Léxicas 
• Declaração de Variáveis 
– Formato 
• Tipo seguido por lista de identificadores 
– tipo identificador [ = valor] [, identificador [= valor ... ]; 
» Ex.: int b, c; 
 
– Inicialização 
• Pode ser feita na declaração; 
– Ex.: int a=10; 
• É interessante inicializar a variável local antes de usar o valor, a não 
ser que seja utilizado o valor padrão do tipo. 
• Variáveis de classe e instância são inicializadas automaticamente 
• Pode ser feita em qualquer ponto do programa 
Questões Léxicas 
• Literais 
– Literais são os valores 
• Que podem ser atribuídos a um identificador de um 
tipo primitivo, 
• Ou passados como argumentos em chamadas de 
método: 
– É qualquer número, texto ou outra informação 
que representa um valor, 
• Exemplos: 
– Booleanos : somente true ou false 
– Caracteres : 'a', 'b', 'Z', '\n’ 
– Inteiros : 28 
– Ponto flutuante : 6.02E+23, 1.013E-15D 
– String : "qualquer coisa entre aspas duplas" 
Tipos em Java 
• Em Java temos os tipos primitivos e compostos: 
– Os tipos primitivos em Java são: 
• boolean, char 
• byte, short, int, long 
• float, double 
 
– Os tipos compostos em Java são: 
• Objetos .... Daqui a pouco a gente fala sobre eles. 
Tipos Primitivos 
• Tipo Booleano 
– Valores 
• true 
• false 
– Condições devem ser tipos booleanos 
– Não há equivalência com inteiros 
• Em C, 0 é false e qualquer outro valor é true. 
• Declaração: boolean bool = true; 
Tipos Primitivos• Importante: Conversões entre Tipos Numéricos 
– Pode misturar tipos 
- Se algum dos operandos for do tipo double, então o outro operando será 
convertido em um double 
- Caso contrário, se algum dos operandos for do tipo float, o outro 
operando será convertido em um float 
- Caso contrário, se algum dos operandos for do tipo long, o outro 
operando será convertido em um long 
– Forma análoga para os tipos inteiros: int, short e byte 
– Conversões onde pode haver perda de informação devem 
ser feitas explicitamente através do operador de coerção 
(cast) 
• Ocorre, por exemplo, quando são feitas operações com tipos inteiros 
(byte, short , char) menores que int 
– Resultados das operações são do tipo int 
» Racional: maior probabilidade de ocorrência de overflow nestes tipos, 
uma vez que o intervalo de valores é pequeno 
Tipos Primitivos 
• Resumindo..... 
– O Java converte automaticamente valores de um tipo 
numérico para outro tipo maior 
 
 
 
 
– O Java não faz automaticamente o “downcast.” 
int a = 1234; 
long b = a; 
 
int c = (int) b; 
short c = (short) a; 
Tipos Primitivos 
• Conversões entre Tipos Numéricos 
– Necessário para atribuir um tipo maior a um menor 
 
 (<tipo>) <expressão> 
 
– Converte a expressão para o tipo indicado entre 
parênteses 
conversão implícita 
conversão explícita 
(cast) } 
} 
Promoções em expressões 
aritméticas 
• Conversões entre Tipos Numéricos – Outro ex. 
– Tipos de menor precisão são automaticamente 
convertidos para tipos de maior precisão (promoção 
aritmética) 
int + short*byte - double 
int + short*short - double 
int + short - double 
int + int - double 
int - double 
double 
Entrada e saída de dados 
básica 
• Toda linguagem de programação deve prover um 
meio de interação com o usuário; 
– O meio mais básico é o uso do console, com entrada de 
dados pelo teclado e saída em texto; 
 
• Outros meios são: interface gráfica (janelas), pela 
Web, comandos de voz, etc.; 
– Inicialmente aprenderemos agora a forma de interação 
básica, pelo console: 
• O “shell” do Linux; 
• O “prompt de comando” do Windows 
Entrada e saída de dados 
básica 
• Saída de dados pelo console 
– Java usa o conceito de stream: um duto capaz de 
transportar dados de um lugar a outro; 
• Vamos ver com mais detalhes mais pra frente no curso 
– A classe java.lang.System oferece um stream padrão de 
saída chamado out; 
• É um objeto da classe java.io.PrintStream, aberto e mantido 
automaticamente pela JVM; 
– Oferece vários métodos para impressão de dados: 
• print(), println() e printf(). 
– Podemos trocar o dispositivo padrão de saída: 
• System.setOut(novaStream). 
Entrada e saída de dados 
básica 
• Saída de dados pelo console 
– Exemplo 
Entrada e saída de dados 
básica 
• Saída de dados pelo console 
– Saída formatada 
• A partir do Java 5, a função printf() do C foi colocada na classe 
PrintWriter; 
• Facilita a migração de código C para Java; 
• É uma forma mais poderosa de formatar a saída; 
• O trabalho de formatação é, na verdade, feito pela classe 
java.util.Formatter. 
– Como funciona o printf 
• Argumentos: 
– Uma string de formatação, com códigos especiais; 
– Uma lista de argumentos a serem impressos. 
• Exemplo: 
SaidaFormatada.java 
Entrada e saída de dados 
básica 
• Entrada de dados pelo console 
– A classe java.lang.System oferece um stream padrão de 
entrada chamado in; 
• É um objeto da classe java.io.InputStream, aberto e mantido 
automaticamente pela JVM; 
 
– Seus métodos de leitura são muito primitivos e não são 
simples de serem utilizados 
• Precisamos de outras classes que auxiliem na leitura. 
– Classe Scanner 
Entrada e saída de dados 
básica 
• Entrada de dados pelo console 
– Classe Scanner 
• Localizado em java.util.Scanner 
• Poderoso meio de ler dados de qualquer stream de entrada, 
existente a partir do Java 5; 
 
• Funcionamento: 
– Lê uma informação; 
– Quebra a informação em tokens de acordo com um separador (que 
pode ser configurado); 
– Converte para o tipo de dados adequado (quando possível). 
Entrada e saída de dados 
básica 
• Entrada de dados pelo console 
– Classe Scanner 
• A idéia é bastante simples.... 
– Basta aplicar esse comando: 
» Scanner sc = new Scanner(System.in); 
 
– E depois chamar o método o nome do tipo de dados que se deseja 
capturar 
» int i = sc.nextInt(); 
» double d = sc.nextDouble(); 
» String s = sc.next(); 
 
– Também é necessário escrever no início do código o seguinte 
comando: 
» import java.util.Scanner; 
 
Entrada e saída de dados 
básica 
• Entrada de 
dados pelo console 
– Classe Scanner 
• Exemplo... Não 
se preocupe com 
todos os detalhes 
agora.. 
 
 
EntradaScannerAluno.java 
 
 
Parte II 
 
LP Java 
• Blz, 
– O que falta agora pra gente fechar essa parte..… 
• Operadores 
• Estruturas de fluxos de controle 
Operadores 
• Símbolos especiais que recebem um ou mais 
argumentos e produzem um resultado; 
• Os operadores Java trabalham somente com tipos 
primitivos (e wrappers), exceto: 
– =, == e != que podem ser aplicados a objetos; 
– + e += que podem ser aplicados a Strings. 
 
• Temos 5 tipos de operadores: 
– Atribuição 
– Aritméticos 
– Manipulação de bits 
– Relacionais 
– Booleanos 
Vamos falar um pouco sobre eles... 
Operadores 
• Operadores Aritméticos 
– Os operadores aritméticos mais utilizados em Java são: 
 
Operadores 
• Operadores Relacionais 
e Condicionais 
- Os operadores mais utilizados em 
Java são: 
 
 
Operadores 
• Operadores Relacionais e Condicionais 
– Para a combinação AND, os operadores lógicos & ou && 
são utilizados. 
• A diferença entre & e && encontra-se em quanto trabalho Java faz 
sobre a expressão combinada. 
– Se & for utilizado, as expressões em qualquer lado do & são 
avaliadas, não importa o que seja. 
– Se && for usado e o lado esquerdo do && for falso, a expressão no 
lado direito do && nunca será avaliada. 
– Para a combinação OR, os operadores lógicos | ou || são 
utilizados. 
• A diferença entre | e || encontra-se em quanto trabalho Java faz 
sobre a expressão combinada. 
– Se | for utilizado, as expressões em qualquer lado do | são avaliadas, 
não importa o que seja. 
– Se || for usado e o lado esquerdo do || for verdadeiro, a expressão 
no lado direito do || nunca será avaliada. 
Operadores 
• Operadores de Atribuição 
– Básico 
int x = 5; // inicialização 
x = x + 2; // atribuição 
x = y = z = 7; // encadeada 
– Compostos 
Avaliação de Expressões 
• Precedência de Operadores 
– Tabela de precedências 
c = a + b * c; 
 
• Associatividade de Operadores 
– Esquerda para direita, exceto atribuição 
 c = a * b * c; 
 c = a = b = 10; 
 
• Associatividade de Operandos 
– Esquerda para direita 
 c = b++ + b; 
Questões Léxicas 
• Comentários 
 // texto 
 Todos os caracteres de // para o final da linha são ignorados. 
 
 /* texto */ 
 Todos os caracteres de /* para */ são ignorados. 
Questões Léxicas 
• Comentário de documentação 
 /** texto 
 * @param nome nome do cliente 
 */ 
 
– É uma forma especial de comentário usado pela 
ferramenta javadoc. 
• Deve ser usado antes da classe pública, do método e das 
declarações de variáveis. 
• O javadoc reconhece diversas variáveis especiais, as quais são 
denotadas por @ (sinal de arroba) dentro desses comentários. 
(usado para identificar parâmetros, por ex.) 
 
Questões Léxicas 
• Tags javadoc– Comentários gerais 
• @deprecated - adiciona um comentário de que a classe, método ou 
variável deveria não ser usada. O texto deve sugeir uma substituição. 
• @since - descreve a versão do produto quando o elemento foi adicionado à 
especificação da API. 
• @see - essa marca adiciona um link à seção "Veja também" da 
documentação 
– Comentários de classes e interfaces 
• @author - autor do elemento 
• @version - número da versão atual 
– Comentários de métodos 
• @param - descreve os parâmetros de um método acompanhado por uma 
descrição 
• @return - descreve o valor retornado por um método 
• @throws - indica as exceções que um dado método dispara com uma 
descrição associada 
– Comentários de serialização 
• @serial - para documentar a serialização de objetos 
 
Questões Léxicas 
• Comentário de documentação 
– Geração de documentação 
• O utilitário javadoc analisa 
arquivos fonte procurando por 
classes, métodos e comentários 
/**...*/. 
 
• Ele gera um arquivo HTML no 
mesmo formato que a 
documentação da API. 
javadoc FileData.java 
• Espaços e * ’s iniciais são 
descartados 
 
• Também é possível passar vários 
argumentos... 
 
Questões Léxicas 
• Comentário de documentação 
– Documentação gerada a partir do código anterior 
Questões Léxicas 
• JavaDoc No NetBeans 
 
Fluxo de Controle 
• Pra fechar só falta conversar agora sobre as estruturas 
de controle que Java oferece.... 
– Pra quem esqueceu... o controle de fluxo pode ser 
categorizado em quatro tipos: 
Seleção 
Fluxo de Controle 
• Java oferece vários comandos para controlar 
o fluxo da execução de um programa: 
– Repetições (loops): 
• while, do-while , for 
– Condicionais: 
• if-else, switch-case 
– Desvios: 
• break, continue, label:, return 
– Manipulação de exceções: 
• try-catch-finally, throw 
Fluxo de Controle 
• Sintaxe para Loops/Repetições 
Fluxo de Controle 
• Sintaxe para Condicionais 
 
• uso de break 
• default opcional 
Execução de Repetição: 
while 
• Entrada de dados pelo console 
– Outros Exemplos com Classe Scanner e Fluxos 
 
EntradaScanner.java 
Execução condicional: if-
else 
• O que acontece se retirarmos os parênteses do If 
nesse caso. 
– E se houvesse mais de um comando a ser 
executado caso a condição lógica seja verdadeira. 
Execução condicional: if-
else 
• Operador Condicional ( ? : ) 
– ( boolean_expr ? expr1 : expr2) 
 
 
– É uma alternativa útil ao if…else: 
• Se boolean_expr=true, o resultado é expr1, senão o resultado é 
expr2: 
 
Escolhendo entre vários: 
switch-case 
Botando na prática 
• Blz, 
– Chega de conversa, vamos para prática… 
Botando na prática – SEM IDE! 
• Podemos compilar e executar programas Java 
– Instalando o JDK e usando os comandos.... 
1.Javac <programa.java> para compilar 
2.Java <programa> para executar 
 
 
Botando na prática – COM IDE! 
• Agora usando o NetBeans 
– Passo 1 – Criar um projeto 
 
Botando na prática – COM IDE! 
• Agora usando o NetBeans 
– Passo 1 – Criar um projeto 
 
Botando na prática – COM IDE! 
• Agora usando o NetBeans 
– Passo 1 – Criar um projeto 
 
Botando na prática – COM IDE! 
• Agora usando o NetBeans 
– Passo 1 – Criar um projeto 
 
Botando na prática – COM IDE! 
• Agora usando o NetBeans 
– Passo 2 – Criar Classe 
 
Botando na prática – COM IDE! 
• Agora usando o NetBeans 
– Passo 2 – Criar Classe 
 
Botando na prática – COM IDE! 
• Agora usando o NetBeans 
– Passo 2 – Criar Classe 
 
Botando na prática – COM IDE! 
• Agora usando o NetBeans 
– Passo 3 – Digitar o conteúdo da Classe 
 
Botando na prática – COM IDE! 
• Agora usando o NetBeans 
– Onde é salvo o arquivo? 
 
Botando na prática – COM IDE! 
• Agora usando o NetBeans 
– Compilando a Classe 
Botando na prática – COM IDE! 
• Agora usando o NetBeans 
– Compilando a Classe 
Botando na prática – COM IDE! 
• Agora usando o NetBeans 
– Executando a Classe 
Exercício Junto!!! 
• Vamos fazer o jogo do adivinha número inteiro positivo 
secreto… 
– Vamos inclusive publicar no PSN…. 
 
• Regras: 
– O número secreto é 10 (mas não conta pra ninguém….) 
– O jogodor tem até 16 tentativas (inclusive) para acertar 
– Existem dicas: 
• 3 <= tentativa <= 5 
– Dica 1: Chuta um numero entre 1 e 1000 
• 8 <= tentativa <= 10 
– Dica 2: Chuta um numero entre 1 e 100 
• tentativa >= 13 
– Dica 3: Chuta um numero entre 1 e 10 
– No final diz se ganhou ou perdeu… 
“brincar” 
com o debug 
tb 
 
Exercícios 
• Blz... Agora é hora de exercitar..... 
 
• Tente resolver os seguintes problemas... 
– Em dupla 
– Apresentar ao professor no final da aula 
– Pontuação em Atividades em sala de aula... 
 
 
Exercícios 
• 1. Crie um arquivo para a classe abaixo e o 
compile. 
– Explique o que ocorreu. 
– Faça a correção devida e execute-o. 
Exercícios 
• 2. Escreva um programa que calcule a conversão de um 
temperatura em Fahrenheit para Celsius e vice versa 
• Dica: fah – 32 / 9 * 5; 
• O que acontece se definir o tipo fah ou cel como inteiro 
 
• 3. Faça um algoritmo que receba o salário de um funcionário, 
calcule e imprima o valor do imposto de renda a ser pago, 
sabendo que o imposto equivale a 5% do salário. 
 
• 4. Fazer um algoritmo que calcule o volume de uma esfera 
em função do raio R. 
3
3
4
RV 
Exercícios 
• 5. Faça um algoritmo que receba o valor do salário de um 
funcionário e o valor do salário mínimo. Calcule e imprima 
quantos salários mínimos ganha esse funcionário. 
 
• 6. Faça um algoritmo que receba o salário de um funcionário, 
calcule e imprima o novo salário sabendo-se que este sofreu um 
aumento de 25%. 
 
• 7. Faça um programa que calcula o Índice de Massa Corporal 
(IMC). 
– O índice de Massa Corporal (IMC) é uma fórmula que indica se um adulto está 
acima do peso, se está obeso ou abaixo do peso ideal considerado saudável. A 
fórmula para calcular o Índice de Massa Corporal é: IMC = peso / (altura)^2 
– Em Java, a classe que tem funções matemáticas tais como potência está na 
classe Math. 
Exercícios 
• 8. Faça um algoritmo que receba duas notas de um aluno e 
seus respectivos pesos, calcule e imprima a média 
ponderada dessas notas. 
 
• 9. Determine qual é a idade que o usuário faz no ano atual. 
Para isso peça o ano de nascimento e o ano atual. 
 
• 10. Solicite a quantidade de homens e de mulheres de uma 
turma qualquer da faculdade. Em seguida calcule e exiba o 
percentual (separadamente) de homens e mulheres desta 
turma. 
Exercícios 
• 11. Calcule o valor final de uma dívida. Para isto pergunte ao usuário o 
valor inicial do débito, a quantidade de meses e os juros mensais. Use 
o calculo de juros simples. 
– O regime de juros será simples quando o percentual de juros incidir apenas 
sobre o valor principal. 
– Transformando em fórmula temos: 
• J = P . i . N 
– J = juros 
– P = principal (capital) 
– i = taxa de juros 
– n = número de períodos 
– Ao somarmos os juros ao valor principal temos o montante. 
• M = P . ( 1 + ( i . n ) ) 
– Montante = Principal + Juros 
 
– Exemplo: Calcule o montante resultante da aplicação de R$70.000,00 à 
taxa de 10,5% a.a. durante 145 dias. 
 M = P . ( 1 + (i.n) ) 
 M = 70000 [1 + (10,5/100).(145/360)] = R$72.960,42 
• Observe que expressamos a taxa i e o período n, na mesma unidade de tempo, ou seja, 
anos. Daí ter dividido 145 dias por 360, para obter o valor equivalente em anos, já que um 
ano comercialpossui 360 dias. 
 
Exercício 
• 12. Faça um algoritmo que leia um número real positivo de cada vez e 
calcule a média dos valores maiores que cinco e calcule quantos números 
lidos são menores ou iguais a cinco. Estabeleça um critério de parada 
para finalizar o algoritmo de leitura de dados. 
– Dica: Para ler do teclado use Scanner e veja na API o comando hasNext() 
 
• 13. Segundo a OMS (organização Mundial de Saúde), o IMC normal está 
entre 18.5 e 25. Faça um programa que calcule o IMC para imprimir na 
tela se para os valores configurados a pessoa está "Abaixo do Peso", 
"Normal" ou "Acima do Peso". 
– A fórmula para calcular o Índice de Massa Corporal é: 
• IMC = peso / (altura)^2 
– Proíba a entrada de números negativos do usuário (evitar que a entrada seja 
um número negativo) 
Exercício 
• 14. Dado três valores distintos, dizer qual é o maior. 
 
• 15. Dado três valores distintos, colocá-los em ordem crescente. 
 
• 16. Elabore um algoritmo que leia o valor de dois números inteiros e a 
operação aritmética desejada; calcule, então, a resposta adequada. Utilize 
os símbolos da tabela a seguir para ler qual a operação aritmética escolhida. 
Código Classificação 
 + Adição 
 - Subtração 
 * Multiplicação 
 / Divisão 
 
 
• 17. Apresente uma tabela de conversão de reais em dólares. 
– Ela deve ser totalmente configurável, ou seja o usuário pode informar o valor inicial e final, 
o valor de incremento e o valor de 1 dólar. 
– Apresente os números no formato monetário com duas casas decimais. 
Exercício 
• 18. Fazer um algoritmo que calcule e escreva o número de grãos de milho que se 
pode colocar num tabuleiro de xadrez, colocando 1 no primeiro quadro e nos quadros 
seguintes o dobro do quadro anterior. 
 
 
 
 
 
 
• 19. Escreva um programa que apresenta dois números e usa os operadores / e % 
para exibir o resultado e o resto, depois de serem divididos. 
– Use o código de escape de caractere \t para separar o resultado e o resto na sua saída. 
 
• 20. Crie um programa que calcule quanto seria um investimento de R$14000 se seu 
valor aumentasse em 40% durante o primeiro ano, perdesse R$1500 no segundo e 
aumentasse 12% no terceiro.