program futar; type futaros=record nap: integer; fuvarsz: integer; km: integer; end; var i,j,k,l,n,kezd,veg,szabadnap,maxi, napmin,napmax,sum,ut,ar:integer; csere: futaros; T:array[1..1000] of futaros; f:text; function ut_ar(km:integer):integer; begin case km of 1..2: ut_ar:=500; 3..5: ut_ar:=700; 6..10: ut_ar:=900; 11..20: ut_ar:=1400; 21..30: ut_ar:=2000; else ut_ar:= -1; end; end; begin Assign(f,'tavok.txt'); writeln('1. feladat'); reset(f); i:=0; while not eof(f) do begin inc(i); read(f,T[i].nap); read(f,T[i].fuvarsz); readln(f,T[i].km); end; close(f); n:=i; writeln(n,' sor beolvasva a "tavok.txt" fajlbol.'); { for i:=1 to n do writeln(T[i].nap,' ',T[i].fuvarsz,' ',T[i].km); } writeln('2. feladat'); napmin:=T[1].nap; napmax:=T[1].nap; for i:=2 to n do begin if T[i].nap < napmin then napmin:=T[i].nap; if T[i].nap > napmax then napmax:=T[i].nap; end; for i:=1 to n do if (T[i].nap=napmin) and (T[i].fuvarsz=1) then writeln('Az elso nap elso fuvara ',T[i].km,' km volt'); writeln('3. feladat'); maxi:=1; for i:=1 to n do if (T[i].nap=napmax) and (T[i].fuvarsz>T[maxi].fuvarsz) then maxi:=i; writeln('Az utolso nap utolso fuvara ',T[maxi].km,' km volt'); writeln('4. feladat'); for szabadnap:=napmin to napmax do begin i:=szabadnap; while (i<=n) and (szabadnap<>T[i].nap) do inc(i); if i>n then writeln('szabadnap: ',szabadnap); end; writeln('5. feladat'); maxi:=1; for i:=2 to n do if T[i].fuvarsz>T[maxi].fuvarsz then maxi:=i; writeln(T[maxi].nap,'. napon volt a legtobb fuvar'); writeln('6. feladat'); for i:=napmin to napmax do begin write(i,'.nap: '); sum:=0; for j:=1 to n do if T[j].nap=i then sum:=sum+T[j].km; writeln(sum:2, ' km'); end; writeln('7. feladat'); writeln('Irja be az ut hosszusagat km-ben: '); readln(ut); ar:=ut_ar(ut); if ar<0 then writeln('Nem megfelelo ertek') else writeln('Dijazas: ',ut*ar,' Ft'); { if (ut>=1) and (ut<=2) then ar:=500; if (ut>=3) and (ut<=5) then ar:=700; if (ut>=6) and (ut<=10) then ar:=900; if (ut>=11) and (ut<=20) then ar:=1400; if (ut>=21) and (ut<=30) then ar:=2000; if (ut<1) or (ut>30) then writeln('Nem megfelelo ertek');} writeln('8. feladat'); for i:=1 to n-1 do for j:=i+1 to n do if T[j].nap<T[i].nap then begin csere:=T[i]; T[i]:=T[j]; T[j]:=csere; end; writeln('napmin = ', napmin, ' napmax = ',napmax); veg:=0; kezd:=1; l:=1; for k:=napmin to napmax do begin kezd:=l; while (l<=n) and (k=T[l].nap) do inc(l); veg:=l-1; if kezd <> l then begin writeln('kezd=',kezd:3,' veg=',veg:3,' k= ',k); for i:=kezd to veg-1 do for j:=i+1 to veg do if T[j].fuvarsz<T[i].fuvarsz then begin csere:=T[i]; T[i]:=T[j]; T[j]:=csere; end; end; {if} end; {for} Assign(f,'dijazas.txt'); rewrite(f); for i:=1 to n do writeln(f,T[i].nap,'.nap ',T[i].fuvarsz,'.ut: ',ut_ar(T[i].km), ' Ft'); writeln(n,' sor kiirva a "dijazas.txt" fajlba.'); close(f); writeln('9. feladat'); sum:=0; for i:=1 to n do sum:=sum+ut_ar(T[i].km); writeln('A heti kereset az ',sum,' Ft'); readln; end.