girl_tecnology
(usa Gentoo)
Enviado em 28/05/2008 - 17:03h
program media_estudante;
uses crt; {tb-trabalho, nf- nota de frequencia,
j-indice de teste,c-indice de tb,st1-soma dos teste
st2-soma dos trabalhos,p-numero de testes,qnumero de trabalho
opcao}
type estudante=record
nome : string;
nf,st1,st2 : real;
idade : integer;
teste :array[1..5] of real;
tb : array[1..3] of real;
end;
var e:array[1..3] of estudante;
i,j,c: integer;
op: integer;
arq:text;
procedure criacao_de_dados;
begin {begin da criacao de dados}
assign(arq,'notas.txt');
rewrite(arq);
for i:=1 to 3 do
begin {begin do primeiro ciclo}
writeln('introduz o nome do ',i,' estudante:');
readln(e[i].nome);
writeln('introduz a idade do ',i,' estudante:');
readln(e[i].idade);
writeln(arq,e[i].nome);
writeln(arq,e[i].idade);
for j:=1 to 5 do
begin
writeln('introduz nota do ',j,' teste do ',i,' estudante(0_20):');
readln(e[i].teste[j]);
writeln(arq,e[i].teste[j]:6:2);
end;
for c:=1 to 3 do
begin
writeln('introduz a nota do ',c,' trabalho do ',i,' estudante:');
readln(e[i].tb[c]);
writeln(arq,e[i].tb[c]:6:2);
end;
end;{end do primeiro ciclo}
close(arq);
readln
end; {end da procedure criacao de dados}
procedure listagem;
begin
assign(arq,'notas.txt');
reset(arq);
while not eof (arq) do
begin
readln(arq,e[i].nome);
readln(arq,e[i].idade);
readln(arq,e[i].teste[j]);
readln(arq,e[i].tb[c]);
for i:=1 to 3 do
begin
e[i].st1:=0; {soma dos testes}
for j:=1 to 5 do
begin
e[i].st1:=(e[i].st1+e[i].teste[j]);
end;
e[i].st2:=0; {soma dos trabalhos}
for c:=1 to 3 do
begin
e[i].st2:=(e[i].st2+e[i].tb[c]);
end;
e[i].nf:=((e[i].st1+e[i].st2)/8);
end;
for i:=1 to 3 do
writeln('nome ',i,': ', e[i].nome);
for i:=1 to 3 do
writeln('idade ',i,': ', e[i].idade);
for i:=1 to 3 do
writeln('a nota de frequencia do ',i,' estudante e: ', e[i].nf:8:2);
for i:=1 to 3 do
if e[i].nf>=14 then
writeln('',i,' estudante dispensado')
else if e[i].nf>=10 then
writeln('',i,' estudante admitido')
else
writeln('',i,' estudante reprovado');
end;
close(arq);
readln;
end;
begin{programa principal}
clrscr;
repeat
writeln('*******MENU*******');
writeln('1-criacao de dados');
writeln('2-listagem');
writeln('3- terminar');
writeln('qual e a opcao');
readln(op);
case op of
1:criacao_de_dados;
2:listagem;
else
end;
until (op=3);
readln
end.
alguem sabe me dizer porque qdo eu digito 2 para chamar a procedure listagem da erro (invalid numeric format) mas quando chamo a procedure criacao de dados nao ha nenhum problema. como eu posso corigir para a procedure listagem correr direitinho, por favor ajuda gente e muito importante. agradeco desde ja kem ajudar. bjs