AJUTATI-MA VA ROG URGENT TREBUIE
la pascal
fiecare linie a unui fisier test contine urmatoarele date,separate prin spatii:
-numarul de ordine(integer)
-numele(un string ce nu contine spatii)
-prenumele(un string ce nu contine spatiu)
-nota la disciplina 1(real)
-nota la disciplina 2(real)
-nota la disciplina 3(real).
Elaborati un program care:
a)elaboreaza o copie de rezerva a fisierului in studiu
b)afiseaza continutul fisierului pe ecran
c) reeaza un fisier text liniile caruia contin urmatoarele date separate prin spatii
-numarul de ordine(integer)
-numele(string)
-prenumale(string)
-nota medie(real)
Răspunsuri la întrebare
Răspuns:
program FisierePascal_a;
var f,g:text;
linie:string;
begin
assign(f,'date.txt');
reset(f);
assign(g,'copie.txt');
rewrite(g);
while not eof(f) do
begin
readln(f,linie);
writeln(g,linie);
end;
close(f); close(g);
end.
----------------------------------------------
program FisierePascal_b;
var f:text;
linie:string;
begin
assign(f,'date.txt');
reset(f);
while not eof(f) do
begin
readln(f,linie);
writeln(linie);
end;
close(f);
end.
Explicație:
program FisierePascal_c;
var f,g:text;
linie,nr, nume, pren,n1,n2:string;
nota1,nota2,nota3,media:real;
poz,cod:integer;
begin
assign(f,'date.txt');
reset(f);
assign(g,'media.txt');
rewrite(g);
while not eof(f) do
begin
readln(f,linie);
poz:=1; while linie[poz]<>' ' do inc(poz);
nr:=copy(linie,1,poz);
write(g,nr);
delete(linie,1,poz);
poz:=1; while linie[poz]<>' ' do inc(poz);
nume:=copy(linie,1,poz);
write(g,nume);
delete(linie,1,poz);
poz:=1; while linie[poz]<>' ' do inc(poz);
pren:=copy(linie,1,poz);
write(g,pren);
delete(linie,1,poz);
poz:=1; while linie[poz]<>' ' do inc(poz);
n1:=copy(linie,1,poz-1);
val(n1,nota1,cod);
delete(linie,1,poz);
poz:=1; while linie[poz]<>' ' do inc(poz);
n2:=copy(linie,1,poz-1);
val(n2,nota2,cod);
delete(linie,1,poz);
val(linie,nota3,cod);
media:=(nota1+nota2+nota3)/3;
writeln(g,' ',media:0:2);
end;
close(f); close(g);
end.
writeln(g,' ',media:0:2);
trebuie să adaugi instrucţiunea
media:=int(media*100)/100;