[ Passwd @ 07.09.2005. 15:11 ] @
Radim neke zadatke iz pascala i evo sta treba: iz datoteke c:\ulaz.txt sortirati datume i godine te ih ispisati na ekran.. ulaz.txt: 15.6.1989. 3.2.1222. 1.4.2003. 6.4.1909. 8.2.1111. .................... program ucita tu datoteku, sortira ju i ispise...: 8.2.1111. 3.2.1222. 6.4.1909. 15.6.1989. 1.4.2003. Evo moga koda (za koji mislim da je u redu) ali on izbaci rezultat kao da nista nije sortirao...orvo ispise datoteku kakva je , a onda soritanu.. Code: program sortiranje; uses crt; var f:text; duz,n,x,y:integer; s:array [1..100] of string; m1,m2,m3:array [1..10] of string; z1,z2,z3:array [1..10] of string; begin clrscr; assign(f,'c:\ulaz.txt'); reset(f); duz:=0; while not eof(f) do begin inc(duz); readln(f,s[duz]); writeln(s[duz]); n:=pos('.',s[duz]); m1[duz]:=copy(s[duz],1,n-1);//dani u duz-toj godini iz datoteke delete(s[duz],1,n); n:=pos('.',s[duz]); m2[duz]:=copy(s[duz],1,n-1);//mjeseci u duz-toj godini iz datoteke delete(s[duz],1,n); n:=pos('.',s[duz]); m3[duz]:=copy(s[duz],1,n-1);//godina u duz-toj godini iz datoteke delete(s[duz],1,n); end; for y:=duz-1 downto 1 do for x:=1 to x do begin if m3[x]>m3[x+1] then//soritra godine i zamjenjuje dan, mjesec,godinu sa slijedecom ukoliko je m3[x]>m3[x+1] (godina x-ta po redu veca od godine x+1 po redu) begin z1[x]:=m1[x]; z2[x]:=m2[x]; z3[x]:=m3[x]; m1[x]:=m1[x+1]; m2[x]:=m2[x+1]; m3[x]:=m3[x+1]; m1[x+1]:=z1[x]; m2[x+1]:=z2[x]; m3[x+1]:=z3[x]; end; end; writeln; writeln; writeln; for x:=1 to duz do begin writeln(m1[x],'.',m2[x],'.',m3[x],'.');//ispisuje sortirano.... end; readln; end. Volio bih kada bi na ovom mom kodu uocili "greske", a ne da radite novi kod.. ![]() Edit:ako su u datoteci recimo 10 datuma sa istom godinom, nije bitno kako ce biti sortirano.. [Ovu poruku je menjao Passwd dana 07.09.2005. u 16:14 GMT+1] |