Colocar Resposta 
 
Avaliação do Tópico:
  • 0 votos - 0 Média
  • 1
  • 2
  • 3
  • 4
  • 5
ajuda em programa pascal
03-01-2010, 16:55 (Esta mensagem foi modificada pela última vez a: 03-01-2010 16:59 por Ferreira.)
Mensagem: #1
ajuda em programa pascal
eu tenho este programa em pascal

Código:
program ficheiros_alunos;
uses crt, windos;

Type registo=record
nome: string[40];
idade:integer;
peso:real;
end;

var ficheiro :File of registo;
aluno: registo;
quant, conta, req: integer;
S:array[0..200] of char;
opcao: char;

Procedure insere;
var opcao:char;

begin
Filesearch(s,'aluno.dat','');
if s[0] =#0 then
begin
writeln('o ficheiro nÆo existe e vai ser criado');
rewrite(ficheiro);
end
else
begin
writeln('o ficheiro ja existe e contem os seguintes registos: ');
reset(ficheiro);
while not Eof(ficheiro) do
begin
read(ficheiro,aluno);
writeln('Registo n: ' ,Filepos(ficheiro),' Nome: ',aluno.nome);
end;
writeln;
write('pretende (A)crescentar dados ou (E) eliminar o ficheiro e inicializar');
repeat
opcao:=readkey;
until (upcase(opcao)='A') or (upcase(opcao)='œ');
if upcase(opcao)='A' then reset(ficheiro)
else
begin
erase(ficheiro);
writeln('ficheiro eliminado');
rewrite(ficheiro);
writeln('ficheiro criado');
writeln('prima uma tecla para continuar');
clrscr;
end;
end;
writeln;
writeln;
write('Quantos registos pretende introduzir?: '); readln(quant);
writeln;
if quant <=0 then
begin
while not Eof(ficheiro) do
begin
read(ficheiro,aluno);
end;
for conta := 1 to quant do
begin
writeln('Registo n; ',filepos(ficheiro)+1);
write('Nome: '); readln(aluno.nome);
write('Idade: '); readln(aluno.idade);
write('Peso: '); readln(aluno.peso);
write(Ficheiro,aluno);
writeln;
end;
end;
write;
close (ficheiro);
writeln('Prima uma tecla para continuar');
readln;
end;

Procedure lista;
begin
reset(ficheiro);
writeln('O ficheiro cont, m ', filesize(ficheiro),'registos');
writeln;
while not Eof(ficheiro) do
begin
read(ficheiro,aluno);
writeln('Registo n:' , filepos(ficheiro));
writeln('Nome: ',aluno.nome,'Idade: ',aluno.idade,'Peso',aluno.peso:2:2);
write('---------------------------------------------------------');
if (filepos(ficheiro) mod 6)=0 then
begin
write('prime uma tecla para continuar');
readkey;
clrscr;
end;
end;
close(ficheiro);
writeln('prime qualquer tecla para continuar');
readkey;
end;

Procedure consulta;
begin
write('que registo pretende consultar?: '); readln(req);
if req <>0 then
begin
reset(ficheiro);
seek(ficheiro,req-1);
read(ficheiro,aluno);
writeln;
writeln('Registon: ', filepos(ficheiro));
writeln('Nome ',aluno.nome, 'Idade: ',aluno.idade,'Peso: ',aluno.peso:2:2);
writeln('---------------------------------------------------');
close(ficheiro);
end;
writeln('Prime qualquer tecla para continuar');
readln;
end;

Procedure altera;
var reg: integer;
begin
clrscr;
reset(ficheiro);
writeln('O ficheiro contem',filesize(ficheiro),'registos');
writeln;
while not Eof(ficheiro) do
begin
read(ficheiro,aluno);
writeln('registos n ',filepos(ficheiro),'Nome: ',aluno.nome);
end;
writeln;
write('Que registos pretende alterar?: ');
readln(req);
if (req>0) and (req=filesize(ficheiro)) then
begin
seek(ficheiro,req-1);
read(ficheiro,aluno);
writeln('informacao actual do registo n$',filepos(ficheiro));
writeln('-----------------------');
writeln('Nome: ',aluno.nome);
writeln('idade: ',aluno.idade);
writeln('Peso: ',aluno.peso:2:2);
writeln('-----------------------');
writeln;
seek(ficheiro,req-1);
writeln('novos dados');
writeln('-----------------------');
write('Nome: '); read(aluno.nome);
write('idade: '); read(aluno.idade);
write('Peso: '); read(aluno.peso);
writeln('-----------------------');
write(ficheiro,aluno);
end;
close(ficheiro);
writeln('Prima qualquer tecla para continuar');
readkey;
end;

Function desenha_menu: char;
Begin
clrscr;
writeln('*****Menu de opcoes*****');
writeln('------------------------');
writeln('1 - Inserir registos');
writeln('2 - Alterar um registo');
writeln('3 - Listagem de todos os registos');
writeln('4 - Consultar um registo');
writeln('5 - Sair');
writeln('------------------------');
write('Opcao: ');
repeat
opcao:=readkey;
until (upcase(opcao)='I') or (upcase(opcao)= 'A') or (upcase(opcao)='L') or (upcase(opcao)='C');
desenha_menu:=upcase(opcao);
end;
begin
clrscr;
assign(ficheiro,'aluno.dat');
repeat
opcao:=desenha_menu;
clrscr;
case opcao of
'I': Insere;
'A': Altera;
'L': Lista;
'C': Consulta;
end;
until opcao='S';
end.


mas o meu professor pediu para eu meter isto

a) Diferentes tipos de dados (Inteiro, Real, Carácter, Cadeias de Caracteres);

b) Estruturas de Controlo
1. De decisão com base numa condição;
2. De selecção;
3. De repetição ou ciclos;
4. Ciclo com condição no inicio;
5. Ciclo com contador automático;

c) Estrutura de dados (Arrays – Vectores e Matrizes);

d) Registos;

e) Ficheiros de tipos definidos pelo utilizador;

será que me podiam ajudar?
fmipassos está offline Responder com Quote
Procurar todas as mensagens deste utilizador
Citar esta mensagem numa resposta
Colocar Resposta 


Mensagem neste Tópico
ajuda em programa pascal - filipe76 - 03-01-2010 16:55

Saltar Fórum:


Utilizadores a ver este tópico: 1 Visitante(s)