Zadatak 1.



int complement(int *a, int na, int *b, int nb)
{
   int br = 0, i = 0;
   while((i<na)&&(i<nb))
   {
      br += (*(a+i)+*(b+i) == 3);
      i++;
   }
   return br;
}




Zadatak 2.



int min(int a,int b)
{
   return (a<b)?a:b;
}

int max(int a,int b)
{
   return (a>b)?a:b;
}

void formiraj(int n, int a[][20])
{
   int i,j;
   for(i=0;i<n;i++)
      for(j=0;j<n;j++)
         if(i+j < n) a[i][j] = 2 * min(i,j) + 1;
         else a[i][j] = 2 * (n - max(i,j));
}




Zadatak 3.



(define (suma l p k)
  (- (sumaDo l k 1) (sumaDo l (- p 1) 1))
)

(define (sumaDo l nivo tren)
  (cond ((null? l) 0)
        ((> tren nivo) 0)
        ((atom? (car l)) (+ (car l) (sumaDo (cdr l) nivo tren)))
        (t (+ (sumaDo (car l) nivo (+ 1 tren)) (sumaDo (cdr l) nivo tren)))
  )
)

Zadatak 4.



pascal(N,L) :- form(N,0,L).

form(N,K,[]) :- N < K,!.
form(N,K,[G|R]) :- elem(N,K,G1), G is G1, K1 is K+1, form(N,K1,R).

elem(N,K,X) :- fakt(N,N1), fakt(K,K1), Kp is N-K, fakt(Kp,Kp1), X is N1 // (K1*Kp1).

fakt(0,1).
fakt(N,X) :- N1 is N-1, fakt(N1,X1), X is N*X1.