Pozdrav, imam neki zadatak sastoji se od vise tacaka, stigao sam do jedne, zapelo mi je nosto...naime, taj slog treba da sadrzi ime, prezime, prosek...prvo sam trebao da kreiram datoteku slogova, zatim da ucitam niz u datoteku, nakon toga i jos necega, dobio sam da sortiram niz po proseku, e tu je zapelo, nisata se ne desava, mala pomoc mi treba, pretpostavljam da u proceduri sortiraj nesto ne valja. Evo koda:
Hvala..
Code:
program slogoviVezba1;
uses crt;
type
ucenik=record
ime,prezime:string;
prosek:real;
opr,neopr,vladanje:integer;
end;
FileUcenik=file of ucenik;
niz=array[1..100] of ucenik;
var
f:FileUcenik;
a:niz;
n,i,sO,sNO:integer;
osoba:ucenik;
procedure PisiSlog(var osoba:ucenik);
begin
with osoba do
begin
writeln('ime: ',ime);
writeln('prezime: ',prezime);
writeln('prosek: ',prosek:6:2);
writeln('opravdani: ',opr);
writeln('neopravdani: ',neopr);
writeln('vladanje: ',vladanje);
writeln('--------------------');
end;
end;
{---sortiranje---}
procedure razmeni(var a,b:ucenik);
var
pom:ucenik;
begin
a:=pom;
a:=b;
b:=pom;
end;
procedure sortiraj(var a:niz; n:integer);
var
i,j:integer;
begin
for i:=1 to n-1 do
for j:=1 to n-i do
if a[j].prosek>a[j+1].prosek then
razmeni(a[j],a[j+1]);
end;
{---main---}
begin
clrscr;
assign(f,'UcenikVezba.dat');
reset(f);
while not eof(f) do
begin
i:=i+1;
read(f,osoba);
a[i]:=osoba;
end;
n:=i;
for i:=1 to n do
PisiSlog(a[i]);
for i:=1 to n do
begin
sO:=sO+a[i].opr;
sNO:=sNO+a[i].neopr;
end;
writeln('Ukupan broj opravdanih je: ',sO,', a ukupan broj neopravdanih je: ',sNO);
sortiraj(a,n);
close(f);
repeat until keypressed;
end.
program slogoviVezba1;
uses crt;
type
ucenik=record
ime,prezime:string;
prosek:real;
opr,neopr,vladanje:integer;
end;
FileUcenik=file of ucenik;
niz=array[1..100] of ucenik;
var
f:FileUcenik;
a:niz;
n,i,sO,sNO:integer;
osoba:ucenik;
procedure PisiSlog(var osoba:ucenik);
begin
with osoba do
begin
writeln('ime: ',ime);
writeln('prezime: ',prezime);
writeln('prosek: ',prosek:6:2);
writeln('opravdani: ',opr);
writeln('neopravdani: ',neopr);
writeln('vladanje: ',vladanje);
writeln('--------------------');
end;
end;
{---sortiranje---}
procedure razmeni(var a,b:ucenik);
var
pom:ucenik;
begin
a:=pom;
a:=b;
b:=pom;
end;
procedure sortiraj(var a:niz; n:integer);
var
i,j:integer;
begin
for i:=1 to n-1 do
for j:=1 to n-i do
if a[j].prosek>a[j+1].prosek then
razmeni(a[j],a[j+1]);
end;
{---main---}
begin
clrscr;
assign(f,'UcenikVezba.dat');
reset(f);
while not eof(f) do
begin
i:=i+1;
read(f,osoba);
a[i]:=osoba;
end;
n:=i;
for i:=1 to n do
PisiSlog(a[i]);
for i:=1 to n do
begin
sO:=sO+a[i].opr;
sNO:=sNO+a[i].neopr;
end;
writeln('Ukupan broj opravdanih je: ',sO,', a ukupan broj neopravdanih je: ',sNO);
sortiraj(a,n);
close(f);
repeat until keypressed;
end.
Hvala..