ALGORITMO E PROGRAMAÇÃO
Profº Ricardo Ariel Correa Rabelo
Lista III – Estruturas de Controle: Repetição
1. Faça um algoritmo para escrever os números entre 1 e 1000
public class Questao_01 {
/**
* Faça um algoritmo para escrever os números entre 1 e 1000
*/
public static void main(String[] args) {
for (int i = 2; i < 1000; i++) {
Write.writeln(i);
}
}
}
2. Faça um algoritmo para escrever os números pares entre 1 e 1000
public class Questao_02 {
/**
* Faça um algoritmo para escrever os números pares entre 1 e 1000
*/
public static void main(String[] args) {
int num = 1;
while (num<1000){
if (num % 2 ==0) {
Write.writeln(num);
}
num++;
}
}
}
3. Faça um algoritmo para escrever os números divisíveis por 7 entre 1 e 1000
public class Questao_03 {
/**
* Faça um algoritmo para escrever os números divisíveis
* por 7 entre 1 e 1000
*/
public static void main(String[] args) {
int num = 1;
while (num<1000){
if (num % 7 == 0) {
Write.writeln(num);
}
num++;
}
}
}
4. Faça um algoritmo para ler dois números inteiros representando um intervalo e escrever em
ordem crescente todos os números ímpares do intervalo.
public class Questao_04 {
/**
* Faça um algoritmo para ler dois números inteiros
* representando um intervalo e escrever em ordem
* crescente todos os números ímpares do intervalo.
*/
public static void main(String[] args) {
int num1 = Read.readInt("Informe o 1° valor: ");
int num2 = Read.readInt("Informe o 2° valor: ");
while(num1 < num2){
num1++;
if (num1 % 2 != 0) {
Write.writeln(num1);
}
}
while(num2 < num1){
num2++;
if (num2 % 2 != 0) {
Write.writeln(num2);
}
}
}
}
5. Faça um algoritmo para ler dois números inteiros representando um intervalo e escrever em
ordem crescente todos os números divisíveis por 3 do intervalo. Atentar para que o intervalo
não tenha seu final menor que 3.
public class Questao_05 {
public static void main(String[] args) {
int num1 = Read.readInt("Informe o 1° valor: ");
int num2 = Read.readInt("Informe o 2° valor: ");
while(num1 < num2){
num1++;
if (num1 % 3 == 0) {
Write.writeln(num1);
}
}
while(num2 < num1){
num2++;
if (num2 % 3 == 0) {
Write.writeln(num2);
}
}
}
}
6. Faça um algoritmo para ler 100 números inteiros e escrever a soma e a média dos números
lidos.
public class Questao_06 {
public static void main(String[] args) {
int soma = 0;
int media;
for (int i = 0; i < 100; i++) {
int num = Read.readInt("Informe o n°: ");
soma = soma + num;
media = soma/(i+1);
Write.writeln("Total: " + soma);
Write.writeln("Média: " + media);
}
}
}
7. Faça um algoritmo para ler um valor N e em seguida ler N números inteiros e escrever o
maior número lido.
public class Questao_07 {
/**
* Faça um algoritmo para ler um valor N e em seguida ler
* N números inteiros e escrever o maior número lido.
*/
public static void main(String[] args) {
int num = Read.readInt("Informe a Qtd de numeros lidos: ");
int maior = 0;
for (int i = 0; i < num; i++) {
int n = Read.readInt("Informe o n°: ");
if (n > maior) {
maior = n;
}
}
Write.write("o valor maior é: " + maior);
}
}
8. Faça um algoritmo para ler números inteiros, onde o Flag será o valor 0 e sem seguida
escrever o menor valor lido e quantas vezes este ocorreu nos números lidos.
public class Questao_08 {
public static void main(String[] args) {
int num = Read.readInt("Informe o n°: ");
int menor = num;
int cont = 0;
while(num != 0){
if (num < menor) {
menor = num;
cont = 1;
}else{
if (num == menor) {
cont++;
}
}
num = Read.readInt("Informe o n°: ");
}
Write.writeln("Valor menor: " + menor);
Write.write("Qtd de vezes: " + cont);
}
}
9. Faça uma algoritmo para ler salários, onde o Flag será um Salário igual a 0 e escreva quais os
três maiores valores dos salários lidos.
public class Questao_09 {
/**
* Faça uma algoritmo para ler salários, onde o Flag será um Salário
* igual a 0 e escreva quais os três maiores valores dos salários lidos.
*/
public static void main(String[] args) {
double salario = Read.readDouble("Informe o salário: ");
double salario1 = 0;
double salario2 = 0;
double salario3 = 0;
while(salario != 0){
if (salario > salario1) {
salario3 = salario2;
salario2 = salario1;
salario1 = salario;
}else{
if ((salario < salario1) && (salario>salario2)) {
salario3 = salario2;
salario2 = salario;
}else{
if ((salario<salario2) && (salario>salario3)) {
salario3 = salario;
}
}
}
salario = Read.readDouble("Informe o salário: ");
}
Write.write(" Salario 1: "+ salario1);
Write.write(" Salario 2: "+ salario2);
Write.writeln(" Salario 3: "+ salario3);
}
}
10. Faça um algoritmo para ler o nome, sexo ("M" =Masculino e "F"=Feminino), três notas e o
número de faltas dos alunos de uma turma, onde o Flag será um nome igual a "fim" e escrever:
a. A média e a situação final de cada aluno;
b. A média das notas dos homens e a média das notas das mulheres;
c. O percentual de homem e o percentual de mulheres reprovados;
d. O percentual geral de reprovação da turma.
public class Questao_10 {
public static void main(String[] args) {
String nome = "";
char sexo;
double nota1;
double nota2;
double nota3;
double media;
double mediaM = 0;
double mediaM2 = 0;
double mediaF2 = 0;
double mediaF = 0;
double porcM = 0;
double porcF = 0;
double porcR = 0;
int faltas;
int contM = 0;
int contF = 0;
int contPorcM = 0;
int contPorcF = 0;
nome = Read.readString("Digite o nome: ");
while (!nome.equalsIgnoreCase("fim")) {
sexo = Read.readChar("Digite o Sexo: ");
nota1 = Read.readDouble("1ª Nota: ");
nota2 = Read.readDouble("2ª Nota: ");
nota3 = Read.readDouble("3ª Nota: ");
media = (nota1 + nota2 + nota3)/3;
faltas = Read.readInt("Quantidade de faltas: ");
if ((media>=5) && (faltas<=27)){
Write.writeln(nome +", Sexo: " + sexo +", Média: " + media +
", "+ faltas + " faltas" + ", Aprovado(a)");
}else{
Write.writeln(nome +", Sexo: " + sexo +", Média: " + media +
", "+ faltas + " faltas" + ", Reprovado(a)");
}
if (sexo=='M'|| sexo=='m'){
contM = contM +1;
mediaM = (mediaM + media);
}
if (sexo =='F'|| sexo=='f'){
contF = contF +1;
mediaF = (mediaF + media);
}
if ( (sexo == 'M' || sexo == 'm') && (media<5 || faltas>27)){
contPorcM = contPorcM + 1;
porcM = (contPorcM*100)/contM;
}
if ((sexo == 'F' || sexo == 'f') && (media<5 || faltas>27)){
contPorcF = contPorcF + 1;
porcF = (contPorcF*100)/contF;
}
if ((media<5) || (faltas>27)){
porcR = ((contPorcM + contPorcF)*100)/(contM + contF);
}
mediaM2 = (mediaM/contM);
mediaF2 = (mediaF/contF);
nome = Read.readString("Digite o nome: ");
}
System.out.println("Média das notas dos homens: "+ mediaM2);
System.out.println("Média das notas das mulheres: "+ mediaF2);
System.out.println("Percentual de Homens Reprovados: " + porcM);
System.out.println("Percentual de Mulheres Reprovados: " + porcF);
System.out.println("Percentual Geral de Reprovação da Turma: " + porcR);
}
}
11. Faça um algoritmo para ler um número inteiro positivo e escrever o seu fatorial.
public class Questao_11 {
/**
* Faça um algoritmo para ler um número inteiro positivo e
* escrever o seu fatorial.
*/
public static void main(String[] args) {
double b = 2;
for (double a = Read.readDouble("Informe o fatorial: ");a>0 && a >= b; a++) {
if (a%b==0 && a>=b) {
a = a/b;
Write.writeln(a);
}else{
if (a%b!=0) {
b = b + 1;
}
}
}
}
}
12. Faça um algoritmo para ler um número inteiro positivo e informar se este número é primo
ou não.
public class Questao_12 {
/**
* Faça um algoritmo para ler um número inteiro positivo
* e informar se este número é primo ou não.
*/
public static void main(String[] args) {
int qtde = 0;
int num = Read.readInt("Digite um número: ");
for (int i = 1; i <= num ; i++) {
if(num % i == 0) {
qtde = qtde + 1;
}
}
if(qtde == 2){
Write.writeln(num + " é primo.");
}else{
Write.writeln(num + " não é primo.");
}
}
}
13. Faça um algoritmo para ler um valor inteiro N e escrever os N primeiros números primos.
public class Questao_13 {
public static void main(String[] args) {
int qtde = 0;
int cont = 0;
int num = Read.readInt("Digite um número: ");
/** Repete num vezes */
while (cont <= num) {
qtde = 0;
/** Testa de 0 até num */
for (int i = 1; i <= cont; i++) {
if (cont % i == 0) {
qtde = qtde + 1;
}
}
if (qtde == 2) {
Write.writeln("O número " + cont + " é primo.");
}
cont++;
}
}
}
14. Faça um algoritmo para ler um número inteiro e gerar outro número inteiro formado pelos
dígitos invertidos
do número lido. Ex: NúmeroLido = 12345; NúmeroGerado = 54321.
Dica: Observe os resultados das funções Quociente e Resto de um número por 10.
public class Questao_14 {
public static void main(String[] args) {
int num = Read.readInt("Informe um n° positivo: ");
//int div = num;
int resto = num%10;
while (num/10!=0) {
num = (num/10);
resto = ((resto*10) + (num%10));
}
Write.write("Invertido: "+resto);
}
}
15. Faça um algoritmo para ler o código, descrição, estoque mínimo e estoque das
mercadorias de um supermercado, onde o Flag será um código igual a 0. Escreva o código e a
descrição das mercadorias como estoque abaixo do mínimo.
public class Questao_15 {
public static void main(String[] args) {
int cod = 1;
String desc = "";
int estoque = 0;
int estoqueMin = 300;
cod = Read.readInt("Código: ");
while (cod!=0){
desc = Read.readString("Descrição: ");
estoque = Read.readInt("Estoque: ");
if (estoque<estoqueMin){
Write.writeln("Código: "+cod+", Descrição: "+desc+", Estoque Atual:
"+estoque+", Abaixo do mínino");
}else{
Write.writeln("Código: "+cod+", Descrição: "+desc+", Estoque Atual:
"+estoque+", OK.");
}
cod = Read.readInt("Código: ");
}
}
}
16. Faça um algoritmo para apurar o resultado do segundo turno da eleição para prefeito de
uma cidade. O algoritmo deverá ler o nome dos dois candidatos, em seguida todas as zonas
(flag zona = 0), onde o Flag será o valor 0 e para cada zona todas as suas secções (flag secção =
0) e para cada secção serão lidos os nomes de cada candidato e seu número de votos. O
algoritmo deverá escrever o nome e o percentual de votos de cada candidato.
public class Questao_16 {
public static void main(String[] args) {
int num = 0;
@SuppressWarnings("unused")
String cand = "";
int zona = 1;
int secao = 1;
int cand1 = 0;
int cand2 = 0;
int porc1 = 0;
int porc2 = 0;
zona = Read.readInt("Nº da zona: ");
while (zona !=0) {
secao = Read.readInt("Nº da seção: ");
while (secao != 0) {
num = Read.readInt("VOTO: 12 p/ João ou 13 p/ Pedro");
if (num==12){
cand1++;
cand = "JOÃO";
}
if (num==13){
cand2++;
cand = "PEDRO";
}
if (num!=12 && num!=13){
cand = "VOTO NULO";
}
Write.writeln("PRÓXIMO VOTO!!!");
porc1 = cand1*100/(cand1 + cand2);
porc2 = cand2*100/(cand1 + cand2);
secao = Read.readInt("Nº da seção: ");
}
zona = Read.readInt("Nº da zona: ");
}
Write.writeln("---------------- Resultado Final --------------------");
Write.writeln("Candidato João nº12: "+cand1+ " votos, "+porc1+"%");
Write.writeln("Candidato Pedro nº13: "+cand2+ " votos, "+porc2+"%");
}
}
Download

Algoritmo 3