Registro
Publicado por Leonardo 19/07/2007
[ Hits: 5.418 ]
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.
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}
programa pra carregear duas matrizes e achar o maior
Calculadora Empresarial (Baseada nas fórmulas de Logística)Lazarus
diferença entre o maior e o menor numero
mostrar a meior e a menor temperatura do ano com vetor
Nenhum comentário foi encontrado.
IA Turbina o Desktop Linux enquanto distros renovam forças
Como extrair chaves TOTP 2FA a partir de QRCODE (Google Authenticator)
Linux em 2025: Segurança prática para o usuário
Desktop Linux em alta: novos apps, distros e privacidade marcam o sábado
IA chega ao desktop e impulsiona produtividade no mundo Linux
Atualizando o Fedora 42 para 43
Como saber se o seu e-mail já teve a senha vazada?
Como descobrir se a sua senha já foi vazada na internet?
Secure boot, artigo interessante, nada técnico. (4)
E aí? O Warsaw já está funcionando no Debian 13? [RESOLVIDO] (14)
copiar library para diretorio /usr/share/..... su com Falha na a... (1)









