Advertisement
asmodeus94

numerySlajdow

Nov 23rd, 2014
200
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pascal 2.67 KB | None | 0 0
  1. program slajdyNumery;
  2. uses crt;
  3. var
  4. f : byte;
  5. odK, doK, rzeczywLiczbS, liczbaS,
  6. aktStr, strNiep, strParz, a : integer;
  7. aktNP : byte;
  8. kolN, kolP, strA, strAktStr : string;
  9. t : text;
  10.  
  11. function cutLastChar(var str : string) : string;
  12.    var tmpStr : string;
  13. begin
  14.      tmpStr := '';
  15.      for a := 1 to Length(str) - 1 do
  16.      begin
  17.           tmpStr := tmpStr + str[a];
  18.      end;
  19.      cutLastChar := tmpStr;
  20. end;
  21.  
  22. function odmiana(var liczba : integer) : string;
  23. var
  24.    strP : string;
  25. begin
  26.      strP := 'stron';
  27.      if(liczba = 1) then
  28.         strP := 'strona'
  29.      else if((liczba > 1) AND (liczba < 5)) then
  30.         strP := 'strony';
  31.      odmiana := strP;
  32. end;
  33.  
  34. begin clrscr;
  35.       f := 2;
  36.       REPEAT
  37.             if f = 0 then
  38.             begin
  39.                  clrscr;
  40.                  writeln('Podany przez ciebie przedzial sladjow jest nieprawidlowy');
  41.                  readkey;
  42.             end;
  43.             writeln('Podaj przedzial slajdow, jaki bedziesz chcial drukowac');
  44.             write('Od: ');
  45.             readln(odK);
  46.             write('Do: ');
  47.             readln(doK);
  48.             if (odK >= doK) OR (odK <= 0) OR (doK <= 0) then f := 0 ELSE f := 1;
  49.       UNTIL f = 1;
  50.       write('Ile slajdow chcesz miec na stronie? Podaj liczbe: ');
  51.       readln(liczbaS);
  52.       rzeczywLiczbS := doK - odK + 1;
  53.       if rzeczywLiczbS < liczbaS then
  54.       begin
  55.            writeln('Liczba slajdow jaka miec chcesz na stronie przewyzsza liczbe wszystkich');
  56.            write('slajdow, ktore chcesz wydrukowac');
  57.            readkey;
  58.            halt;
  59.       end;
  60.  
  61.       assign(t, 'strony.txt');
  62.       rewrite(t);
  63.  
  64.       strNiep := 0;
  65.       strParz := 0;
  66.       aktNP := 0;
  67.       aktStr := 0;
  68.       kolN := '';
  69.       kolP := '';
  70.       for a := odK to doK do
  71.       begin
  72.           aktStr := a + liczbaS - 1;
  73.           if aktStr > doK then aktStr := doK;
  74.           if aktNP = 0 then
  75.           begin
  76.                str(a, strA);
  77.                str(aktStr, strAktStr);
  78.                kolN := kolN + strA + '-' + strAktStr + ',';
  79.                aktNP := 1;
  80.                Inc(strNiep);
  81.           end ELSE
  82.               begin
  83.                    str(a, strA);
  84.                    str(aktStr, strAktStr);
  85.                    kolP := kolP + strA + '-' + strAktStr + ',';
  86.                    aktNP := 0;
  87.                    Inc(strParz);
  88.               end;
  89.           a := aktStr;
  90.       end;
  91.  
  92.       writeln(t, 'Nieparzyste: ', cutLastChar(kolN), ' - łącznie ', strNiep, ' ',odmiana(strNiep));
  93.       if(liczbaS <> doK - odK + 1) then
  94.          write(t, 'Parzyste: ', cutLastChar(kolP), ' - łącznie ', strParz, ' ', odmiana(strParz));
  95.       close(t);
  96. end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement