terça-feira, 22 de junho de 2010

Algoritmo da 2ª Avaliação - 2010/2

Um curso de Sistemas de Informação calcula o conceito dos alunos da turma de Programação da seguinte forma:
  • Insuficiente: Aqueles com Médias inferiores a 5,0;
  • Regular: Aqueles com Médias variando de 5,0 a 6,9;
  • Bom: Aqueles com Médias variando de 7,0 a 8,9;
  • Excelente: Aqueles com Médias entre 9,0 e 10,0; inclusive.
Um professor da disciplina avaliou sua turma em 3 momentos diferentes, aplicando provas com notas de 0 (zero) a 10,0. A média final do aluno é calculada através da média aritmética das 3 avaliações.

Observa-se ainda que, após 60 horas de aula, o aluno é considerado aprovado se sua frequência for maior que 75% e o seu conceito não for Insuficiente.

Faça um algoritmo que permita a digitação dos nomes, suas respectivas notas nas 3 avaliações e número de faltas; e que ao serem digitados os dados de cada aluno seja informado o conceito e a frequência do mesmo. Após a digitação dos dados do último aluno, o algoritmo deverá informar a quantidade de alunos reprovados, a quantidade de alunos com conceito Excelente, e a média geral da turma.

Como não foi especificado o número de alunos da turma, o algoritmo deverá solicitar dados enquanto o nome do aluno digitado seja diferente de "FIM".
__________________________________

Uma solução possível usando codificação para Visualg. Para efeito de avaliação serão considerados os seguintes elementos:
  • Laço de controle de leituras e processamento.
  • Leitura de dados dos alunos.
  • Calculo das médias e frequência.
  • Calculo dos conceitos, número de alunos reprovados e com conceito excelente.
  • Controle da saída dos dados pós leituras.
var
...nome: literal
...nota1, nota2, nota3: real
...faltas, nrAlunos, nrReprovados, nrExcelentes: inteiro
...media, frequencia, mediaGeral: real
inicio
...mediaGeral <- 0
...nrAlunos <- 0
...nrReprovados <- 0
...nrExcelentes <- 0
...leia nome
...enquanto nome <> "fim" faca
......leia nota1
......leia nota2
......leia nota3
......leia faltas
......media <- ( nota1 + nota2 + nota3 ) / 3
......frequencia <- ( 60 - faltas ) / 60 * 100
......mediaGeral <- mediaGeral + media
......nrAlunos <- nrAlunos + 1
......se media < 5 entao
.........escreva "Reprovado"
......nrReprovados <- nrReprovados + 1
......senao
.........se frequencia > 75 entao
............se media < 7 entao
...............escreva "Regular"
............senao
...............se media < 9 entao
..................escreva "Bom"
...............senao
..................escreva "Excelente"
...............fimse
............fimse
.........senao
............escreva "Reprovado por Falta"
.........fimse
.........se media >= 9 entao
............nrExcelentes <- nrExcelentes + 1
.........fimse
......fimse
......leia nome
...fimenquanto
...se nrAlunos <> 0 entao
......escreva "Media Geral: ", mediaGeral / nrAlunos
......escreva "Nr de Reprovados: ", nrReprovados
......escreva "Nr de Excelentes: ", nrExcelentes
...senao
......escreva "Inserir Pelo Menos os Dados de 1 Aluno"
...fimse
fimalgoritmo