Nas postagens anteriores mostramos a importância de se aprender a elaborar algoritmos corretamente. Mas uma boa forma de aperfeiçoar sua lógica é treinando. Para isso, abaixo são descritos alguns exercícios de algoritmos para treino, para o caso de alguma dúvida, os exercícios já se encontram respondidos. Esperamos que eles lhes possam ser úteis....mãos à obra!
Lista de Exercícios de Algoritmos:
1 - Faça um algoritmo que receba que receba dois números e ao final mostre a soma, subtração, multiplicação e divisão dos números lidos.
var
x, y: real;
inicio
escreva("Digite o primeiro número: ");
leia(x);
escreva("Digite o segundo número: ");
leia(y);
escreva("A soma é: ",x+y);
escreva("A subtração é: ",x-y);
escreva("A multiplicação é: ",x*y);
escreva("A divisão é: ",x/y);
fim.
x, y: real;
inicio
escreva("Digite o primeiro número: ");
leia(x);
escreva("Digite o segundo número: ");
leia(y);
escreva("A soma é: ",x+y);
escreva("A subtração é: ",x-y);
escreva("A multiplicação é: ",x*y);
escreva("A divisão é: ",x/y);
fim.
2 - Faça um algoritmo que leia o nome de um vendedor, o seu salário fixo e o total de vendas efetuadas por ele no mês (em dinheiro). Sabendo que este vendedor ganha 8% de comissão sobre as vendas efetuadas. Informe o seu nome, salário fixo e salário no final do mês acrescido das comissões.
var
nome: caractere;
salario: real;
vendas: real;
comissao: real;
salarioFinal: real;
inicio
escreva("Digite o nome do vendedor: ");
leia(nome);
escreva("Digite o salário: ");
leia(salario);
escreva("Informe a quantidade de vendas deste no mês: ");
leia(vendas);
comissao <- 0.08 * vendas;
salarioFinal <- salario + comissao;
limpatela
escreva("---------- RESUMO ----------");
escreva("Nome: ",nome);
escreva("Salário: ",salario);
escreva("Salário Final (salário + comissão): ",salarioFinal);
fim.
nome: caractere;
salario: real;
vendas: real;
comissao: real;
salarioFinal: real;
inicio
escreva("Digite o nome do vendedor: ");
leia(nome);
escreva("Digite o salário: ");
leia(salario);
escreva("Informe a quantidade de vendas deste no mês: ");
leia(vendas);
comissao <- 0.08 * vendas;
salarioFinal <- salario + comissao;
limpatela
escreva("---------- RESUMO ----------");
escreva("Nome: ",nome);
escreva("Salário: ",salario);
escreva("Salário Final (salário + comissão): ",salarioFinal);
fim.
3 - Faça um algoritmo que leia uma temperatura em graus Celsius e apresentá-la convertida em graus Fahrenheit. A fórmula usada para essa conversão é a seguinte: F = (9*C+160)/5, sendo que F representa a temperatura em Fahrenheit e C representa a temperatura em Celsius.
var
c, f: real;
inicio
escreva("Digite a temperatura em Celcius: ");
leia(c);
f <- (9*c+160)/5;
escreva("A nova temperatura é: ",f,"ºF");
fim.
c, f: real;
inicio
escreva("Digite a temperatura em Celcius: ");
leia(c);
f <- (9*c+160)/5;
escreva("A nova temperatura é: ",f,"ºF");
fim.
4 - Faça um algoritmo que leia um número e descubra se ele está no intervalo entre 0 e 100.
var
numero: inteiro;
inicio
escreva("Digite um número: ");
leia(numero);
se numero >= 0 entao
se numero <= 100 entao
escreva("O número está no intervalo entre 0 e 100");
senao
escreva("O número não está no intervalo entre 0 e 100");
fimse
senao
escreva("O número não está no intervalo entre 0 e 100");
fimse
fim.
numero: inteiro;
inicio
escreva("Digite um número: ");
leia(numero);
se numero >= 0 entao
se numero <= 100 entao
escreva("O número está no intervalo entre 0 e 100");
senao
escreva("O número não está no intervalo entre 0 e 100");
fimse
senao
escreva("O número não está no intervalo entre 0 e 100");
fimse
fim.
5 - Faça um algoritmo que leia o nome e as três notas obtidas por um aluno durante um semestre. Calcule a média aritmética das notas desse aluno, informe seu nome e o seu status (APROVADO, se média >= 7; REPROVADO, se média <= 5; e EXAME, se média > 5 e média < 7).
var
nome: caractere;
n1, n2, n3, media: real;
inicio
escreva("Sistema de médias");
escreva("Digite a primeira nota: ");
leia(n1);
escreva("Digite a segunda nota: ");
leia(n2);
escreva("Digite a terceira nota: ");
leia(n3);
media <- (n1 + n2 + n3) / 3;
se media >= 7 entao
escreva("APROVADO!");
senao
se media <= 5 entao
escreva("REPROVADO!");
senao
escreva("EXAME");
fimse
fimse
fim.
nome: caractere;
n1, n2, n3, media: real;
inicio
escreva("Sistema de médias");
escreva("Digite a primeira nota: ");
leia(n1);
escreva("Digite a segunda nota: ");
leia(n2);
escreva("Digite a terceira nota: ");
leia(n3);
media <- (n1 + n2 + n3) / 3;
se media >= 7 entao
escreva("APROVADO!");
senao
se media <= 5 entao
escreva("REPROVADO!");
senao
escreva("EXAME");
fimse
fimse
fim.
6 - Faça um algoritmo que leia três valores inteiros distintos e os escreva em ordem crescente.
var
num1, num2, num3: inteiro;
ordena: vetor[1..3] de inteiro;
inicio
escreva("Digite o primeiro número: ");
leia(num1);
escreva("Digite o segundo número: ");
leia(num2);
escreva("Digite o terceiro número: ");
leia(num3);
se num1 > num2 entao
ordena[3] <- num1;
ordena[2] <- num2;
se num3 > num1 entao
ordena[3] <- num3;
ordena[2] <- num1;
ordena[1] <- num2;
senao
se num3 > num2 entao
ordena[3] <- num1;
ordena[2] <- num3;
ordena[1] <- num2;
senao
ordena[3] <- num1;
ordena[2] <- num2;
ordena[1] <- num3;
fimse
fimse
senao
ordena[3] <- num2;
ordena[2] <- num1;
se num3 > num2 entao
ordena[3] <- num3;
ordena[2] <- num2;
ordena[1] <- num1;
senao
se num3 > num1 entao
ordena[3] <- num2;
ordena[2] <- num3;
ordena[1] <- num1;
senao
ordena[3] <- num2;
ordena[2] <- num1;
ordena[1] <- num3;
fimse
fimse
fimse
escreva("Os números em ordem crescente são: ");
escreva(">",ordena[1]);
escreva(">",ordena[2]);
escreva(">",ordena[3]);
num1, num2, num3: inteiro;
ordena: vetor[1..3] de inteiro;
inicio
escreva("Digite o primeiro número: ");
leia(num1);
escreva("Digite o segundo número: ");
leia(num2);
escreva("Digite o terceiro número: ");
leia(num3);
se num1 > num2 entao
ordena[3] <- num1;
ordena[2] <- num2;
se num3 > num1 entao
ordena[3] <- num3;
ordena[2] <- num1;
ordena[1] <- num2;
senao
se num3 > num2 entao
ordena[3] <- num1;
ordena[2] <- num3;
ordena[1] <- num2;
senao
ordena[3] <- num1;
ordena[2] <- num2;
ordena[1] <- num3;
fimse
fimse
senao
ordena[3] <- num2;
ordena[2] <- num1;
se num3 > num2 entao
ordena[3] <- num3;
ordena[2] <- num2;
ordena[1] <- num1;
senao
se num3 > num1 entao
ordena[3] <- num2;
ordena[2] <- num3;
ordena[1] <- num1;
senao
ordena[3] <- num2;
ordena[2] <- num1;
ordena[1] <- num3;
fimse
fimse
fimse
escreva("Os números em ordem crescente são: ");
escreva(">",ordena[1]);
escreva(">",ordena[2]);
escreva(">",ordena[3]);
fim.
7 - Faça um algoritmo que receba o número do mês e mostre o mês correspondente, validando se houver um número de mês inválido.
var
mes: inteiro;
inicio
escreva("Digite o número do mês: ");
leia(mes);
escolha mes
caso 1:
escreva("Janeiro");
caso 2:
escreva("Fevereiro");
caso 3:
escreva("Março");
caso 4:
escreva("Abril");
caso 5:
escreva("Maio");
caso 6:
escreva("Junho");
caso 7:
escreva("Julho");
caso 8:
escreva("Agosto");
caso 9:
escreva("Setembro");
caso 10:
escreva("Outubro");
caso 11:
escreva("Novembro");
caso 12:
escreva("Dezembro");
outrocaso:
escreva("Mês inválido!");
fimescolha
fim.
mes: inteiro;
inicio
escreva("Digite o número do mês: ");
leia(mes);
escolha mes
caso 1:
escreva("Janeiro");
caso 2:
escreva("Fevereiro");
caso 3:
escreva("Março");
caso 4:
escreva("Abril");
caso 5:
escreva("Maio");
caso 6:
escreva("Junho");
caso 7:
escreva("Julho");
caso 8:
escreva("Agosto");
caso 9:
escreva("Setembro");
caso 10:
escreva("Outubro");
caso 11:
escreva("Novembro");
caso 12:
escreva("Dezembro");
outrocaso:
escreva("Mês inválido!");
fimescolha
fim.
8 - Faça um algoritmo que receba N números e mostre POSITIVO, NEGATIVO ou ZERO, para cada número informado.
var
programa, numero: inteiro;
opc: caractere;
inicio
programa, numero: inteiro;
opc: caractere;
inicio
programa <- 1;
enquanto programa = 1 faca
limpatela
escreva("Digite um número: ");
leia(numero);
se numero > 0 entao
escreva("POSITIVO!");
senao
se numero = 0 entao
escreva("ZERO!");
fimse
se numero < 0 entao
escreva("NEGATIVO!");
fimse
fimse
escreva("Deseja finalizar? (S/N) ");
leia(opc);
se opc = "S" entao
programa <- 0;
fimse
fimenquanto
fim.
enquanto programa = 1 faca
limpatela
escreva("Digite um número: ");
leia(numero);
se numero > 0 entao
escreva("POSITIVO!");
senao
se numero = 0 entao
escreva("ZERO!");
fimse
se numero < 0 entao
escreva("NEGATIVO!");
fimse
fimse
escreva("Deseja finalizar? (S/N) ");
leia(opc);
se opc = "S" entao
programa <- 0;
fimse
fimenquanto
fim.
9 - Faça um algoritmo para ler 50 números e ao final informe quantos números estão no intervalo entre 100 e 150.
var
x, num, intervalo: inteiro;
inicio
para x de 1 ate 50 faca
escreva("Digite um número: ");
leia(num);
se num >= 100 entao
se num <= 150 entao
intervalo <- intervalo + 1;
fimse
fimse
fimpara
escreva("Ao total, foram digitados",intervalo,"números no intervalo entre 100 e 150");
fim.
x, num, intervalo: inteiro;
inicio
para x de 1 ate 50 faca
escreva("Digite um número: ");
leia(num);
se num >= 100 entao
se num <= 150 entao
intervalo <- intervalo + 1;
fimse
fimse
fimpara
escreva("Ao total, foram digitados",intervalo,"números no intervalo entre 100 e 150");
fim.
10 - Faça um algoritmo que leia três valores inteiros e verifique se eles podem ser os lados de um triângulo. Se forem, informe qual tipo de triângulo eles podem formar: equilátero, isósceles ou escaleno.
Propriedade: O comprimento de cada lado de um triângulo é menor que a soma dos comprimentos dos outros dois lados.
Triângulo equilátero: Possui o comprimento dos três lados iguais.
Triângulo isósceles: Possui o comprimento de apenas dois lados iguais.
Triângulo escaleno: Possui o comprimento dos três lados diferentes.
var
la, lb, lc, triangulo: inteiro;
la, lb, lc, triangulo: inteiro;
inicio
escreva("Digite o lado A do triângulo: ");
leia(la);
escreva("Digite o lado B do triângulo: ");
leia(lb);
escreva("Digite o lado C do triângulo: ");
leia(lc);
se la < (lc+lb) entao
triangulo <- 1;
senao
se lb < (lc + la) entao
triangulo <- 1;
senao
se lc < (lb + la) entao
triangulo <- 1;
fimse
fimse
fimse
se triangulo = 1 entao
se la = lb entao
se lb = lc entao
escreva("TRIÂNGULO EQUILÁTERO!");
senao
escreva("TRIÂNGULO ISÓSCELES!");
fimse
senao
se lb = lc entao
escreva("TRIÂNGULO ISÓSCELES!");
senao
escreva("TRIÂNGULO ESCALENO!");
fimse
fimse
fimse
fim.
leia(la);
escreva("Digite o lado B do triângulo: ");
leia(lb);
escreva("Digite o lado C do triângulo: ");
leia(lc);
se la < (lc+lb) entao
triangulo <- 1;
senao
se lb < (lc + la) entao
triangulo <- 1;
senao
se lc < (lb + la) entao
triangulo <- 1;
fimse
fimse
fimse
se triangulo = 1 entao
se la = lb entao
se lb = lc entao
escreva("TRIÂNGULO EQUILÁTERO!");
senao
escreva("TRIÂNGULO ISÓSCELES!");
fimse
senao
se lb = lc entao
escreva("TRIÂNGULO ISÓSCELES!");
senao
escreva("TRIÂNGULO ESCALENO!");
fimse
fimse
fimse
fim.
Nenhum comentário:
Postar um comentário