niepok

garaż wielopoziomowy

Jan 25th, 2015
175
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pascal 1.94 KB | None | 0 0
  1. program garazwielopoziomowy;
  2.  
  3. var poziomy : integer;  {Liczba poziomow garazu}
  4. var garaz : array[1..500] of integer;  {Aktualny stan garazu}
  5. var miejsca : array[1..500] of integer;  {Dostêpne w garazu miejsca}
  6. var maxWaga : array[1..500] of integer; {Maksymalna waga samochodu}
  7. var cmd : integer;  {Polecenie}
  8. var masa : integer;  {Masa wjezdzajacego samochodu}
  9. var poziom : integer; {Poziom, z ktorego wyjezdza samochod}
  10. var wjedzie : boolean;  {Czy samochod moze wjechac}
  11.  
  12. var i : integer;  {iterator do wykorzystania w petlach}
  13.  
  14. begin
  15.     cmd := -1;  {Inicjalizacja zmiennej}
  16.  
  17.     write('Prosze podac liczbe poziomow garazu (1-500): ');
  18.     readln(poziomy);
  19.     for i:=poziomy downto 1 do  {Wprowadzanie informacji o garazu}
  20.     begin
  21.         write('Podaj liczbe miejsc na poziomie ', i, ': ');
  22.         readln(miejsca[i]);
  23.         garaz[i] := 0;  {Zerowanie zmiennej}
  24.         if i>1 then
  25.         begin
  26.             write('Podaj maksymalny ciezar samochodu na poziomie ', i, '(kg): ');
  27.             readln(maxWaga[i]);
  28.         end
  29.     end;
  30.  
  31.     maxWaga[1] := 32767;  {Maksymalna wartoœæ, czyli poziom dla najciezszych}
  32.  
  33.     repeat  {Obsluga garazu}
  34.     begin
  35.         write('Polecenie (1=wjazd, 2=wyjazd, 0=koniec): ');
  36.         readln(cmd);
  37.  
  38.         if cmd = 1 then  {Wjazd}
  39.         begin
  40.             write('Podaj mase samochodu (kg): ');
  41.             readln(masa);
  42.  
  43.             wjedzie := false;
  44.             for i:=poziomy downto 1 do  {Sprawdza od gory, czy moze wjechac na dany poziom}
  45.             begin
  46.                 if (masa < maxWaga[i]) AND (garaz[i] < miejsca[i]) AND (wjedzie = false) then  {Wjedz na poziom i}
  47.                 begin
  48.                     wjedzie := true;
  49.                     garaz[i] := garaz[i]+1;
  50.                     writeln('Poziom ', i);
  51.                 end;
  52.             end;
  53.  
  54.             if wjedzie = false then  {Nie mo¿e wjechac na zaden poziom}
  55.             begin
  56.                 writeln('Nie ma miejsca');
  57.             end;
  58.         end;
  59.  
  60.         if cmd = 2 then  {Wyjazd}
  61.         begin
  62.             write('Podaj poziom: ');
  63.             readln(poziom);
  64.             if garaz[poziom] > 0 then
  65.             begin
  66.                 garaz[poziom] := garaz[poziom]-1;
  67.             end;
  68.         end;
  69.  
  70.         if cmd = 0 then exit();
  71.     end
  72.     until cmd = 0;
  73. end.
Advertisement
Add Comment
Please, Sign In to add comment