Felhasználói eszközök

Eszközök a webhelyen


inf-prog-fszi:futar

Futár

futar.pas
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.
inf-prog-fszi/futar.txt · Utolsó módosítás: 2017/06/19 12:28 szerkesztette: beistvan