aula 87

Como garantir que uma nota digitada pelo usuário é valida?

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")
	}
}


Deixe um comentário

sete + 11 =

Wagner Gaspar

Capixaba de São Gabriel da Palha, Espírito Santo. Bacharel em Ciência da Computação pela Universidade Federal do Amazonas e mestre em informática pela Universidade Federal do Espírito Santo.