vcs nao vao me deixar na mao!!

1. vcs nao vao me deixar na mao!!

madona raja
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


  


2. Re: vcs nao vao me deixar na mao!!

Rafael
rafastv

(usa Slackware)

Enviado em 28/05/2008 - 20:26h

Porque quando você lê dados de um arquivo por exemplo em readln(arq,e[i].idade);, estes estão sob o formato de Caracteres ou String.
Você precisa convertê-los para números com a função Val antes de atribuí-los ao seu registro e.

Boa sorte,


3. Eita!!!!

Michele Oliveira Soares
pink

(usa Ubuntu)

Enviado em 29/05/2008 - 13:49h

Seja muito bem vinda ao VOL!!!
Aqui ninguém deixa ninguém na mão viu? hehehe
O que acontece é que as vezes os tópicos passam depercebidos pelos usuários, mas aqui tem muita gente boa disposta a ajudar ou pelo menos palpitar hehehe
Bjo

P.S.: amanhã eu te dou resposta sobre o programa conforme o combinado.....



5. brigadao

madona raja
girl_tecnology

(usa Gentoo)

Enviado em 30/05/2008 - 15:18h

eu acho que vcs me ajudaram a identificar o erro eu tenho de converte, para numero como vou fazer exa conversao e que nao vai ser mole nao, mas pelo menos ja sei pk esta dando erro obrigado e pro meto vos encomodar se eu nao conseguir







Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts