Nesta aula vamos ver como garantir que uma nota digitada pelo usuário é valida.
Na aula anterior resolvemos um exercício lendo 10 notas e salvando em um vetor e, na sequência, descobrimos a menor, a maior e a média das notas, assim:
Contudo, quem nos garante que serão digitadas apenas notas válidas entre 0 e 10?
É nossa responsabilidade enquanto programadores garantir a validade dos dados digitados pelo usuário. Isso pode ser feito envolvendo a leitura de cada nota dentro de uma estrutura de repetição do tipo faça enquanto.
FAÇA (pedir e ler uma nota) ENQUANRO a nota digitada for menor que zero ou maior que 10.
Assim:
real notas[10]
inteiro i
para(i = 0; i < 10; i++){
faca{
escreva("Digite a nota da posição ", i, ": ")
leia(notas[i])
}enquanto(notas[i] < 0 ou notas[i] > 10)
}
Este exercício é interessante porque ele mostra de forma muito clara como que cada tópico estudado vai se encaixando para formar programas mais completos e consistentes, evitando e prevenindo erros.
Caso queira informar ao usuário que a no é inválida podemos ler a nota e, dentro de uma repetição do tipo enquanto, verificar se ela é inválida, informando ao usuário e pedindo novamente a nota, assim:
para(i = 0; i < 10; i++){
escreva("Digite a nota da posição ", i, ": ")
leia(notas[i])
enquanto(notas[i] < 0 ou notas[i] > 10){
escreva("A nota digitada é inválida!\nDigite outra nota! ")
leia(notas[i])
}
}
Programa completo em Portugol
programa{
funcao inicio(){
real maior = 0, menor = 11, media, somaNotas = 0.0, notas[10]
inteiro i
para(i = 0; i < 10; i++){
escreva("Digite a nota da posição ", i, ": ")
leia(notas[i])
enquanto(notas[i] < 0 ou notas[i] > 10){
escreva("A nota digitada é inválida!\nDigite outra nota! ")
leia(notas[i])
}
}
escreva("\n")
para(i = 0; i < 10; i++)
escreva(notas[i], ", ")
escreva("\n")
para(i = 0; i < 10; i++){
se(notas[i] < menor){
menor = notas[i]
}
se(notas[i] > maior){
maior = notas[i]
}
somaNotas += notas[i]
}
media = somaNotas / 10
escreva("\nMenor nota: ", menor)
escreva("\nMaior nota: ", maior)
escreva("\nA média da turma foi: ", media, "\n\n")
}
}
