Ir ao conteúdo
  • Cadastre-se

Pascal/Delphi lista encadeada em pascal


Posts recomendados

Olá tenho um enunciado que diz o seguinte: 

Crie um programa em PASCAL que realize o cadastro de alunos de uma escola. Primeiramente, o programa deverá ler um valor válido para a variável n no intervalo [3,40], a qual indicará a quantidade de alunos a serem lidos. Cada aluno precisa ter os seguintes dados (registro): (i) matrícula - integer; (ii) nome – 30 caracteres;  (iii)  telefone  – 20  caracteres. Os dados  deverão ser armazenados em uma lista encadeada, cuja a inserção de cada elemento deverá ser no início da lista. Após a conclusão do cadastro dos alunos na lista, exibir os dados de todos os n alunos percorrendo a lista encadeada.

criei um código mas estou com duvida se ele atende o que se pede quem puder mim ajudar fico muito agradecido. segue o código abaixo:

program at_pratica_cadastro;
// Autor: Ronildo Sousa // Disciplina: Linguagem de Programação I

uses crt;


type

Cad_Aluno = record
  matricula : integer;
  nome : string[30];
  tel : string[20];
  
end;

var

Reg_Vet : array[3..40] of Cad_Aluno;
i,n : integer;

begin
  writeln('Informe a quantidade de alunos a cadastrar:');
  readln(n);
  if (n>=3) and (n<=40) then
  begin
    for i:=3 to n do
    
    begin
      
      clrscr;
      write('Cadastro de Alunos');
      writeln;
      writeln;
      write('Matricula: ');
      read(Reg_Vet[i].matricula);
      writeln;
      write('Nome: ');
      read(Reg_Vet[i].nome);
      writeln;
      write('Telefone: ');
      read(Reg_Vet[i].tel);
      writeln;
    end;
    
    begin
      
      clrscr;
      writeln('OS DADOS INSERIDOS FORAM');
      for i:=3 to n do
      
      begin
        
        writeln;
        write('Matricula: ');
        writeln(Reg_Vet[i].matricula);
        writeln;
        write('Nome: ');
        writeln(Reg_Vet[i].nome);
        writeln;
        write('Telefone: ');
        writeln(Reg_Vet[i].tel);
        writeln;
        
      end;
      
    end
  end
  else
  begin
    writeln('VALOR INVÁLIDO');
  end;
end.

 

Link para o comentário
Compartilhar em outros sites

  • Membro VIP

Olá @Patriota_Programador.

 

Vamos lá:

 

Em 13/12/2017 às 12:04, Patriota_Programador disse:

Primeiramente, o programa deverá ler um valor válido para a variável n no intervalo [3,40]

 

Daí você está usando:

Em 13/12/2017 às 12:04, Patriota_Programador disse:

var
  Reg_Vet : array[3..40] of Cad_Aluno;

Tem um pequeno equívoco, pois esse "intervalo de 3 a 40" refere-se à:

 

Em 13/12/2017 às 12:04, Patriota_Programador disse:

quantidade de alunos a serem lidos

ou seja, o vetor vai de 1 a X... Esse "3 a 40" se refere ao X. (ex.: de 1 a 6, de 1 a 32 etc). No seu contexto, o vetor iria de 1 a 40. (ou 0 a 39)

 

 

 

Daí também fica faltando o principal:

Em 13/12/2017 às 12:04, Patriota_Programador disse:

Os dados  deverão ser armazenados em uma lista encadeada, cuja a inserção de cada elemento deverá ser no início da lista

 

Cadê a lista encadeada?

 

 

 

No aguardo.

 

Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...