Registro

Publicado por Leonardo 19/07/2007

[ Hits: 5.140 ]

Download REGISTRO.PAS




Este programa faz o resgistro de até 35 alunos, recebe 5 notas de provas e faz a média das notas, imprime na tela o cadastro e a média.

  



Esconder código-fonte

O programa cadastra informacoes dos aluno (no maxino 35) exibe estes cadastros,
Mostra o nome e RA dos alunos que tiveram notas maiores que 8, calcula a media das notas da turma}

program registro;
uses crt;  {Biblioteca Padrao}

{Definicao de tipos definidos pelo programador}
type cadastro = record {declaracao de um tipo de dado complexo}
                 Sigla: string [10];
                 Disciplina: string [40]; {Nome da Disciplina}
                 data: record {Data Prova}{Declaracao de um tipo de dado complexo}
                          dia: 1..31;
                          mes: 1..12;
                          ano: 1500..2500;
                        end; {fim do registro data}
                 Nome_aluno: string [50];
                 RA: longint;
                 questao: array [1..5] of real;
                 total: real;
                end; {fim do registro cadastro}

var {Declaracoes de variaveis}
cad: array [1..3] of cadastro; {vetor de cadastro}
i,n,j: integer; {n quantidade de elementos, i,j sao indices dos vetors cad e questao respectivamente}
media,soma:real;{media eh a media das notas da turma e soma o total das notas da prova}


begin {Inicio do programa principal}
 clrscr; {Comando do Pascal que limpa a tela}
 writeln ('Escreva a quantidade de notas a serem lidas'); {Orientacao ao usuario}
 readln (n); {Le a quantidaade de elementos do vetor}
 writeln;  {Comando que pula linha}
 {estrutura de repeticao que vai ler os dados}
 for i:=1 to n do
  begin
   with cad [i]  do {Referencia ao campo}
    begin
     writeln ('Cadastro da ',i,'a. pessoa'); {Orientacao ao usuario}
     writeln; {Comando que pula linha}
     write ('Sigla = ' );  {Orientacao ao usuario}
     readln (sigla); {Le a Sigla}
     write ('Nome da Disciplina = ');  {Orientacao ao usuario}
     readln (disciplina); {Le a o nome da Disciplina}
     with data do {Referencia ao campo}
      begin
        writeln ('Data da Prova'); {Orientacao ao usuario}
        write ('Dia = ');  {Orientacao ao usuario}
        read (dia); {Le o dia da prova}
        write ('Mes = ');  {Orientacao ao usuario}
        read (mes); {Le o mes da prova}
        write ('Ano = ');  {Orientacao ao usuario}
        readln (ano); {Le o ano da prova}
      end; {Fim da entrada de dados do reg. data}
     write ('Nome do Aluno = ');  {Orientacao ao usuario}
     read (nome_aluno); {Le o nome do aluno}
     write ('RA = ');  {Orientacao ao usuario}
     read (RA); {Le o RA}
     writeln ('Nota das Questoes');   {Orientacao ao usuario}
     total:=0; {Atribuicao do valor inicial do total}
     {Estrutura de repeticao que vai ler as notas obtidas em cada questao e calcular o total}
     for j:=1 to 5 do
      begin
       write ( j, ')');    {Orientacao ao usuario}
       readln (questao [j]); {Le a nota de cada questao}
       total:= total+questao[j] {Calcula a nota da prova}
      end; {Fim do comando for}
    end; {Fim de entrada de dados do reg. cad[i]}
   writeln; {Comando que pula linha}
  end; {Fim do comando for}
 writeln ('Aluno que obtiveram notas maior que 8');   {Orientacao ao usuario}
 {Estrutura de repeticao que vai verificar quais alunos obtiveram nota maior que 8 e exibir estes dados}
 for i:=1 to n do
   with cad [i] do {Referencia ao campo}
    begin
     If total > 8 then  {Compara os alunos que tiveram notas maiores que 8}
      begin
       writeln ('Nome = ',nome_aluno); {Escreve os nomes dos alunos que tiveram notas maiores que 8}
       writeln ('RA = ', ra); {Escreve o RA dos alunos que tiveram notas maiores que 8}
      end; {Fim do comando IF}
    end;{Fim de entrada de dados do reg cad[i]}
 {Estrutura de repeticao que vai somar todas as notas da prova obtidas pela turma}
 for i:=1 to n do
  soma:= cad[i].total + soma;
 media:= soma/5; {Calcula a media das notas da prova da turma}
 writeln; {Comando que pula linha}
 {Estrutura de repeticao que escreve os dados cadastrados}
 for i:=1 to n do
  begin
   with cad [i]  do {Referencia ao campo}
    begin
     writeln ('Cadastro da ',i,'a. pessoa'); {Orientacao ao usuario}
     writeln ('Sigla = ', sigla); {Escreve a Sigla}
     writeln ('Nome da Disciplina = ',disciplina); {Escreve o nome da discplina}
     with data do {Referencia por campo}
      begin
        writeln ('Data da Prova = ',dia,' / ',mes, ' / ', ano);
      end; {Fim da entrada de dados do reg. data}
     writeln ('Nome do Aluno = ', nome_aluno); {Escreve o nome do aluno}
     writeln ('RA = ', RA); {Escreve o RA}
     writeln ('Nota das Questoes'); {Orientacao ao usuario}
     {Estrutura de repeticao que vai escrever a nota de cada questao}
     for j:=1 to 5 do
      writeln (j,'.a questÆo = ', questao[j]:5:2);
     writeln ('Total = ', total:5:2); {Escreve a nota da prova}
     writeln;{Comando que pula linha}
    end; {Fim da entrada de dados do reg.cad[i]}
  end; {Fim do comando for}
 writeln;{Comando que pula linha}
 writeln ('A media das Notas = ', media:5:2); {Escreve a media das notas da turma}
 readkey; {Comando do Pascal que espera o usuario digitar qualquer tecla para finalizar o programa}
end. {Fim do programa principal}

Scripts recomendados

Loops

calculo de porcentagem em vetores

diferença entre o maior e o menor numero

Tocador de Vídeo (Lazarus)

Contador de números (Pascal) - efeito Matrix


  

Comentários

Nenhum comentário foi encontrado.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts