Algoritmo
Seminário: Algoritmo. Pesquise 861.000+ trabalhos acadêmicosPor: 112233445566 • 27/9/2014 • Seminário • 1.870 Palavras (8 Páginas) • 167 Visualizações
algoritmo "CalcularMedia"
// Função : Faça o programa principal e escreva um procedimento que receba o valor
// de 3 notas de alunos e um parâmetro do tipo caractere (letra). Se a letra lida for
// A, o procediemnto calcula a média aritmética das 3 notas, se o parâmetro for P,
// calcula a média ponderada (com os pesos 5, 3 e 2 respectivamente para as notas)
// Autor :
// Data : 18/6/2012
// Seção de Declarações
var
i, j: inteiro //Variáveis de índice que serão utilizadas tanto para os vetores quanto para os contadores.
opcao: caractere //Uma letra que será utilizada para escolher entre as médias aritimética ou ponderada
media: real //Variável global que receberá o cálculo da média
aluno: vetor[1..100] de caractere //Vetor para receber o nome dos alunos, até 100
notas: vetor[1..100, 1..3] de real //Matriz 100x3 que receberá o valor das notas. São 3
//colunas mais o índice: 1 - 100 Índice para
//linkar com o vetor do nome do aluno (100 posições)
//Nota 01, Nota 02, Nota 03
//Procedimento para entrada de dados(nome dos Alunos e notas)
procedimento lerAlunos()
var
inicio
escreval("Quantidade máxima de alunos: 100") //Escreve a mensagem na tela
enquanto (aluno[i] <> "S") e (i <= 100) faca //Enquanto o nome do aluno for diferente de S e "i" for menor ou igual a 100, executa:
escreva("Digite o nome do Aluno ([S] para sair): ") //Solicita a digitação do nome do aluno
leia(aluno[i]) //Faz a leitura e armazena na posição "i" do vetor "aluno"
se aluno[i] <> "S" entao //Se o conteúdo da posição "i" do vetor "aluno" = S, então faça
enquanto (j <= 3) faca //enquanto o índice "j" (a posição da nota no vetor "notas") for menor ou igual a 3,
escreva("Digite a nota número ", j, " do aluno ", aluno[i],": ") //Exibe a mensagem para digitar a nota na posição "j" do aluno na posição "i"
//"j" começa em 1 e vai até 3 (são 3 notas), e aqui é mostrado o valor do vetor aluno na posição "i"
leia(notas[i,j]) //Atribui o valor digitado à posição "i","j", onde "i" será a mesma posição do vetor aluno e "j" é a posição da nota
j <- j + 1 //Incrementa o índice "j" em 1, para passar para a próxima nota
fimenquanto //Termina o procedimento de preenchimento do vetor "nota" quanto j=3 (j<=3)
j <- 1 //"Reseta" o valor de "j" para poder ser utilizado em outros lugares. Como já está fora do laço acima, não cria um loop infinito
senao //Se o vetor "aluno" na posição "i" tiver o S, então executa:
aluno[i] <- "" //Como o índice "i" é incrementado, quando escolhemos a opção "s" o vetor aluno na posição "i" receberá este valor, porém não
//queremos que esta posição contenha dados, então a posição atual recebe um valor vazio, apagando o "s" que estava lá dentro.
interrompa //Comando do Visualg para interromper a execução do laço.
fimse
escreval("Nome do aluno: ", aluno[i]) //Exibe o nome do aluno na posição atual do vetor
i <- i + 1 //Incrementa o índice em 1, para a próxima posição receber um novo dado
fimenquanto
fimprocedimento
//Procedimento para exibir as notas
procedimento mostrarNotas(var opcao: caractere) //Exige um parâmetro do tipo caractere que será passado para o procedimento "calcularMedia",
//para saber qual média calcular (A para aritimetica ou P para ponderada)
var
inicio
i <- 1 //"Reseta" o índice "i" para ser utilizado desde o início
j <- 1 //"Reseta" o índice "j" para ser utilizado desde o início
limpatela //Limpa a tela, para ficar mais claro o resultado
enquanto (aluno[i] <> "") faca //Enquanto o conteúdo do vetor "aluno" na posição "i" não for vazio, executa
escreval("Aluno: ", aluno[i]) //Mostra o conteúdo do vetor "aluno" na posição "i"
escreval("Notas: ") //Mostra apenas o texto "Notas: ", que será incrementado pelos comandos abaixo:
enquanto (j <= 3) faca //Enquanto o índice "j" for menor ou igual a 3 (lembra que resetamos logo acima?), executa:
escreval(j,": ", notas[i,j]) //Escreve na tela a posição j e o conteúdo do vetor notas nas posiçãoes "i,j"
j <- j + 1 //Incrementa "j" para a próxima posição, que está a próxima nota
fimenquanto //Finaliza o laço "enquanto" de j<=3
calcularMedia(opcao, notas[i,1], notas[i,2], notas[i,3])
...