Guest User

Untitled

a guest
May 20th, 2018
145
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pascal 2.44 KB | None | 0 0
  1. program KOLO0;  {Dana jest duża tablica typu tab=array[1..n] of integer. Proszę napisać funkcję, która
  2. zwraca informację, czy w tablicy zachodzi następujący warunek: „wszystkie elementy, których
  3. indeks jest elementem ciągu Fibonacciego są liczbami złożonymi, a wśród pozostałych
  4. przynajmniej jedna jest liczbą pierwszą”.}
  5. const
  6.      n=100;
  7.  
  8. type
  9.     tablica = array [1..n] of integer;
  10.     tab = array [1..n] of boolean;
  11.  
  12. var
  13.    i,s :integer;
  14.    t :tablica;
  15.    f :tab;
  16.  
  17.    procedure fib(var t:tab);
  18.    var
  19.       i,a,b :integer;
  20.    begin
  21.              for i:= 2 to s do
  22.                  f[i]:= false;
  23.  
  24.              t[1]:=true;
  25.              a:=1;
  26.              b:=1;
  27.              while b<s do
  28.                    begin
  29.                          b:=b+a;
  30.                          a:=b-a;
  31.                          t[b]:=true;
  32.                    end
  33.    end;
  34.  
  35.  
  36. function zlozona(a: integer) :boolean;
  37.          var
  38.             i :integer;
  39.          begin
  40.               zlozona:= false;
  41.               i:=2;
  42.               repeat
  43.                     if (a mod i)=0 then
  44.                        zlozona:= true
  45.                     else
  46.                         i:= i + 1;
  47.               until (a=i) or (zlozona);
  48.  
  49.          end;
  50.  
  51. function sprawdz(t:tablica) :boolean;
  52.          var
  53.             war1,war2 :boolean;
  54.  
  55.          begin
  56.               sprawdz:= false;
  57.               war1:= false;
  58.               war2:= false;
  59.  
  60.               for i:=1 to s do
  61.                   if not f[i] then
  62.                      if war2 then
  63.                             begin
  64.                                  if not (zlozona(t[i])) then
  65.                                     war2:= true;
  66.                             end
  67.                   else
  68.                       if zlozona(t[i]) then
  69.                         war1:=true;
  70.  
  71.  
  72.                if war1 and war2 then
  73.                   sprawdz:= true;
  74.          end;
  75.  
  76. procedure wprowadz(var t:tablica);
  77. begin
  78.           write('Podaj ilosc elementow tablicy: ');
  79.           readln(s);
  80.           for i:=1 to s do
  81.               begin
  82.                    write('Podaj ',i,' element tablicy: ');
  83.                    readln(t[i]);
  84.               end;
  85.           write('Tablica: ');
  86.           for i:=1 to s do
  87.               write(t[i],' ');
  88.           writeln;
  89. end;
  90.  
  91. begin
  92.  
  93.      wprowadz(t);
  94.      fib(f);
  95.  
  96.      if sprawdz(t) then
  97.         writeln('TAK')
  98.      else
  99.          writeln('NIE');
  100.  
  101. readln;
  102. end.
Add Comment
Please, Sign In to add comment