Prévia do material em texto
Lista de Exercícios
Curso de Lógica e Técnicas de Programação
Prof. Marcelo Cabral
Portugol:
1. Escreva um algoritmo que leia três notas, calcule a média delas e exiba se o aluno foi
aprovado ou reprovado e sua respectiva nota.
algoritmo "aprovacao"
var
nota1,nota2,nota3 : real
media : real
inicio
// Seção de Comandos
escreva("Digite a primeira nota: ")
leia(nota1)
escreva("Digite a segunda nota: ")
leia(nota2)
escreva("Digite a terceira nota: ")
leia(nota3)
media <- (nota1 + nota2 + nota3) / 3
se (media >= 7) entao
escreval("Aluno aprovado com media ",media)
fimse
se (media < 7)entao
escreval("Aluno reprovado com media",media)
fimse
fimalgoritmo
2. Escreva um algoritmo que leia um número e exiba se ele é positivo, negativo ou nulo.
algoritmo "positivonegativonulo"
var
numero : inteiro
inicio
// Seção de Comandos
escreva("Digite um numero:")
leia(numero)
se numero > 0 entao
escreval("Numero é positivo.")
senao
se numero < 0 entao
escreval("Numero é negativo.")
senao
escreval("Numero é nulo.")
fimse
fimse
fimalgoritmo
3. Escreva um algoritmo que leia a idade de um atleta e escreva na tela em que categoria
ele se enquadra, seguindo o quadro abaixo:
algoritmo "categoria_por_idade"
var
idade : inteiro
inicio
// Seção de Comandos
escreva("Digite sua idade: ")
leia(idade)
se idade < 5 entao
escreval("Nao pode competir")
senao
se ((idade >= 5)e(idade <= 10)) entao
escreval("Categoria Infantil")
senao
se ((idade > 10)e(idade <= 17)) entao
escreval("Categoria Juvenil")
senao
se ((idade > 17)e(idade <= 30)) entao
escreval("Categoria Profissional")
senao
se idade > 30 entao
escreval("Categoria Senior")
fimse
fimse
fimse
fimse
fimse
fimalgoritmo
4. Escreva um algoritmo que leia dois números e a operação matemática entre eles e
exiba a equação da operação e o resultado. Pense em uma calculadora básica.
algoritmo "calculadora"
var
operacao : caractere
numero1,numero2,resultado : real
inicio
// Seção de Comandos
escreva("Digite o primeiro numero: ")
leia(numero1)
escreva("Digite a operacao: ")
leia(operacao)
escreva("Digite o segundo numero: ")
leia(numero2)
escolha operacao
caso "+"
resultado <- numero1 + numero2
caso "-"
resultado <- numero1 - numero2
caso "*","x"
resultado <- numero1 * numero2
caso "/"
resultado <- numero1 / numero2
fimescolha
escreval(numero1," ",operacao,numero2," =",resultado)
fimalgoritmo
5. Escreva um algoritmo que exiba os números de 1 a 100 em ordem crescente
algoritmo "numeros_1_a_100"
var
numero : inteiro
inicio
// Seção de Comandos
para numero de 1 ate 100 passo 1 faca
escreval(numero)
fimpara
fimalgoritmo
6. Escreva um algoritmo que exiba os números de 1 a 100 em ordem decrescente
algoritmo "numeros_100_a_1"
var
numero : inteiro
inicio
// Seção de Comandos
para numero de 100 ate 1 passo -1 faca
escreval(numero)
fimpara
fimalgoritmo
7. Escreva um algoritmo que calcule o IMC (Indice de Massa Corporal) de uma pessoa e
exiba na tela em que categoria ela está segundo o quadro abaixo.
algoritmo "calculo_imc_categoria"
var
imc,peso,altura : real
sexo : caractere
inicio
// Seção de Comandos
escreva("Digite seu peso: ")
leia(peso)
escreva("Digite sua altura: ")
leia(altura)
escreva("Digite seu sexo: ")
leia(sexo)
imc <- peso / (altura * altura)
escreval("Seu IMC é ",imc)
escolha sexo
caso "M","masculino"
se imc < 20.7 entao
escreval("Você está abaixo do peso")
senao
se ((imc >= 20.7) e (imc < 26.4)) entao
escreval("Você está com o peso normal")
senao
se ((imc >= 26.4) e (imc < 27.8)) entao
escreval("Você está marginalmente acima do peso")
senao
se ((imc >= 27.8) e (imc < 31.1)) entao
escreval("Você está acima do peso")
senao
se imc > 31.1 entao
escreval("Você está obeso")
fimse
fimse
fimse
fimse
fimse
caso "F","feminino"
se imc < 19.1 entao
escreval("Você está abaixo do peso")
senao
se ((imc >= 19.1) e (imc < 25.8)) entao
escreval("Você está com o peso normal")
senao
se ((imc >= 25.8) e (imc < 27.3)) entao
escreval("Você está marginalmente acima do peso")
senao
se ((imc >= 27.3) e (imc < 32.3)) entao
escreval("Você está acima do peso")
senao
se imc > 32.3 entao
escreval("Você está obeso")
fimse
fimse
fimse
fimse
fimse
fimescolha
fimalgoritmo
8. Escreva um algoritmo que exiba os números de 1 a 1000 que são pares.
algoritmo "numeros_pares_1_a_1000"
var
numero : inteiro
inicio
// Seção de Comandos
para numero de 1 ate 1000 passo 1 faca
se numero % 2 = 0 entao
escreval(numero)
fimse
fimpara
fimalgoritmo
9. Escreva um algoritmo que exiba os números de 1 a 100 que são divisíveis por 5.
algoritmo "numeros_divisiveis_5_de_1_a_100"
var
numero : inteiro
inicio
// Seção de Comandos
para numero de 1 ate 100 passo 1 faca
se numero % 5 = 0 entao
escreval(numero)
fimse
fimpara
fimalgoritmo
10. Faça um algoritmo que exiba na tela todos os números ímpares entre 100 e 200.
algoritmo "numeros_impares_de_100_a_200"
var
numero : inteiro
inicio
// Seção de Comandos
para numero de 100 ate 200 passo 1 faca
se nao(numero % 2 = 0) entao
escreval(numero)
fimse
fimpara
fimalgoritmo
11. Faça um algoritmo que leia 15 números inteiros e, para cada um deles, exiba o
antecessor, o sucessor, o dobro e o triplo.
algoritmo "ant_suc_dob_trip_15_num"
var
contador : inteiro
numero : real
inicio
// Seção de Comandos
para contador de 1 ate 15 faca
escreva("Digite o ",contador,"º numero:")
leia(numero)
escreval("Antecessor:",numero-1)
escreval("Sucessor:",numero+1)
escreval("Dobro:",numero*2)
escreval("Triplo:",numero*3)
fimpara
fimalgoritmo
12. Faça um algoritmo que imprima na tela a tabuada de multiplicação por 6. O programa
deve imprimir na primeira linha a multiplicação de 6 por 1; na segunda, de 6 por 2; e
assim sucessivamente, até a décima (6 vezes 10):
Exemplo:
6 x 1 = 6
....
6 x 10 = 60
algoritmo "tabuada_multiplicacao_6"
var
numero,resultado : inteiro
inicio
// Seção de Comandos
para numero de 1 ate 10 passo 1 faca
resultado <- 6 * numero
escreval("6 x",numero," =",resultado)
fimpara
fimalgoritmo
13. Faça um algoritmo que receba duas notas de um aluno e calcule a média das notas e
exiba se o aluno foi aprovado ou reprovado. Faça isso para 20 alunos.
algoritmo "Resultado_notas_20_alunos"
var
contador : inteiro
nota1,nota2,media : real
inicio
// Seção de Comandos
para contador de 1 ate 20 passo 1 faca
escreva("Digite a primeira nota: ")
leia(nota1)
escreva("Digite a segunda nota: ")
leia(nota2)
media <- (nota1 + nota2)/2
se media >= 6 entao
escreval("Aluno aprovado com media ",media)
senao
escreval("Aluno reprovado com media ",media)
fimse
fimparafimalgoritmo
14. Altere o algoritmo anterior de forma que leia as notas dos vinte alunos e, ao final,
apenas imprima as quantidades de aprovados e de reprovados.
algoritmo "Resultado_aprovados_reprovados_20_alunos"
// Função :
// Autor :
// Data : 4/12/2015
// Seção de Declarações
var
contador,aprovados,reprovados : inteiro
nota1,nota2,media : real
inicio
// Seção de Comandos
aprovados <- 0
reprovados <- 0
para contador de 1 ate 20 passo 1 faca
escreval("Digite as notas do aluno",contador)
escreva("Digite a primeira nota: ")
leia(nota1)
escreva("Digite a segunda nota: ")
leia(nota2)
media <- (nota1 + nota2)/2
se media >= 6 entao
aprovados <- aprovados + 1
senao
reprovados <- reprovados + 1
fimse
fimpara
escreval("O numero de aprovados foi:",aprovados)
escreval("O numero de reprovados foi:",reprovados)
fimalgoritmo
15. Faça um algoritmo que solicite a digitação da idade e do sexo de uma pessoa (o sexo
deve ser F ou M) e depois pergunte se o usuário deseja informar uma nova pessoa.
Esse processo deve se repetir até que o usuário informe que não deseja mais informar
novas pessoas. Quando isso acontecer, o algoritmo deve imprimir na tela a quantidade
de pessoas do sexo masculino informadas; a quantidade de pessoas do sexo feminino
informadas; a média das idades informadas para pessoas de sexo masculino; e a média
das idades informadas para pessoas de sexo feminino.
algoritmo "masc_fem"
// Função :
// Autor :
// Data : 25/11/2016
// Seção de Declarações
var
sexo : caractere
condicao : inteiro
homem,mulher,somaidh,somaidm,idade : inteiro
medh,medm : real
inicio
// Seção de Comandos
condicao <- 1
homem <- 0
mulher <- 0
somaidh <- 0
somaidm <- 0
enquanto condicao = 1 faca
escreva("Digite M para masculino e F para Feminino:")
leia(sexo)
escolha sexo
caso "M","masculino"
homem <- homem + 1
escreva("Digite a sua idade:")
leia(idade)
somaidh <- somaidm + idade
caso "F","feminino"
mulher <- mulher + 1
escreva("Digite a sua idade:")
leia(idade)
somaidm <- somaidf + idade
fimescolha
escreva("Voce deseja sair ? 0 - Sim, 1 - Não:")
leia(condicao)
fimenquanto
medh <- somaidh/homem
medm <- somaidm/mulher
escreval("Quantidade de pessoas do sexo masculino:",homem)
escreval("Quantidade de pessoas do sexo feminino:",mulher)
escreval("A média de idade dos homens é:",medh)
escreval("A média de idade das mulheres é:",medm)
fimalgoritmo
16. Faça um algoritmo que simule um saque no caixa eletrônico. Nesse caixa eletrônico
pode ser realizado três operações: saque, deposito e verificar o saldo. O cliente já terá
disponível R$ 100 reais de saldo. O algoritmo receberá como entrada a operação a ser
realizada e o valor da operação caso seja saque ou deposito ou para verificar o saldo
basta exibir na tela o valor disponível para saque e o algoritmo somente será
encerrado caso uma operação diferente seja escolhida.
algoritmo "caixa_eletronico"
var
operacao : caractere
saldo,valor : real
inicio
// Seção de Comandos
saldo <- 100
operacao <- "saldo"
enquanto ((operacao = "saldo") ou (operacao = "saque") ou (operacao =
"deposito")) faca
escreval("Digite a operação que deseja realizar")
escreval("Saque, Deposito, Saldo")
leia(operacao)
escolha(operacao)
caso "Saque"
escreva("Digite o valor que deseja sacar:")
leia(valor)
se valor < saldo entao
saldo <- saldo - valor
senao
escreval("Saldo insuficiente")
fimse
caso "Deposito"
escreva("Digite o valor que deseja depositar:")
leia(valor)
caso "Saldo"
escreval("Seu saldo é:",saldo)
fimescolha
fimenquanto
fimalgoritmo