Zadatak 1.



#include <stdio.h>
#include <math.h>

int mesto(long n,long m)
{
   long k = 0,ind = 0, raz, i=1,d=0;
   raz = abs(m-n); ind = 0;
   while(i<=n)
   {
      d++;
      k = abs(m-((n/i)+(n%i)));
      if(k < raz)
      {
         raz = k;
         ind = d;
      }
      i *= 10;
   }
   return (d - ind + 1);
}

void main()
{
   long n,m;
   printf("Unesi n i m : ");
   scanf("%ld%ld",&n,&m);
   printf("Mesto razdvajanja : %d\n",mesto(n,m));
}





Zadatak 2.



#include <stdio.h>

typedef struct
{
   int mat[3][3];
   int n,m;
} TMatrica;

TMatrica matrice[20];

int moze(TMatrica a, TMatrica gl)
{
   int i,j,r,x,y;

   for(x=0;x<=gl.n-a.n;x++)
      for(y=0;y<=gl.m-a.m;y++)
      {
         r = 1;
         for(i=0;r&&(i<a.n);i++)
            for(j=0;r&&(j<a.m);j++)
               if((a.mat[i][j]==1)&&(gl.mat[x+i][y+j]==1)) r = 0;
         if(r) return r;
      }
   return 0;
}

void unos(TMatrica *a,char *poruka)
{
   int i,j;
   printf("Unesi dimenzije %s matrice : ",poruka);
   scanf("%d%d",&(a->n),&(a->m));
   printf("Unesi elemente matrice :\n");
   for(i=0; i < a->n ;i++)
      for(j=0;j < a->m;j++)
         scanf("%d",&a->mat[i][j]);
}

void main()
{
   TMatrica glavna;
   int i,b=0,br=0;

   unos(&glavna,"glavne");
   printf("Unesi broj ostalih matrica : "); scanf("%d",&br);
   for(i=0;i<br;i++)
   {
      unos(&matrice[i],"");
      b += moze(matrice[i],glavna);
   }
   printf("Broj trazenih matrica : %d\n",b);
}





Zadatak 3.



(define (resi l n)
  (if (null? l) 0
      (+ (treba l n) (dalje l n))
  )
)

(define (brel l)
  (if (null? l) 0
      (+ 1 (brel (cdr l)))
  )
)

(define (treba l n)
  (if (> (brel l) n) 1 0)
)

(define (dalje l n)
  (cond ((null? l) 0)
        ((atom? (car l)) (dalje (cdr l) n))
        (t (+ (treba (car l) n) (dalje (cdr l) n)))
  )
)

Zadatak 4.



formiraj(L,R) :- sd(L,S,N), N1 is N-1, form(L,S,N1,R).

sd([],0,0).
sd([G|R],S,N) :- sd(R,S1,N1), S is S1 + G, N is N1 + 1.

form([],_,_,[]).
form([A|R1],S,N,[B|R2]) :- form(R1,S,N,R2), B is (S-A)/N.