Física | Análise de Circuitos | Lógica de Programação | Tecnologia da Informação | Sobre o blog

segunda-feira, 15 de novembro de 2010

L7 - 2 - Escreva um algoritmo que leia o nome dos alunos de uma turma de tamanho indefinido (mas não superior a 60)


Escreva um algoritmo que leia o nome dos alunos de uma turma de tamanho indefinido (mas não superior a 60) e sua nota em uma prova (0 a 10; o algoritmo deve verificar se a nota fornecida é válida). O algoritmo pára de ler quando o nome do aluno fornecido for vazio (“”). Para cada aluno, o algoritmo deve escrever seu nome e sua nota normalizada, dada pela fórmula:
NNi = Ni X 10/Nmax
Onde NNi  é  a  nota  normalizada  do  i-ésimo  aluno, Ni  é  sua  nota  original,  e Nmax    é  a  nota máxima obtida dentre todos os alunos da turma.
Algoritmo "exercicio2"
Var
                nome: vetor [1..60] de literal
                nota: vetor [1..60] de real
                nmax: real
                i, j: inteiro
                x: logico
Inicio
                x <- verdadeiro
                nmax <- 0
                Escreval("Insira o nome e a nota dos alunos.:")
                Escreval("(Para finalizar, digite enter)")
// inserção dos dados
                Para i de 1 ate 60 faca
                               Se (x = verdadeiro) entao
Escreva(i,"o. nome: ")
Leia(nome[i])
Se(nome[i] <> "") entao
                               Escreva("nota:")
                               Leia(nota[i])
Enquanto (nota[i] < 0) ou (nota[i] > 10) FACA
Escreval("A nota deve ser superior a zero e inferior a 10.")
                                               Escreva("nota:")
                                               Leia(nota[i])
Fimenquanto
j <- i
Se(nota[i] > nmax) entao
nmax<- nota[i]
                                                                              Fimse
                                                               Senao
                                                                               x <- falso
Fimse
Fimse
                Fimpara
//normalização das notas
Limpatela
Escreval(" :: Normalização das notas :: ")
                Para i de 1 ate j faca
                               nota[i] <- (nota[i] * 10) / nmax
                               Escreval(nome[i], ": ",nota[i])
                Fimpara
Fimalgoritmo

Nenhum comentário: