Você está na página 1de 145

Algoritmos

Prof. Ricardo Luiz de Freitas


ricardo.freitas@emge.edu.br
2

Conteúdo 8

 Comando de REPETIÇÃO:
 for

 Exercícios

Prof. Ricardo Luiz de Freitas – ricardo.freitas@emge.edu.br


3

Estruturas de REPETIÇÃO

 Em vários momentos, durante a criação de


um programa, se torna necessário repetir um
ou mais comandos um determinado número
de vezes.
 Nesse caso, pode ser utilizada uma
estrutura de repetição que execute estes
comandos, tantas vezes quantas forem
necessárias.

Prof. Ricardo Luiz de Freitas – ricardo.freitas@emge.edu.br


4

Estruturas de REPETIÇÃO
 Existem comandos apropriados para efetuar a
repetição de outros comandos tantas vezes quantas
forem necessárias.
 A principal vantagem é que o programa passa a ter
um tamanho muito menor.
 Existem 2 tipos de repetições:
 Definidas e Garantidas, ou seja, um conjunto de
comandos será executado um número pré-determinado de
vezes e
 Indefinidas e sem Garantia, ou seja, um conjunto de
comandos será executado indefinidamente, não havendo
garantia do término da execução do programa.

Prof. Ricardo Luiz de Freitas – ricardo.freitas@emge.edu.br


5

Comando for

 Repetição baseada em contagem

for (int variável=ValorInicial; variável<=ValorFinal; variável++) {


comando1;
comando2;
...
comandon;
}
Comandos a serem
executados repetidas vezes

Prof. Ricardo Luiz de Freitas – ricardo.freitas@emge.edu.br


6

Exemplo 1
import java.util.Scanner;
public class RaizQuadradaPara {
public static void main(String[] args){
int numero;
float raiz;
Scanner teclado = new Scanner(System.in);
for (int contador=1; contador<=5; contador++) {
System.out.print("Informe um número inteiro: ");
numero = teclado.nextInt();
raiz = Math.sqrt(numero);
System.out.println("A raiz quadrada de "+numero+" = "+raiz);
}
teclado.close;
}
} Comandos a serem
executados repetidas vezes

Prof. Ricardo Luiz de Freitas – ricardo.freitas@emge.edu.br


7

Comando do while

 Repetição baseada em condição

do {
comando1;
comando2;
...
comandon;
} while (condição);
Comandos a serem
executados repetidas vezes

Prof. Ricardo Luiz de Freitas – ricardo.freitas@emge.edu.br


8

Exemplo 2
import java.util.Scanner;
public class RaizQuadradaRepita {
public static void main(String[] args){
int numero;
float raiz;
Scanner teclado = new Scanner(System.in);
do {
System.out.print("Informe um número inteiro: ");
numero = teclado.nextInt();
raiz = Math.sqrt(numero);
System.out.println("A raiz quadrada de "+numero+" = "+raiz);
} while (numero != 0);
teclado.close;
}
} Comandos a serem
executados repetidas vezes

Prof. Ricardo Luiz de Freitas – ricardo.freitas@emge.edu.br


9

Comando while

 Repetição baseada em condição

while (condição) {
comando1;
comando2;
...
comandon;
} Comandos a serem
executados repetidas vezes

Prof. Ricardo Luiz de Freitas – ricardo.freitas@emge.edu.br


10

Exemplo 3
import java.util.Scanner;
public class RaizQuadradaEnquanto {
public static void main(String[] args){
int numero;
float raiz;
Scanner teclado = new Scanner(System.in);
System.out.print("Informe um número inteiro: ");
numero = teclado.nextInt();
while (numero != 0) {
raiz = Math.sqrt(numero);
System.out.println("A raiz quadrada de "+numero+" = "+raiz);
System.out.print("Informe um número inteiro: ");
numero = teclado.nextInt();
}
teclado.close;
}
} Comandos a serem
executados repetidas vezes
Prof. Ricardo Luiz de Freitas – ricardo.freitas@emge.edu.br
11

Comando for
(Estrutura de repetição)
 De uma forma geral, este comando é utilizado para que
consigamos fazer com que um programa execute um ou mais
comandos mais de uma vez, sem termos que escrevê-los
repetidamente.

for (inicialização; condição; incremento) {


lista de comandos...
}
 A expressão colocada em inicialização inicializa o loop. Ela é executada uma
única vez quando o loop começa;
 Quando a expressão booleana condição é avaliada como falsa, o loop
termina. Ela é executada depois de cada repetição do for;
 A expressão colocada em incremento é chamada depois de cada repetição.
Ela pode aumentar ou diminuir um valor.

Prof. Ricardo Luiz de Freitas – ricardo.freitas@emge.edu.br


12

Comando for
(Estrutura de repetição)
 Bloco de comandos:
 São delimitados pelas chaves { e };
 Agrupam comandos dentro de um comando maior, como o for.

for (int VAR = ValorInicial; VAR <= ValorFinal; VAR++) {


comando1;
No caso de apenas um
comando2; comando dentro do for não é
} necessário utilizar
Comandos queas chaves
(criar um bloco de
serão executados
comandos).
for (int VAR = ValorInicial; VAR <= ValorFinal;
várias vezes VAR++)
comandoúnico;

Prof. Ricardo Luiz de Freitas – ricardo.freitas@emge.edu.br


13

Fluxograma
 Representação do comando for:
Inicializa a
inicialização variável auxiliar
com o VALOR
F INICIAL
condição

V Verifica se a
comando 1 variável auxiliar
ultrapassou o
VALOR FINAL
Incrementa com comando n
mais 1 a variável
auxiliar incremento

Prof. Ricardo Luiz de Freitas – ricardo.freitas@emge.edu.br


14

Comando PARA A variável auxiliar


(Estrutura de repetição)
é inicializada. A condição é
verificada.
comando;
comando;
for (int variavel=VALORINICIAL; variavel<=VALORFINAL; variavel++) {
comando1;
comando2;
... A condição é
comandon; verificada.
} Enquanto a condição
comando; é verdadeira as A variável auxiliar
repetições é incrementada.
comando; Quando a condição
acontecem.
se torna falsa as
repetições páram.

Prof. Ricardo Luiz de Freitas – ricardo.freitas@emge.edu.br


15

Comando PARA
(Estrutura de repetição)

comando;
comando;
for (int variavel=VALORINICIAL; variavel<=VALORFINAL; variavel++) {
comando1;
comando2; Condição FALSA
... Condição
continua o loop
VERDADEIRA
if (condição)
(repetição).
interrompe o loop
break;
... (repetição).
comandon-1;
comandon;
}
comando; O comando break interrompe
comando;
as repetições encerrando o
comando for.

Prof. Ricardo Luiz de Freitas – ricardo.freitas@emge.edu.br


16
Comandos que Comandos que
Comando for
serão executados serão executados
(Estrutura
50 vezesde(69-20+1)
repetição) 50 vezes (50-1+1)

... ...
for (int VEZ=1; VEZ<=50; VEZ++) { for (int AUX=20; AUX<=69; AUX++) {
comando1; comando1;
comando2; comando2;
} }
... ...

 VALORINICIAL e VALORFINAL: VALORINCIAL = 1


 Deverão ser sempre valores inteiros. => Repetições = VALORFINAL

 A quantidade de repetições é calculada por:


 Repetições = VALORFINAL – VALORINICIAL + 1

Prof. Ricardo Luiz de Freitas – ricardo.freitas@emge.edu.br


17

Exemplo 4
Faça um programa que calcule as massas
corporais de 5 pessoas, com os pesos
individuais de cada uma sendo informados
pelo usuário. A cada peso informado deverá
ser calculada e impressa a massa.

Massa Corporal = Peso / 9.8

Prof. Ricardo Luiz de Freitas – ricardo.freitas@emge.edu.br


18

Exemplo 4
(Programa resolvido)

import java.util.Scanner;
public class CalculaMassaCorporalA {
public static void main(String[] args) {
double peso, massa;
Scanner teclado = new Scanner(System.in);
System.out.print("Entre com o peso: ");
peso = teclado.nextDouble();
massa = peso / 9.8;
System.out.println("Massa Corporal = "+massa);
teclado.close();
}
}

Prof. Ricardo Luiz de Freitas – ricardo.freitas@emge.edu.br


19
import java.util.Scanner;
Exemplo 4 public class CalculaMassaCorporalB {
public static void main(String[] args) {
(Programa resolvido) double peso, massa;
Scanner teclado = new Scanner(System.in);
System.out.print("Entre com o peso: ");
peso = teclado.nextDouble();
massa = peso / 9.8;
System.out.println("Massa Corporal =
"+massa);
System.out.print("Entre com o peso: ");
peso = teclado.nextDouble();
massa = peso / 9.8;
System.out.println("Massa Corporal =
"+massa);
System.out.print("Entre com o peso: ");
peso = teclado.nextDouble();
massa = peso / 9.8;
System.out.println("Massa Corporal =
"+massa);
System.out.print("Entre com o peso: ");
peso = teclado.nextDouble();
massa = peso / 9.8;
System.out.println("Massa Corporal =
"+massa);
System.out.print("Entre com o peso: ");
peso = teclado.nextDouble();
massa = peso / 9.8;
System.out.println("Massa Corporal =
"+massa);
Prof. Ricardo Luiz de Freitas – ricardo.freitas@emge.edu.br
teclado.close();
}
20

Exemplo 4 Quando ValorInicial = 1


(Programa resolvido) o ValorFinal indica o
numero de repetições
import java.util.Scanner;
public class CalculaMassaCorporal {
public static void main(String[] args) {
double peso, massa;
Scanner teclado = new Scanner(System.in);
for (int aux=1; aux<=5; aux++) {
System.out.print("Entre com o peso: ");
peso = teclado.nextDouble();
massa = peso / 9.8;
System.out.println("Massa Corporal = "+massa);
}
teclado.close();
} Comandos que serão
}
executados 5 vezes

Prof. Ricardo Luiz de Freitas – ricardo.freitas@emge.edu.br


21

Exemplo 4a O comando break interromperá


(Programa resolvido) o comando for quando o
usuário digitar 0 no peso
import java.util.Scanner;
public class CalculaMassaCorporal2 {
public static void main(String[] args) {
double peso, massa;
Scanner teclado = new Scanner(System.in);
for (int aux=1; aux<=5; aux++) {
System.out.print("Entre com o peso: ");
peso = teclado.nextDouble();
if (peso==0)
break;
massa = peso / 9.8;
System.out.println("Massa Corporal = "+massa);
}
teclado.close();
}
}
Prof. Ricardo Luiz de Freitas – ricardo.freitas@emge.edu.br
22

Exemplo 5
Faça um programa que calcule os valores da função
f(x) = x2 - 1, para 10 valores de x informados pelo
usuário. A cada valor informado o programa deverá
imprimir este valor e o da função da seguinte forma:

x=1 f(x)=0
x=2 f(x)=3
x=3 f(x)=8
...
x=10 f(x)=99

Prof. Ricardo Luiz de Freitas – ricardo.freitas@emge.edu.br


23

Exemplo 5
(Programa resolvido)

import java.util.Scanner;
public class FuncaoRepetida {
public static void main(String[] args) {
double x, fx;
Scanner teclado = new Scanner(System.in);

System.out.print("Entre com o valor de x: ");


x = teclado.nextDouble();
fx = Math.pow(x,2) - 1;
System.out.println("x = "+x+" f(x) = "+fx);

teclado.close();
}
}

Prof. Ricardo Luiz de Freitas – ricardo.freitas@emge.edu.br


24

Exemplo 5
(Programa resolvido)

import java.util.Scanner;
public class FuncaoRepetida {
public static void main(String[] args) {
double x, fx;
Scanner teclado = new Scanner(System.in);
for (int repeticao=1; repeticao<=10; repeticao++) {
System.out.print("Entre com o valor de x: ");
x = teclado.nextDouble();
fx = Math.pow(x,2) - 1;
System.out.println("x = "+x+" f(x) = "+fx);
}
teclado.close();
} Comandos que serão
}
executados 10 vezes

Prof. Ricardo Luiz de Freitas – ricardo.freitas@emge.edu.br


25

Exercício 1
Faça um programa para calcular e imprimir a área de
10 círculos, cujos raios serão informados pelo
usuário. Use o valor de igual a 3.1416.

2

Á  𝑟𝑒𝑎=𝜋 𝑅

Raio = 60  Área = 11309.76


Para testar (com somente 3 raios): Raio = 99  Área = 30790.8216
Raio = 45  Área = 6361.74
26

Exercício 2
Faça um programa para ler a nota final e o total de faltas
de todos os 50 alunos de uma disciplina. A cada aluno lido
o programa deverá verificar e informar se o aluno foi
APROVADO ou REPROVADO. Se o aluno tiver obtido
nota igual ou superior a 65 e não tiver faltado a mais de
16 aulas ele foi aprovado, senão ele foi reprovado.

Observação: Interrompa as repetições se o usuário


digitar -1 na nota final.

Para testar:
Nota = 75 e Falta = 12  ALUNO APROVADO
Nota = 99 e Falta = 20  ALUNO REPROVADO
Nota = 45 e Falta = 11  ALUNO REPROVADO
Nota = -1

Prof. Ricardo Luiz de Freitas – ricardo.freitas@emge.edu.br


27

Contador
 Uma variável do tipo int criada com o objetivo de contar
a ocorrência de alguma situação especial durante a
repetição de um processo;
 Incrementada por um valor constante (geralmente 1);
 Para incrementar o valor de uma variável utiliza-se o
seguinte comando:
 contador = contador + 1; ou contador++;

 Exemplos:
 qtde = qtde + 1; ou qtde++;
 aprovados = aprovados + 1; ou aprovados++;
 numPar = numPar + 1; ou numPar++;

Prof. Ricardo Luiz de Freitas – ricardo.freitas@emge.edu.br


28

Comando for
(Estrutura de repetição)

...
int cont = 0, numero; for numero cont Impressão
... - 0
for (int aux=1; aux<=5; aux++) { 1 5 0
System.out.print("Digite um número"); 2 10 1
numero = teclado.nextInt(); 3 6 2
if (numero % 2 = 0) 4 9 2
cont++; 5 20 3
} - - 3 A
System.out.println("A contagem deu "+cont); contagem
... deu 3

Prof. Ricardo Luiz de Freitas – ricardo.freitas@emge.edu.br


29

Exemplo 6
Faça um programa que leia o nome e sexo
(“M” para masculino e “F” para feminino)
de um grupo de 100 pessoas e ao final
imprima a quantidade de mulheres.

Prof. Ricardo Luiz de Freitas – ricardo.freitas@emge.edu.br


30

Exemplo 6 Neste exemplo, a variável


CONTADOR é um contador pois
(Programa resolvido – Solução 1) executa a contagem de alguma
situação especial nos dados (no
import java.util.Scanner; caso, a quantidade de mulheres
entrevistadas).
public class CalcQtdeMulheres2 {
public static void main(String[] args) {
int contador = 0;
String nome, sexo;
Scanner teclado = new Scanner(System.in);
for (int aux=1; aux<=100; aux++) {
System.out.print("Nome: ");
nome = teclado.nextLine();
System.out.print("Sexo (M ou F): ");
sexo = teclado.nextLine();
if (sexo.equalsIgnoreCase("F")
contador++;
}
System.out.println("Quantidade de mulheres = "+contador);
teclado.close();
}
}

Prof. Ricardo Luiz de Freitas – ricardo.freitas@emge.edu.br


31

Exemplo 6
(Programa resolvido – Solução 2)
import java.util.Scanner;
public class CalcQtdeMulheres2 {
public static void main(String[] args) {
int contador = 0;
String nome, sexo;
Scanner teclado = new Scanner(System.in);
for (int aux=1; aux<=100; aux++) {
System.out.print("Nome: ");
nome = teclado.nextLine();
System.out.print("Sexo (M ou F): ");
sexo = teclado.nextLine();
if (sexo.equalsIgnoreCase("F") ||
sexo.equalsIgnoreCase("Feminino"))
contador++;
}
System.out.println("Quantidade de mulheres = "+contador);
teclado.close();
}
}

Prof. Ricardo Luiz de Freitas – ricardo.freitas@emge.edu.br


32

Exemplo 7
Faça um programa que calcule e imprima a
quantidade de postos de gasolina cujos
preços estão abaixo de R$3,00 e a
quantidade de postos cujos preços
ultrapassam os R$4,00. Para isto o
programa deverá ler o nome e o preço da
gasolina de 68 postos de gasolina
pesquisados.

Prof. Ricardo Luiz de Freitas – ricardo.freitas@emge.edu.br


33

Exemplo 7
(Programa resolvido – DUAS CONTAGENS DISTINTAS)
import java.util.Scanner;
public class PesquisaGasolina {
public static void main(String[] args) {
int contMenor = 0, contMaior = 0;
String nome;
double preco;
Scanner teclado = new Scanner(System.in);
for (int aux=1; aux<=68; aux++) {
System.out.print("Informe nome do posto de gasolina: ");
nome = teclado.nextLine();
System.out.print("Informe preço da gasolina neste posto: ");
preco = teclado.nextDouble();
if (preco < 3)
contMenor++;
if (preco > 4)
contMaior++;
teclado.nextLine();
}
System.out.println("Quant. de postos que cobram abaixo de R$3:
"+contMenor);
System.out.println("Quant. de postos que cobram acima de R$4: "+contMaior);
teclado.close();
}
}
Prof. Ricardo Luiz de Freitas – ricardo.freitas@emge.edu.br
34

Exemplo 8
Faça um programa que calcule, entre 5
números informados pelo usuário, a
quantidade de números NEGATIVOS e a
quantidade de números POSITIVOS
(incluindo o zero).

Prof. Ricardo Luiz de Freitas – ricardo.freitas@emge.edu.br


35

Exemplo 8
(Programa resolvido – DUAS CONTAGENS COMPLEMENTARES - 1)
import java.util.Scanner;
public class Contagem1 {
public static void main(String[] args) {
int numero, cont1 = 0, cont2 = 0;
Scanner teclado = new Scanner(System.in);
for (int aux=1; aux<=5; aux++) {
System.out.print("Informe um número: ");
numero = teclado.nextInt();
if (numero < 0)
cont1++;
if (numero >= 0)
cont2++;
}
System.out.println("Quantidade de números negativos = "+cont1);
System.out.println("Quantidade de números positivos = "+cont2);
teclado.close();
}
}

Prof. Ricardo Luiz de Freitas – ricardo.freitas@emge.edu.br


36

Exemplo 8
(Programa resolvido – DUAS CONTAGENS COMPLEMENTARES - 2)
import java.util.Scanner;
public class Contagem2 {
public static void main(String[] args) {
int numero, cont1 = 0, cont2 = 0;
Scanner teclado = new Scanner(System.in);
for (int aux=1; aux<=5; aux++) {
System.out.print("Informe um número: ");
numero = teclado.nextInt();
if (numero < 0)
cont1++;
else
cont2++;
}
System.out.println("Quantidade de números negativos = "+cont1);
System.out.println("Quantidade de números positivos = "+cont2);
teclado.close();
}
}

Prof. Ricardo Luiz de Freitas – ricardo.freitas@emge.edu.br


37

Exemplo 8
(Programa resolvido – DUAS CONTAGENS COMPLEMENTARES - 3)
import java.util.Scanner;
public class Contagem3 {
public static void main(String[] args) {
int numero, cont1 = 0, cont2;
Scanner teclado = new Scanner(System.in);
for (int aux=1; aux<=5; aux++) {
System.out.print("Informe um número: ");
numero = teclado.nextInt();
if (numero < 0)
cont1++;
}
cont2 = 5 – cont1;
System.out.println("Quantidade de números negativos = "+cont1);
System.out.println("Quantidade de números positivos = "+cont2);
teclado.close();
}
}

Prof. Ricardo Luiz de Freitas – ricardo.freitas@emge.edu.br


38

Exemplo 8
(Programa resolvido – DUAS CONTAGENS COMPLEMENTARES - 4)
import java.util.Scanner;
public class Contagem4 {
public static void main(String[] args) {
int numero, cont = 0;
Scanner teclado = new Scanner(System.in);
for (int aux=1; aux<=5; aux++) {
System.out.print("Informe um número: ");
numero = teclado.nextInt();
if (numero < 0)
cont++;
}
System.out.print("Quantidade de números negativos = "+cont);
System.out.print("Quantidade de números positivos = "+(5 – cont));
teclado.close();
}
}

Prof. Ricardo Luiz de Freitas – ricardo.freitas@emge.edu.br


39

Exercício 3
Faça um programa para ler a nota final e o total de
faltas de todos os 50 alunos de uma disciplina. A
cada aluno lido o programa deverá verificar e
informar se o aluno foi APROVADO ou
REPROVADO. Se o aluno tiver obtido nota igual ou
superior a 65 e não tiver faltado a mais de 16 aulas
ele foi aprovado, senão ele foi reprovado. Ao final do
programa deverão ser informados quantos
alunos foram aprovados e quantos foram
reprovados. Para testar (com somente 3 alunos):
Nota = 75 e Falta = 12  ALUNO APROVADO
Nota = 99 e Falta = 20  ALUNO REPROVADO
Nota = 45 e Falta = 11  ALUNO REPROVADO
Aprovados  1
Reprovados  2

Prof. Ricardo Luiz de Freitas – ricardo.freitas@emge.edu.br


40

Exercício 4
Fazer um programa para ler o nome e a idade de
todos os 50 alunos de uma turma e calcular e
imprimir:
a) Quantos alunos tem até 18 anos
b) Quantos alunos tem acima de 18 anos

Para testar (com somente 5 alunos):


Nome = PEDRO Idade = 17
Nome = ANA Idade = 20
Nome = RUI Idade = 24
Nome = RICARDO Idade = 18
Nome = VOLNEI Idade = 15
Até 18  3
Acima de 18  2

Prof. Ricardo Luiz de Freitas – ricardo.freitas@emge.edu.br


41

Exercício 5
Faça um programa para apurar as eleições para
prefeito de uma cidade. Para o cargo se candidataram
3 pessoas: Fulano, Ciclano e Beltrano. O programa
deverá ler todos os votos, calcular e imprimir a
quantidade de votos obtido por cada candidato e o
nome do candidato vencedor. A cidade tem 100
eleitores e todos votaram.
Observações:
1) O voto será computado pelo número do candidato e não pelo
seu nome de acordo com a codificação abaixo:
1 - Fulano, 2 - Ciclano e 3 - Beltrano
2) Não haverá votos em branco ou nulos.
3) Não haverá empate entre candidatos.

Prof. Ricardo Luiz de Freitas – ricardo.freitas@emge.edu.br


42

Exercício 5a
Refaça, complementando o programa anterior,
prevendo que poderá haver empate triplo ou duplo
entre os candidatos, e, se houver empates, continue o
programa fazendo um segundo turno somente com os
candidatos que empataram.

Também faça o programa contar os votos nulos


(diferentes de 1, 2 ou 3) e, se a quantidade de votos
nulos for maior do que a quantidade de votos válidos
(1, 2 ou 3), o programa deverá informar que a eleição,
inclusive a de segundo turno, está anulada.

Prof. Ricardo Luiz de Freitas – ricardo.freitas@emge.edu.br


43

Somatório
 Uma variável numérica criada com o objetivo de calcular
o somatório de algum valor;
 Incrementada por um valor variável.
 Geralmente é utilizada uma variável lida dentro do processo de
repetição (looping);
 Para fazer o somatório do valor de uma variável utiliza-
se o seguinte comando:
 soma = soma + variável; ou somatório += variável;

 Exemplos:
 somaNotas = somaNotas + nota;
 total += custoProduto;
 somaIdadeMulheres = somaIdadeMulheres + idade;
 somaIdadeHomens += idade;

Prof. Ricardo Luiz de Freitas – ricardo.freitas@emge.edu.br


44

Comando for
(Estrutura de repetição)

...
double numero, soma = 0; for numero soma Impressão
... - 0
for (int aux=1; aux<=5; aux++) { 1 5 5
System.out.print("Digite um número: "); 2 10 15
numero = teclado.nextDouble(); 3 6,5 21,5
soma += numero;
4 9 30,5
}
5 20 50,5
System.out.println("A soma foi de "+soma);
- - 50,5 A soma
... deu 50,5

Prof. Ricardo Luiz de Freitas – ricardo.freitas@emge.edu.br


45

Exemplo 9
Faça um programa que leia os custos
individuais de 20 produtos que estão sendo
comprados e calcule o valor total a pagar
pelo cliente.

Prof. Ricardo Luiz de Freitas – ricardo.freitas@emge.edu.br


46

Exemplo 9
(Programa resolvido)
import java.util.Scanner;
public class TotalizaValorProdutos1 {
public static void main(String[] args) {
double custo, totalAPagar = 0;
Scanner teclado = new Scanner(System.in);
for (int aux=1; aux<=20; aux++) {
System.out.print("Custo do produto : R$ ");
custo = teclado.nextDouble();
totalAPagar += custo;
}
System.out.println("Total a pagar = R$"+totalAPagar);
teclado.close();
} Neste exemplo, a variável
} TotalAPagar é um somatório pois
sua função é somar todos os
preços digitados

Prof. Ricardo Luiz de Freitas – ricardo.freitas@emge.edu.br


47

Exemplo 9
(Programa resolvido)
import java.util.Scanner;
public class TotalizaValorProdutos2 {
public static void main(String[] args) {
double custo, totalAPagar = 0;
Scanner teclado = new Scanner(System.in);
for (int aux=1; aux<=20; aux++) {
System.out.print("Custo do produto : R$ ");
custo = teclado.nextDouble();
subtotal totalAPagar += custo;
System.out.println("Subtotal a pagar = R$"+totalAPagar);
}
System.out.println("Total a pagar = R$"+totalAPagar);
teclado.close();
}
}

Prof. Ricardo Luiz de Freitas – ricardo.freitas@emge.edu.br


48

Exemplo 10
Faça um programa que calcule e imprima a
média de 5 valores numéricos inteiros
informados pelo usuário.

Prof. Ricardo Luiz de Freitas – ricardo.freitas@emge.edu.br


49

Exemplo 10 O cálculo da média


(Programa resolvido)
deve acontecer
import java.util.Scanner;
somente depois que o
public class Somatorio {
public static void main(String[] args) { somatório estiver
int numero, soma = 0; finalizado.
double media;
Scanner teclado = new Scanner(System.in);
for (int aux=1; aux<=5; aux++) {
System.out.print("Informe um número inteiro: ");
numero = teclado.nextInt();
soma += numero;
media = soma / 5.0;
ERRADO
}
System.out.println("A média deu "+media);
teclado.close();
}
}

Prof. Ricardo Luiz de Freitas – ricardo.freitas@emge.edu.br


50

Exemplo 10 Numa divisão em Java, para


que dê casas decimais, a
(Programa resolvido)
variável a receber o resultado
import java.util.Scanner; tem que ser float ou double
public class Somatorio { (real) e temos que ter (ou fazer
public static void main(String[] args) cast)
{ pelo menos em uma
int numero, soma = 0;
double media;
variável/constante int ou
longint (inteira) na expressão.
Scanner teclado = new Scanner(System.in);
for (int aux=1; aux<=5; aux++) {
System.out.print("Informe um número inteiro: ");
5.0 ou 5f
numero = teclado.nextInt();
soma += numero;
}
media = soma / 5.0;
System.out.println("A média deu "+media);
teclado.close();
}
}

Prof. Ricardo Luiz de Freitas – ricardo.freitas@emge.edu.br


51

Exemplo 11
Faça um programa que calcule e imprima a
média dos números compreendidos entre 1
e 100 dentre 5 valores numéricos inteiros
informados pelo usuário.

Prof. Ricardo Luiz de Freitas – ricardo.freitas@emge.edu.br


52

Exemplo 11 Qual o erro de lógica


(Programa resolvido)
deste algoritmo?
import java.util.Scanner;
public class Somatorio2 {
public static void main(String[] args) {
int numero, soma = 0;
double media;
Scanner teclado = new Scanner(System.in);
for (int aux=1; aux<=5; aux++) {
System.out.print("Informe um número inteiro: ");
numero = teclado.nextInt();
if (numero >= 1 && numero <= 100) {
soma += numero;
}
}
media = soma / 5.0; ERRADO
System.out.println("A média deu "+media);
teclado.close(); O cálculo da média
} está levando em
}
conta sempre 5
números.
Prof. Ricardo Luiz de Freitas – ricardo.freitas@emge.edu.br
53

Exemplo 11 Numa divisão em Java, para


que dê casas decimais, a
(Programa resolvido)
variável a receber o resultado
import java.util.Scanner; tem que ser float ou double
public class Somatorio2 { (real) e temos que ter (ou fazer
public static void main(String[] args) {
int numero, soma = 0, cont = 0;
cast) pelo menos uma
double media; variável/constante int ou
Scanner teclado = new Scanner(System.in); longint (inteira) na expressão.
for (int aux=1; aux<=5; aux++) {
System.out.print("Informe um número inteiro: ");
numero = teclado.nextInt();
if (numero >= 1 && numero <= 100) {
soma += numero;
cont++;
}
}
media = (float) soma / cont; CERTO
System.out.println("A média deu "+media);
teclado.close();
}
}

Prof. Ricardo Luiz de Freitas – ricardo.freitas@emge.edu.br


54

Exemplo 11 Neste caso, se cont


(Programa resolvido) for igual a 0, o
import java.util.Scanner; programa não dará
public class Somatorio2 {
public static void main(String[] args) { erro de execução.
int numero, soma = 0, cont = 0;
double media;
Scanner teclado = new Scanner(System.in);
for (int aux=1; aux<=5; aux++) {
System.out.print("Informe um número inteiro: ");
numero = teclado.nextInt();
if (numero >= 1 && numero <= 100) {
soma += numero;
cont++;
}
}
if (cont > 0) { CERTÍSSIMO
media = (float) soma / cont;
System.out.println("A média deu "+media);
}
else
System.out.println("Nenhum número está entre 1 e 100!");
teclado.close();
}
}
Prof. Ricardo Luiz de Freitas – ricardo.freitas@emge.edu.br
55

Variação da Quantidade de
Repetições
VALORFINAL variável
 A quantidade de repetições do comando for pode variar de acordo
com a necessidade do usuário.
 Utiliza-se uma variável int no lugar do VALORFINAL do for.
 O valor desta variável, ou a quantidade de repetições, deve ser lida
(solicitada ao usuário) antes do comando for.
 A sintaxe deve ser:
int rep;
...
System.out.print("Informe quantidade de repetições: ");
rep = teclado.nextInt();
for (int aux=1; aux<=rep; aux++)
...

Prof. Ricardo Luiz de Freitas – ricardo.freitas@emge.edu.br


56

Exemplo 12
Faça um programa que calcule e imprima a
média de uma série de valores numéricos
inteiros informados pelo usuário. A
quantidade de números a serem
informados pelo usuário deverá ser
solicitada ao mesmo no início do
programa.

Prof. Ricardo Luiz de Freitas – ricardo.freitas@emge.edu.br


57

Exemplo 12
(Programa resolvido)
import java.util.Scanner;
public class Somatorio3 {
public static void main(String[] args) {
int numero, soma = 0, rep;
double media;
Scanner teclado = new Scanner(System.in);
System.out.print("Quantos números serão informados? ");
rep = teclado.nextInt();
for (int aux=1; aux<=rep; aux++) {
System.out.print("Informe um número inteiro: ");
numero = teclado.nextInt();
soma += numero;
}
media = (float) soma / rep;
System.out.println("A média deu "+media);
teclado.close();
}
}

Prof. Ricardo Luiz de Freitas – ricardo.freitas@emge.edu.br


58

Exemplo 13
Faça um programa que calcule e imprima a
média dos valores numéricos inteiros
compreendidos entre 1 e 100 dentre uma
série de valores numéricos inteiros
informados pelo usuário. A quantidade de
números a serem informados pelo
usuário deverá ser solicitada ao mesmo
no início do programa.

Prof. Ricardo Luiz de Freitas – ricardo.freitas@emge.edu.br


59

Exemplo 13
(Programa resolvido)
import java.util.Scanner;
public class Somatorio3 {
public static void main(String[] args) {
int numero, soma = 0, cont = 0, rep;
double media;
Scanner teclado = new Scanner(System.in);
System.out.print("Quantos números serão informados? ");
rep = teclado.nextInt();
for (int aux=1; aux<=rep; aux++) {
System.out.print("Informe um número inteiro: ");
numero = teclado.nextInt();
if (numero >= 1 && numero <= 100) {
soma += numero;
cont++;
}
}
media = (float) soma / cont;
System.out.println("A média deu "+media);
teclado.close();
}
}
Prof. Ricardo Luiz de Freitas – ricardo.freitas@emge.edu.br
60

Exercício 6
Faça um programa para solicitar ao usuário 10 números inteiros e
calcular e imprimir:

a) Para cada número lido se ele é par ou ímpar


b) A soma dos números divisíveis por 4
c) A quantidade de números divisíveis por 3

Dicas:
- Use o operador aritmético %;
- Se X % 2 igual a 0 então X é divisível por 2;
- Os números divisíveis por 2 são pares.

Para testar: Números: 100 33 4 12 30 20 17 16 21 8


Soma dos números divisíveis por 4 = 160
Quantidade de números divisíveis por 3 = 4

Prof. Ricardo Luiz de Freitas – ricardo.freitas@emge.edu.br


61

Exercício 7
Fazer um programa para ler o nome e a idade de
todos os 50 alunos de uma turma e calcular e
imprimir:
a) Quantos alunos tem até 12 anos;
b) Quantos alunos tem acima de 30 anos;
c) A média das idades informadas.

Para testar (5 alunos):


Pedro/24 Ana/9 Rui/12 Maria/51 João/28
Alunos até 12 anos = 2 Média das idades = 24.8
Alunos acima de 30 anos = 1

Prof. Ricardo Luiz de Freitas – ricardo.freitas@emge.edu.br


62

Exercício 8
Faça um programa para ler a nota final e o total de faltas de
todos os 50 alunos de uma disciplina. A cada aluno lido o
programa deverá verificar e informar se o aluno foi APROVADO
ou REPROVADO. Se o aluno tiver obtido nota igual ou superior
a 65 e não tiver faltado a mais de 16 aulas ele foi aprovado,
senão ele foi reprovado. Ao final do programa deverão ser
informadas a média das notas dos alunos APROVADOS e a
quantidade de alunos com mais de 16 faltas.

Para testar (somente 3 alunos):


Nota = 75 e Falta = 12  ALUNO APROVADO
Nota = 99 e Falta = 20  ALUNO REPROVADO
Nota = 45 e Falta = 11  ALUNO REPROVADO
Média das notas dos aprovados = 75
Quantidade de alunos com mais de 16 faltas = 1

Prof. Ricardo Luiz de Freitas – ricardo.freitas@emge.edu.br


63

Exercício 9
Faça um programa que leia o nome, idade e sexo (“M”
para masculino e “F” para feminino) de diversas
pessoas e ao final imprima a idade média das
mulheres e a idade média dos homens. A quantidade
de pessoas deve ser informada no início do
programa pelo usuário.

Para testar (5 pessoas):


Nome = Maria Idade = 12 Sexo = F
Nome = Pedro Idade = 25 Sexo = M
Nome = Rui Idade = 80 Sexo = M
Nome = Ana Idade = 36 Sexo = F
Nome = Ivo Idade = 41 Sexo = M
Média das idades dos homens = 48.666...
Média das idades das mulheres = 24

Prof. Ricardo Luiz de Freitas – ricardo.freitas@emge.edu.br


64

Pesquisa de MAIOR/MENOR valor


 Procura do MAIOR ou MENOR valor de um dado
(variável) qualquer, numa determinada massa de dados.
 Necessário o uso de variáveis auxiliares para guardar o
maior/menor valor durante a leitura dos dados dentro da
repetição.
Sinal de > para MAIOR VALOR
int numero, numeroMaior = 0; Sinal de < para MENOR VALOR
...
for (int aux=1; aux<=100; aux++) {
System.out.println("Informe um número inteiro: ");
numero = teclado.nextInt();
if (aux == 1 || numero > numeroMaior)
numeroMaior = numero;
}
System.out.println("Maior valor = "+numeroMaior)
...

Prof. Ricardo Luiz de Freitas – ricardo.freitas@emge.edu.br


65

Exemplo 14
Faça um programa que pesquise e imprima
o VALOR da gasolina mais cara de Belo
Horizonte. Para isto o programa deverá ler o
nome e o preço da gasolina de 68 postos de
gasolina pesquisados.

Prof. Ricardo Luiz de Freitas – ricardo.freitas@emge.edu.br


66

Exemplo 14
(Programa resolvido – MAIOR VALOR)
import java.util.Scanner;
public class PesquisaGasolina1 {
public static void main(String[] args) {
String nome;
double preco, precoMaior = 0;
Scanner teclado = new Scanner(System.in);
for (int aux=1; aux<=68; aux++) {
System.out.print("Informe nome do posto de gasolina: ");
nome = teclado.nextLine();
System.out.print("Informe preço da gasolina neste posto: ");
preco = teclado.nextDouble();
if (aux == 1 || preco > precoMaior)
precoMaior = preco;
teclado.nextLine();
}
System.out.println("Preço da gasolina mais cara em BH:"+precoMaior);
teclado.close();
}
}

Prof. Ricardo Luiz de Freitas – ricardo.freitas@emge.edu.br


67

Exemplo 14
for nome preco precoMaior Impressão
- - - 0 -

1 Papai 3,20 3,20 -

2 Avenida 4,10 4,10 -

3 Xuá 3,95 4,10 -

4 São Luis 4,15 4,15 -

... ... ... 4,15 -

68 Tocantins 3,70 4,15 -

- - - 4,15 ... R$ 4,15

Prof. Ricardo Luiz de Freitas – ricardo.freitas@emge.edu.br


68

Exemplo 14
(Programa resolvido – MENOR VALOR)
import java.util.Scanner;
public class PesquisaGasolina2 {
public static void main(String[] args) {
String nome;
double preco, precoMenor = 0;
Scanner teclado = new Scanner(System.in);
for (int aux=1; aux<=68; aux++) {
System.out.print("Informe nome do posto de gasolina: ");
nome = teclado.nextLine();
System.out.print("Informe preço da gasolina neste posto: ");
preco = teclado.nextDouble();
if (aux == 1 || preco < precoMenor)
precoMenor = preco;
teclado.nextLine();
}
System.out.println("Preço da gasolina mais barata de BH:"+precoMenor);
teclado.close();
}
}

Prof. Ricardo Luiz de Freitas – ricardo.freitas@emge.edu.br


69

Exemplo 14
for nome preco precoMenor Impressão
- - - 0 -

1 Papai 3,20 3,20 -

2 Avenida 4,10 3,20 -

3 Xuá 3,15 3,15 -

4 São Luis 4,15 3,15 -

... ... ... 3,15 -

68 Tocantins 3,00 3,00 -

- - - 3,00 ... R$ 3,00

Prof. Ricardo Luiz de Freitas – ricardo.freitas@emge.edu.br


70

Exemplo 15
Faça um programa que pesquise e imprima
o NOME do posto de gasolina que cobra a
gasolina mais cara de Belo Horizonte. Para
isto o programa deverá ler o nome e o preço
da gasolina de 68 postos de gasolina
pesquisados.

Prof. Ricardo Luiz de Freitas – ricardo.freitas@emge.edu.br


71

Exemplo 15
(Programa resolvido)
import java.util.Scanner;
public class PesquisaGasolina3 {
public static void main(String[] args) {
String nome, nomeMaior = "";
double preco, precoMaior = 0;
Scanner teclado = new Scanner(System.in);
for (int aux=1; aux<=68; aux++) {
System.out.print("Informe nome do posto de gasolina: ");
nome = teclado.nextLine();
System.out.print("Informe preço da gasolina neste posto: ");
preco = teclado.nextDouble();
if (aux == 1 || preco > precoMaior) {
precoMaior = preco;
nomeMaior = nome;
}
teclado.nextLine();
}
System.out.println("Posto que cobra mais caro pela gasolina:"+nomeMaior);
teclado.close();
}
}

Prof. Ricardo Luiz de Freitas – ricardo.freitas@emge.edu.br


72

Exemplo 15
for nome preco nomeMaior precoMaior Impressão
- - - - 0 -
1 Papai 3,20 Papai 3,20 -
2 Avenida 4,10 Avenida 4,10 -
3 Xuá 4,10 Avenida 4,10 -
4 São Luis 4,15 São Luis 4,15 -
... ... ... São Luis 4,15 -
68 Tocantins 3,70 São Luis 4,15 -
- - - São Luis 4,15 ... São Luis

Prof. Ricardo Luiz de Freitas – ricardo.freitas@emge.edu.br


73

Exercício 10
O custo total de um projeto é determinado somando-se os custos
parciais (quantidade x preço unitário) de cada insumo
consumido. Faça um programa para ler o nome, o preço unitário e
a quantidade consumida de cada insumo (via console ou de um
arquivo txt) e calcule e imprima ao final:

a) O custo total do projeto.


b) A média dos custos parciais.
c) O nome do insumo de maior custo parcial.

O número de insumos utilizados no projeto deverá ser solicitado


ao usuário no início do programa.

Ver próximo slide >

Prof. Ricardo Luiz de Freitas – ricardo.freitas@emge.edu.br


74

Exercício 10
Para testar:

Insumos consumidos no projeto (4):

Insumo Quant. Preço Unitário Custo Parcial


1 Tijolo 5 R$0,20  R$1,00
2 Engenheiro 2 R$500,00  R$1000,00
3 Lata de Tinta 10 R$3,50  R$35,00
4 Caixa de Prego 7 R$1,00  R$7,00

Custo Total  R$1043,00


Média dos Custos Parciais (1043,00 / 4)  R$260,75

Nome do Insumo de maior custo parcial  Engenheiro

Prof. Ricardo Luiz de Freitas – ricardo.freitas@emge.edu.br


75

Exercício 11
Faça um programa que leia o nome, idade, sexo (“M” para
masculino ou “F” para feminino), estado civil (“C” para casado,
“S” para solteiro ou “O” para outros), cor dos olhos (“A” para
azul, “C” para castanhos, “P” para preto ou “O” para outros), cor
dos cabelos (“L” para loiro, “P” para preto, “C” para castanhos
ou “R” para ruivos), salário (em R$) e escolaridade (1 para
analfabeto, 2 para ensino fundamental, 3 para ensino médio ou
4 para superior) de 50 pessoas, e calcule e imprima:

a) Quantidade de mulheres loiras, de olhos azuis, com idade


entre 18 e 25 anos, solteiras, salário maior que R$10.000,00
e curso superior completo;
b) Nome da pessoa com maior salário;
c) Diferença entre o maior e menor salário dos homens.

Prof. Ricardo Luiz de Freitas – ricardo.freitas@emge.edu.br


76

Exercício 12
Uma indústria produtora de máquinas agrícolas coloca a venda no mercado
apenas 5 modelos de um determinado equipamento, conforme tabela abaixo. Num
determinado mês ela fez 1000 vendas de modelos diferentes. Cada cliente
comprou apenas uma unidade de um determinado modelo. Faça um programa que
solicite ao usuário o código do modelo do equipamento vendido e calcule e imprima
o faturamento total do período.
Faturamento = Qtde. Vendas Produto 1 x Pr. Unit. Produto 1 +
Qtde. Vendas Produto 2 x Pr. Unit. Produto 2 +
Qtde. Vendas Produto 3 x Pr. Unit. Produto 3 +
Qtde. Vendas Produto 4 x Pr. Unit. Produto 4 +
Qtde. Vendas Produto 5 x Pr. Unit. Produto 5

Modelo Código Preço Unitário


A2450 1 R$1.565,00
B2356 2 R$1.890,00
C3900 3 R$2.150,00
D4100 4 R$2.963,00
E6749 5 R$3.750,00

Prof. Ricardo Luiz de Freitas – ricardo.freitas@emge.edu.br


77

Exercício 13
O IBGE está fazendo um estudo em cima de todas as 858 cidades de
Minas Gerais. Para isto ele colocou em uma planilha os seguintes
dados: nome da cidade, população, quantidade de eleitores, quantidade
de mulheres e quantidade de homens. Faça um programa que leia todos
os dados desta planilha (via console ou de um arquivo txt) e calcule e
imprima:

a) Para cada cidade, escrever uma mensagem na tela se a soma de


homens e mulheres diferir da população da cidade;
b) Para cada cidade, percentual de eleitores em relação a sua
população;
c) Quantidade total de cidades com população acima de 1 milhão de
habitantes;
d) Quantidade total de cidades cuja população tem mais mulheres;
e) O nome da cidade de menor população. Ver próximo slide >

Prof. Ricardo Luiz de Freitas – ricardo.freitas@emge.edu.br


78

Exercício 13
Para testar (para com 5 cidades):

Homens +
Populaçã Perc.
Cidade Eleitores Homens Mulheres Mulheres
o Eleitores
≠ Pop.
BH 1.500.000 900.000 600.000 500.000 X 60%
Contagem 300.000 150.000 200.000 100.000 50%
Ipatinga 700.000 500.000 300.000 400.000 71,4%
Betim 600.000 450.000 50.000 400.000 X 75%
Araçuai 100.000 95.000 30.000 45.000 X 95%

Total de cidades com mais de 1 milhão de habitantes = 1


Cidades com mais mulheres que homens = 3
Cidade com menor população = Araçuai

Prof. Ricardo Luiz de Freitas – ricardo.freitas@emge.edu.br


79

Exercício 14
Faça um programa que leia um número n (entre 1
e 20) e um símbolo qualquer, e imprima uma
matriz de tamanho “n x n”, conforme exemplo
abaixo.
Dicas: A variável símbolo deve Para testar:
ser do tipo char. Para que o
resultado fique visualmente mais Número = 5
agradável, imprima um espaço Símbolo = * (asterisco)
depois de cada símbolo.
*****
*****
Dicão: Utilize um for dentro de *****
outro for com variáveis auxiliares *****
diferentes. *****

Prof. Ricardo Luiz de Freitas – ricardo.freitas@emge.edu.br


80

Exercício Extra
Faça um programa que leia (do console ou de um arquivo
txt) o nome, cargo, salário e idade de 1000 funcionários de
uma empresa, e calcule e imprima:

a) Para cada funcionário a informação se ele é sênior se


o salário dele for maior que R$10 mil e sua idade for
maior que 50;
b) A média dos salários dos funcionários com até 18
anos;
c) O nome e o cargo do funcionário que tem o maior
salário.

Prof. Ricardo Luiz de Freitas – ricardo.freitas@emge.edu.br


81

Utilização da Variável Auxiliar


 Conhecendo o funcionamento da variável auxiliar
do comando for;
 Utilizando a variável auxiliar na resolução de
problemas;

...
for (int aux=1; aux<=5; aux++) {
comandos...
}
...

Prof. Ricardo Luiz de Freitas – ricardo.freitas@emge.edu.br


82

Comando for
(Estrutura de repetição)
for aux Impressã
... o
for (int aux=1; aux<=5; aux++) {
1 1 Aux = 1
System.out.println("Aux = "+aux)
2 2 Aux = 2
}
... 3 3 Aux = 3

4 4 Aux = 4

5 5 Aux = 5

- 6 -

Prof. Ricardo Luiz de Freitas – ricardo.freitas@emge.edu.br


83

Comando for
(Estrutura de repetição)
for aux Impressã
... o
for (int aux=10; aux<=14; aux++) {
1 10 Aux = 10
System.out.println("Aux = "+aux)
2 11 Aux = 11
}
... 3 12 Aux = 12

4 13 Aux = 13

5 14 Aux = 14

- 15 -

Prof. Ricardo Luiz de Freitas – ricardo.freitas@emge.edu.br


84

Exemplo 16
Faça um programa que calcule os valores da função
f(x) = x2 - 1, com o x variando de 1 até 10. Os dados
deverão ser impressos da seguinte forma:

x=1 f(x)=0
x=2 f(x)=3
x=3 f(x)=8
...
x=10 f(x)=99

Prof. Ricardo Luiz de Freitas – ricardo.freitas@emge.edu.br


85

Exemplo 16
(Programa resolvido)
Usuário entra com os valores de X :

import java.util.Scanner;
public class FuncaoXLeia {
public static void main(String[] args) {
int x;
double fx;
Scanner teclado = new Scanner(System.in);
for (int aux=1; aux<=10; aux++) {
System.out.print("Informe o valor de x: ");
x = teclado.nextInt();
fx = Math.pow(x,2) - 1;
System.out.println("x = "+x+" f(x) = "+fx);
}
teclado.close();
}
}Prof. Ricardo Luiz de Freitas – ricardo.freitas@emge.edu.br
86

Exemplo 16
(Programa resolvido)
Valores de X são gerados pela variável auxiliar (AUX) do comando FOR:

import java.util.Scanner;
public class FuncaoX {
public static void main(String[] args) {
int x;
double fx;
Scanner teclado = new Scanner(System.in);
for (int aux=1; aux<=10; aux++) {
System.out.print("Informe o valor de x: ");
x = teclado.nextInt();
fx = Math.pow(aux,2) - 1;
System.out.println("x = "+aux+" f(x) = "+fx);
}
teclado.close();
}
}Prof. Ricardo Luiz de Freitas – ricardo.freitas@emge.edu.br
87

Exemplo 16
(Programa resolvido)
Valores de X são gerados pela variável auxiliar (AUX) do comando FOR:

public class FuncaoX {


public static void main(String[] args) {

double fx;

for (int aux=1; aux<=10; aux++) {

fx = Math.pow(aux,2) - 1;
System.out.println("x = "+aux+" f(x) = "+fx);
}

}
}Prof. Ricardo Luiz de Freitas – ricardo.freitas@emge.edu.br
88

Comando for for


-
aux soma
0
Impressão

(Estrutura de repetição)
1 1 1
2 2 2
3 3 3
...
4 4 4
int soma = 0;
5 5 5
...
- 6 5 A soma deu 5
for (int aux=1; aux<=5; aux++)
soma += 1; // soma = soma + 1;
System.out.println("A soma deu "+soma);
...

soma = 0 +1+1+1+1+1 = 5
soma = 0 +1+2+3+4+5 = 15 ?

Prof. Ricardo Luiz de Freitas – ricardo.freitas@emge.edu.br


89

Comando for for


-
aux soma
0
Impressão

(Estrutura de repetição)
1 1 1
2 2 3
3 3 6
...
4 4 10
int soma = 0;
5 5 15
...
- 6 15 A soma deu 15
for (int aux=1; aux<=5; aux++)
soma += aux; // soma = soma + aux;
System.out.println("A soma deu "+soma);
...

soma = 0 +1+2+3+4+5 = 15
soma = 0 +1000+1001+1002+...1998+1999+2000 ?

Prof. Ricardo Luiz de Freitas – ricardo.freitas@emge.edu.br


90

Comando for
(Estrutura de repetição)
Somatório de todos
os números inteiros
... compreendidos entre
int soma = 0; 1000 e 2000.
...
for (int aux=1000; aux<=2000; aux++)
soma += aux;
System.out.println("A soma deu "+soma);
...

soma = 0 +1000+1001+1002+...1998+1999+2000
soma = 0 +1000+1005+1010+...1990+1995+2000 ?

Prof. Ricardo Luiz de Freitas – ricardo.freitas@emge.edu.br


91

Comando for
(Estrutura de repetição)
Somatório de todos
os números entre
... 1000 e 2000 que são
int soma = 0; divisíveis por 5.
...
for (int aux=1000; aux<=2000; aux++)
if (aux % 5 == 0)
soma += aux;
System.out.println("A soma deu "+soma);
...

soma = 0 +1000+1005+1010+...1990+1995+2000

Prof. Ricardo Luiz de Freitas – ricardo.freitas@emge.edu.br


92
for aux soma Impressão
Comando for - 0

(Estrutura de repetição) 1 1 1
2 2 3
3 3 6
... 4 4 10
int soma = 0; 5 5 15
... ... ... ...
for (int aux=1; aux<=10; aux++) 10 10 45
soma += aux; - - 45 A soma deu 45
System.out.println("A soma deu "+soma);
...

soma = 0 +1+2+3+ 4+ 5+ 6+ 7+ 8+ 9+10 = 45


soma = 0 +3+6+9+12+15+18+21+24+27+30 = 165 ?

Prof. Ricardo Luiz de Freitas – ricardo.freitas@emge.edu.br


93
for aux soma Impressão
Comando for - 0

(Estrutura de repetição) 1 1 3
2 2 6
3 3 9

... 4 4 12

int soma = 0; 5 5 15

... ... ... ...

for (int aux=1; aux<=10; aux++) 10 10 30

soma += aux * 3; - - 30 A soma deu 165

System.out.println("A soma deu "+soma);


...

soma = 0 +3+6+9+12+15+18+21+24+27+30 = 165

Prof. Ricardo Luiz de Freitas – ricardo.freitas@emge.edu.br


94

Comando for 3
(Estrutura de repetição) 6
9
... 12
int termo, soma = 0; 15
... 18
for (int aux=1; aux<=10; aux++) {
termo = aux * 3;
21
soma += termo; 24
System.out.println(termo); 27
}
30
System.out.println("A soma deu "+soma);
...

soma = 0 +3+6+9+12+15+18+21+24+27+30 = 165

Prof. Ricardo Luiz de Freitas – ricardo.freitas@emge.edu.br


95

Comando for
(Estrutura de repetição)

...
int soma = 0;
...
for (int aux=1; aux<=10; aux++)
soma += aux;
System.out.println("A soma deu "+soma);
...

soma = 0 +1+2+3+ 4+ 5+ 6+ 7+ 8+ 9+ 10 = 45
soma = 0 +1+4+9+16+25+36+42+64+81+100 ?

Prof. Ricardo Luiz de Freitas – ricardo.freitas@emge.edu.br


96

Comando for for


-
aux mult
1
Impressão

(Estrutura de repetição) 1 1 1
2 2 2
3 3 6
4 4 24
5 5 120
... - 6 120 A multiplicação
long mult = 1; deu 120

...
for (int aux=1; aux<=5; aux++)
mult *= aux; // mult = mult * aux;
System.out.print("A multiplicação deu "+mult);
...

mult = 1 *1*2*3*4*5 = 5! = 120

Prof. Ricardo Luiz de Freitas – ricardo.freitas@emge.edu.br


97

Comando for
(Estrutura de repetição)

import java.util.Scanner;
public class CalculaFatorial2 {
public static void main(String[] args) {
long fatorial = 1, numero;
Scanner teclado = new Scanner(System.in);
System.out.print("Informe um número inteiro: ");
numero = teclado.nextLong();
for (int aux=2; aux<=numero; aux++)
fatorial *= aux;
System.out.print("Fatorial de "+numero+" = "+fatorial);
teclado.close();
}
}

fatorial = 1 *2*3*4* ... numero = numero!

Prof. Ricardo Luiz de Freitas – ricardo.freitas@emge.edu.br


98

Comando for for


-
aux mult
1
Impressão

(Estrutura de repetição) 1 1 1
2 2 2
3 3 6
...
4 4 24
long mult = 1;
5 5 120
...
- - 120 A mult deu 120
for (int aux=1; aux<=5; aux++)
mult *= aux;
System.out.print("A multiplicação deu "+mult);
...

mult = 1 *1* 2* 3* 4* 5 = 120


mult = 1 *5*25*125*625*3125 ?

Prof. Ricardo Luiz de Freitas – ricardo.freitas@emge.edu.br


99

Comando for
(Estrutura de repetição)

...
long mult = 1;
...
for (int aux=1; aux<=5; aux++)
mult *= match.pow(5,aux);
System.out.print("A multiplicação deu "+mult);
...

mult = 1 *5*25*125*625*3125 = 30517578125

Prof. Ricardo Luiz de Freitas – ricardo.freitas@emge.edu.br


100

Exemplo 17
Faça um programa que calcule e imprima todos os
números divisíveis por 13 que estejam dentro do
intervalo de 100 a 500.

Dica: Use o operador aritmético %.


Se X % 13 igual a 0 então X é divisível por 13.

Resposta: 104, 117, 130, 143, 156, 169, 182, 195, 208, 221, ...

Prof. Ricardo Luiz de Freitas – ricardo.freitas@emge.edu.br


101

Exemplo 17
(Programa resolvido)

public class Divisor13 {


public static void main(String[] args) {
for (int divisor=100; divisor<=500; divisor++)
if (divisor % 13 == 0)
System.out.println(divisor+" é divisível por 13");
}
}

Prof. Ricardo Luiz de Freitas – ricardo.freitas@emge.edu.br


102

Exemplo 18 (Contador)
(Programa resolvido)

public class Divisor13_Cont {


public static void main(String[] args) {
int cont = 0;
for (int divisor=100; divisor<=500; divisor++)
if (divisor % 13 == 0)
cont++;
System.out.println("Quantidade de divisores por 13 =
"+cont);
}
}

Prof. Ricardo Luiz de Freitas – ricardo.freitas@emge.edu.br


103

Exemplo 19 (Somatório)
(Programa resolvido)

public class Divisor13_Soma {


public static void main(String[] args) {
int soma = 0;
for (int divisor=100; divisor<=500; divisor++)
if (divisor % 13 == 0)
soma += divisor;
System.out.println("Soma dos divisíveis por 13 = "+soma);
}
}

Prof. Ricardo Luiz de Freitas – ricardo.freitas@emge.edu.br


104

Exercício 15
Faça um programa que calcule e imprima a média
dos números ímpares que estejam dentro do intervalo
de 1000 a 2000.

Dica: Use o operador aritmético %.


Se X % 2 diferente de 0 então X é ímpar.

Resposta: Média dos números ímpares: 1500

Prof. Ricardo Luiz de Freitas – ricardo.freitas@emge.edu.br


105

Exercício 16
Faça um programa que calcule os valores da função
abaixo, com x variando de 3 até 12. Os dados
deverão ser impressos da seguinte forma:

x=3 f(x)=2.4495
x=4 f(x)=3.6056
  2
𝑓 (𝑥)= √ 𝑥 − 3 x=5
...
f(x)=4.6904

x=12 f(x)=11.8743

Prof. Ricardo Luiz de Freitas – ricardo.freitas@emge.edu.br


106

Exercício 17
Faça um programa que solicite ao usuário um
número inteiro de 1 a 9, e calcule e imprima a
tabuada deste número, conforme mostrado abaixo.

Exemplo (número informado = 3):


1x3=3
2x3=6
3x3=9
4 x 3 = 12
5 x 3 = 15
6 x 3 = 18
7 x 3 = 21
8 x 3 = 24
9 x 3 = 27

Prof. Ricardo Luiz de Freitas – ricardo.freitas@emge.edu.br


107

Exercício 18
Faça um programa que imprima os 100 primeiros
termos da progressão numérica abaixo. No final
imprima a soma destes termos.
1
4 Dica: Ache uma função que,
9 utilizando a variável auxiliar do
16 comando for, chegue aos valores da
progressão ao lado.
25
36
49
64
81
100
Resposta: Soma dos 100 primeiros termos: 338350
...

Prof. Ricardo Luiz de Freitas – ricardo.freitas@emge.edu.br


108

Exercício 19
Faça um programa que imprima os n primeiros
termos da progressão numérica abaixo. No final
imprima a soma destes termos.
1
2 Observação: O valor de n
4 (quantidade de termos) será
informada pelo usuário no início do
8
programa.
16
32
64
128
256
512 Resposta: Soma dos 100 primeiros termos:
... 1267650600228229400000000000000

Prof. Ricardo Luiz de Freitas – ricardo.freitas@emge.edu.br


109

Exercício 20
Faça um programa que, no início do programa,
solicite ao usuário sua altura em metros, e calcule e
imprima uma lista (tabela) com o peso, seu IMC e
sua situação corpórea (conforme tabela abaixo) com
os pesos variando de 60 a 100 kg.
IMC = Peso / Altura2
IMC menor que 20  abaixo do peso
IMC entre 20 e 25  peso ideal
IMC maior que 25  acima do peso

Ver próximo slide >

Prof. Ricardo Luiz de Freitas – ricardo.freitas@emge.edu.br


110

Exercício 20
Para testar (altura = 1,75):

Peso IMC Situação Corpórea


60 19.59... ABAIXO DO PESO
61 19.91... ABAIXO DO PESO
62 20.24... PESO IDEAL
63 20.57... PESO IDEAL
64 20.89... PESO IDEAL
...
97 31.67... ACIMA DO PESO
98 32 ACIMA DO PESO
99 32.32... ACIMA DO PESO
100 32.65... ACIMA DO PESO

Prof. Ricardo Luiz de Freitas – ricardo.freitas@emge.edu.br


111

Exercício 21
Faça um programa que leia um numero inteiro,
maior que zero, e determine se ele é primo. Um
número primo é aquele que somente é divisível
por 1 e por ele mesmo.
Dica: Descubra quantos divisores
tem o número informado (testando
todos os valores de 1 até ele
próprio). Um número primo tem (no
máximo) 2 divisores (1 e ele mesmo).

Para testar: 3, 17 e 43 são primos.


10, 24 e 75 não são primos.

Prof. Ricardo Luiz de Freitas – ricardo.freitas@emge.edu.br


112

Exercício 22
Faça um programa que calcule e imprima todos os
números compreendidos entre 1000 e 9999 que são
palíndromos. Um palíndromo é uma sequência de
caracteres que é lida da esquerda para a direita
ou da direita para a esquerda resultando no
mesmo valor final.  Ao final imprima a média
destes números.

Exemplos: 1111, 1221, 3773, 4554, etc.

Resposta: 1001, 1111, 1221, 1331, 1441, 1551, ...


Média = 5500

Prof. Ricardo Luiz de Freitas – ricardo.freitas@emge.edu.br


113

Parâmetro PASSO
(incremento diferente de 1 da variável auxiliar do comando for)

 Utilizando incremento diferente de 1 na resolução


de problemas utilizando o comando for;

...
for (int aux=ValorInicial; aux<=ValorFinal; aux+=PASSO) {
comandos...
}
...

Prof. Ricardo Luiz de Freitas – ricardo.freitas@emge.edu.br


114

Parâmetro PASSO
(incremento diferente de 1 da variável auxiliar do comando for)

for aux Impressão


A variável auxiliar AUX será
incrementada de 2 em 2 começando 1 1 Aux = 1
em 1 parando a repetição em 9 2 3 Aux = 3

3 5 Aux = 5
...
for (int aux=1; aux<=9; aux+=2) { 4 7 Aux = 7
System.out.println("Aux = " + aux);
} 5 9 Aux = 9
...
- 11 -

Prof. Ricardo Luiz de Freitas – ricardo.freitas@emge.edu.br


115

Parâmetro PASSO
(incremento diferente de 1 da variável auxiliar do comando for)

for aux Impressão


A variável auxiliar AUX será
incrementada de 4 em 4 começando 1 10 Aux = 10
em 10 parando a repetição em 26 2 14 Aux = 14

3 18 Aux = 18
...
for (int aux=10; aux<=25; aux+=4) { 4 22 Aux = 22
System.out.println("Aux = " + aux);
} - 26 -
...

Prof. Ricardo Luiz de Freitas – ricardo.freitas@emge.edu.br


116

Exemplo 20
Faça um programa que calcule e imprima a soma
dos números ímpares de 1000 ate 2000.

Prof. Ricardo Luiz de Freitas – ricardo.freitas@emge.edu.br


117

Exemplo 20
(Programa resolvido – Solução 1)

public class SomaImpares {


public static void main(String[] args) {
int soma = 0;
for (int aux=1000; aux<=2000; aux++)
if (aux % 2 != 0) // (aux % 2 = 1)
soma += aux;
System.out.println("A soma deu " + soma);
}
}

Prof. Ricardo Luiz de Freitas – ricardo.freitas@emge.edu.br


118

Exemplo 20
(Programa resolvido – Solução 2)

public class SomaImparesPasso {


public static void main(String[] args) {
int soma = 0;
for (int aux=1001; aux<=2000; aux+=2)
soma += aux;
System.out.println("A soma deu " + soma);
}
}

Prof. Ricardo Luiz de Freitas – ricardo.freitas@emge.edu.br


119

Exemplo 21
Faça um programa que gere e imprima todos os
números divisíveis por 13 de 1 ate 1000.

Prof. Ricardo Luiz de Freitas – ricardo.freitas@emge.edu.br


120

Exemplo 21
(Programa resolvido – Solução 1)

public class Divisor13_1000 {


public static void main(String[] args) {
for (int divisor=1; divisor<=1000; divisor++)
if (divisor % 13 == 0)
System.out.println(divisor + " é divisor por 13");
}
}

Prof. Ricardo Luiz de Freitas – ricardo.freitas@emge.edu.br


121

Exemplo 21
(Programa resolvido – Solução 2)

public class Divisor13_1000Passo {


public static void main(String[] args) {
for (int divisor=13; divisor<=1000; divisor+=13)
System.out.println(divisor + " é divisor por 13");
}
}

Prof. Ricardo Luiz de Freitas – ricardo.freitas@emge.edu.br


122

Exemplo 22
Faça um programa que gere e imprima uma
contagem regressiva de 5 até 0.

Prof. Ricardo Luiz de Freitas – ricardo.freitas@emge.edu.br


123

Exemplo 22 for aux Impressão

(programa resolvido) 1 0 0

2 1 1
public class ContagemRegressiva { 3 2 2
public static void main(String[] args) {
for (int aux=0; aux<=5; aux++)
4 3 3
System.out.println(aux);
}
} 5 4 4

6 5 5

- 6 -

Prof. Ricardo Luiz de Freitas – ricardo.freitas@emge.edu.br


124

Exemplo 22 for aux Impressão

(programa resolvido – Solução 1) 1 0 5

2 1 4
public class ContagemRegressiva { 3 2 3
public static void main(String[] args) {
for (int aux=0; aux<=5; aux++)
4 3 2
System.out.println(5-aux);
}
} 5 4 1

6 5 0

- 6 -

Prof. Ricardo Luiz de Freitas – ricardo.freitas@emge.edu.br


125

Exemplo 22 for aux Impressão

(programa resolvido – Solução 2) 1 5 5

2 4 4
public class ContagemRegressiva1 { 3 3 3
public static void main(String[] args) {
for (int aux=5; aux>=0; aux+=-1)
4 2 2
System.out.println(aux);
}
} 5 1 1

6 0 0

- -1 -

Com o incremento NEGATIVO (-1), a variável auxiliar


(aux) só interromperá a repetição quando o seu valor for
maior que o valor final (0).

Prof. Ricardo Luiz de Freitas – ricardo.freitas@emge.edu.br


126

Exemplo 22
(programa resolvido – Solução 3)

public class ContagemRegressiva2 {


public static void main(String[] args) {
for (int aux=5; aux>=0; aux--)
System.out.println(aux);
}
}

Prof. Ricardo Luiz de Freitas – ricardo.freitas@emge.edu.br


127

Exemplo 23
Faça um programa que gere e imprima a sequência
abaixo 10 vezes.
1
1 2
1 2 3
1 2 3 4
1 2 3 4 5
1 2 3 4 5
1 2 3 4
1 2 3
1 2
1

Prof. Ricardo Luiz de Freitas – ricardo.freitas@emge.edu.br


128

Exemplo 23 1
(programa resolvido – Parte 1) 2
3
public class Sequencia1a5e5a1A { 4
public static void main(String[] args) { 5
for (int aux=1; aux<=5; aux++)
System.out.println(aux);
}
}

Prof. Ricardo Luiz de Freitas – ricardo.freitas@emge.edu.br


129

Exemplo 23 1 2 3 4 5
(programa resolvido – Parte 2)

public class Sequencia1a5e5a1B {


public static void main(String[] args) {
for (int aux=1; aux<=5; aux++)
A System.out.print(aux+" ");
System.out.println();
}
}

Prof. Ricardo Luiz de Freitas – ricardo.freitas@emge.edu.br


130

Exemplo 23 1 2 3 4 5
(programa resolvido – Parte 3) 1 2 3 4 5
1 2 3 4 5
public class Sequencia1a5e5a1C { 1 2 3 4 5
public static void main(String[] args) { 1 2 3 4 5
for (int aux2=1; aux2<=5; aux2++) {
for (int aux=1; aux<=5; aux++)
A System.out.print(aux+" ");
System.out.println();
}
}
}

Prof. Ricardo Luiz de Freitas – ricardo.freitas@emge.edu.br


131

Exemplo 23 1
(programa resolvido – Parte 4) 1 2
1 2 3
public class Sequencia1a5e5a1D { 1 2 3 4
public static void main(String[] args) { 1 2 3 4 5
for (int aux2=1; aux2<=5; aux2++) {
for (int aux=1; aux<=aux2; aux++)
B System.out.print(aux+" ");
System.out.println();
}
}
}

Prof. Ricardo Luiz de Freitas – ricardo.freitas@emge.edu.br


132

Exemplo 23 1 2 3 4 5
(programa resolvido – Parte 5) 1 2 3 4
1 2 3
public class Sequencia1a5e5a1E { 1 2
public static void main(String[] args) { 1
for (int aux2=5; aux2>=1; aux2--) {
for (int aux=1; aux<=aux2; aux++)
C System.out.print(aux+" ");
System.out.println();
}
}
}

Prof. Ricardo Luiz de Freitas – ricardo.freitas@emge.edu.br


133

Exemplo 23 1
(programa resolvido – Parte 5) 1 2
1 2 3
public class Sequencia1a5e5a1E { 1 2 3 4
public static void main(String[] args) { 1 2 3 4 5
for (int aux2=1; aux2<=5; aux2++) { 1 2 3 4 5
for (int aux=1; aux<=aux2; aux++)
1 2 3 4
B System.out.print(aux+" ");
System.out.println(); 1 2 3
} 1 2
for (int aux2=5; aux2>=1; aux2--) { 1
for (int aux=1; aux<=aux2; aux++)
C System.out.print(aux+" ");
System.out.println();
}
}
}

Prof. Ricardo Luiz de Freitas – ricardo.freitas@emge.edu.br


134

Exemplo 23 1
1
1
2
2 3
(programa resolvido – Parte 6) 1 2 3 4
1 2 3 4 5
1 2 3 4 5
public class Sequencia1a5e5a1 { 1 2 3 4
public static void main(String[] args) { 1 2 3
1 2
for (int aux3=1; aux3<=10; aux3++) { 1
for (int aux2=1; aux2<=5; aux2++) { 1
for (int aux=1; aux<=aux2; aux++) 1 2
1 2 3
B System.out.print(aux+" "); 1 2 3 4
System.out.println(); 1 2 3 4 5
} 1 2 3 4 5
1 2 3 4
for (int aux2=5; aux2>=1; aux2--) { 1 2 3
for (int aux=1; aux<=aux2; aux++) 1 2
1
C System.out.print(aux+" ");
1
System.out.println(); 1 2
} 1 2 3
1 2 3 4
} 1 2 3 4 5
} 1 2 3 4 5
} 1 2 3 4
1 2 3
1 2
1
Prof. Ricardo Luiz de Freitas – ricardo.freitas@emge.edu.br
135

Exercício 23

Faça um programa que calcule e imprima o


valor da série abaixo, até a potência 99:

 )

Para testar: Valor da Série = 2.81700133384051E29

Prof. Ricardo Luiz de Freitas – ricardo.freitas@emge.edu.br


136

Exercício 24
Faça um programa que gere a *
**
sequência de impressão ao ***
****
lado por 10 vezes: *****
******
*******
********
Dica: Utilize um for dentro de *********
outro for (com variáveis **********
**********
auxiliares diferentes) para fazer a *********
primeira parte da figura e outro ********
*******
for dentro de outro for para fazer ******
a segunda parte. *****
****
***
**
*

Prof. Ricardo Luiz de Freitas – ricardo.freitas@emge.edu.br


137

Exercício 25
Faça um programa que gere a *
*
sequência de impressão ao *
*
lado por 10 vezes: *
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*

Prof. Ricardo Luiz de Freitas – ricardo.freitas@emge.edu.br


138

Exercício 26
Faça um programa que gere a sequência de
impressão do próximo slide por 10 vezes:

Ver próximo slide >

Prof. Ricardo Luiz de Freitas – ricardo.freitas@emge.edu.br


139

Exercício 26
*
**
****
********
****************
********************************
****************************************************************
********************************************************************************************************************************
****************************************************************
********************************
****************
********
****
**
*
*
**
****
********
****************
********************************
****************************************************************
********************************************************************************************************************************
****************************************************************
********************************
****************
********
****
**
*

Prof. Ricardo Luiz de Freitas – ricardo.freitas@emge.edu.br


140

Exercício Extra 2

Um número inteiro é considerado triangular se


for o produto de três números inteiros
consecutivos, como, por exemplo 120 = 4 x 5 x
6. Faça um programa que verifique e imprima
os números triangulares entre 1 e 1000. Ao
final do programa deve ser impresso também a
média destes números.

Resposta: 6, 24, 60, 120, 210, 336, 504, 720 e 990.


Média = 330

Prof. Ricardo Luiz de Freitas – ricardo.freitas@emge.edu.br


141

Exercício Extra 3

Faça um programa que leia dois valores


inteiros e positivos, X e Y. Por meio de
multiplicações sucessivas, calcule e imprima a
função de exponenciação XY.

Observação: Não deve ser utilizado nenhuma


função (ou método) para se calcular a
potência.

Prof. Ricardo Luiz de Freitas – ricardo.freitas@emge.edu.br


142

Exercício Extra 4

Faça um programa que calcule e imprima o


valor da série S abaixo a partir de x e n
informados pelo usuário:

 
...

Para testar (x = 2 e n = 100): S = 25614498136037425000000000000

Prof. Ricardo Luiz de Freitas – ricardo.freitas@emge.edu.br


143

Exercício Extra 5
O CREA-MG (Conselho Regional de Engenharia e Agronomia de Minas
Gerais) fez uma pesquisa junto a vários engenheiros de empresas diversas da
cidade de Belo Horizonte e precisa apurar a mesma.

Para isto o CREA enviou, via e-mail, uma ficha para o engenheiro preencher e
devolver. Na ficha o engenheiro informou seu nome, seu salário bruto, e o
código do cargo exercido por ele na empresa (“C”, “P”, “O”, “A” ou “X”), de
acordo com a tabela abaixo.

Cargo Código Salário Mínimo


Engenheiro Calculista C R$2.500,00
Engenheiro Projetista P R$4.650,00
Engenheiro de Obra O R$3.200,00
Engenheiro Administrador A R$5.100,00
Outros X x.x.x

Ver próximo slide >

Prof. Ricardo Luiz de Freitas – ricardo.freitas@emge.edu.br


144

Exercício Extra 5 (continuação)


Faça um programa que leia os dados (via console ou arquivo txt) de cada uma
destas fichas, e calcule e imprima:

a) Para cada engenheiro, a mensagem “ABAIXO DO SALÁRIO MÍNIMO” se o


salário estiver abaixo do salário mínimo do cargo (não imprimir nenhuma
mensagem para o cargo "Outros");
b) A quantidade de engenheiros cujo salário está igual ou acima do salário
mínimo de acordo com o cargo (exceto para o cargo "Outros");
c) A média dos salários dos engenheiros de cargo "Administrador";
d) A quantidade de engenheiros de cargo "Outros" e que recebem acima de
R$5.000,00;
e) O nome, salário bruto e cargo (descrição) do engenheiro que recebe o
menor salário.

O programa deverá solicitar ao usuário, no seu início, a quantidade de


engenheiros pesquisados.
Ver próximo slide >

Prof. Ricardo Luiz de Freitas – ricardo.freitas@emge.edu.br


145

Exercício Extra 5 (continuação)


Para testar (com 7 engenheiros):

Nome Cargo Salário Saída de Dados

Ana Maria Bastos A 4.850,60 ABAIXO DO SALÁRIO MÍNIMO


Carlos Augusto Silva P 5.100,00  
Fulgêncio Aguiar Onório A 9.600,00  
Maria das Dores Aguiar A 4.500,00 ABAIXO DO SALÁRIO MÍNIMO
Roberto Freitas Guedes X 2.100,00  
Wagner de Oliveira C 12.560,00  
Zulima Nardoni X 8.960,00  

Média dos salários dos Administradores = R$6.316,86


Quantidade de salários acima do mínimo = 3
Quantidade de engenheiros de cargo 'Outros' que recebem acima de R$5000 = 1
Nome, cargo e salário do engenheiro de menor salário = Roberto Freitas Guedes,
Outros, R$2.100,00

Prof. Ricardo Luiz de Freitas – ricardo.freitas@emge.edu.br

Você também pode gostar