Visa elektrotehnicka skola, Beograd
Ласло Краус
Програмирање I
Први колоквијум
Прва група
24. 4. 2005

Задаци: 1 2 3 | Напомене | Решења: 1 2 3

Поставка задатка 1 (50 поена) (решење | садржај)

Саставити структурирани дијаграм тока и написати на језику C програм за табелирање вредности следећег израза за све вредности xmin  x  xmax са кораком Δx:

Све потребне податке читати са главног улаза, а резултате писати на глани излаз.

Поставка задатка 2 (50 поена) (решење | садржај)

Саставити структурирани дијаграм тока и написати на језику C програм за налажење броја елемената у низу целих бројева који су без остатка дељиви са 3 и броја елемената који нису дељиви без остатка са 5. Програм треба да прочита дужину низа, у току читања низа иврши тражену обраду, испише добијене резултате и да понавља претходне кораке све док за дужину низа не прочита негативну вредност.

Поставка задатка 3 (50 поена) (решење | садржај)

Саставити структурирани дијаграм тока и написати на језику C програм за одређивање броја битова једнаких један на парним и на непарним местима у 32-битном целобројном податку. Програм треба да прочита број у хексадецималном бројевном систему, изврши тражену обраду, испише добијени реултат и да понавља претходне кораке све док не прочита број 1234.


Напоменe (садржај)


Решење задатка 1 (поставка | садржај)

#include <stdio.h>
main () {
  double x, y, a, b, xmin, xmax, dx;
  int i, n;
  printf ("n? "); scanf ("%d", &n);
  printf ("xmin, xmax, dx? ");
  scanf ("%lf%lf%lf", &xmin, &xmax, &dx);
  for (x=xmin; x<=xmax; x+=dx) {
    for (b=0, y=a=i=1; i<=n; i++) {
      a *= x;
      b += (2*i-1) / a;
      y *= b;
    }
    printf ("%10.2f %10.2f\n", x, y);
  }
}

Решење задатка 2 (поставка | садржај)

#include <stdio.h>
main {
  int n, i, a, n3, n5;
  while (1) {
    printf ("n? "); scanf ("%d", &n);
  if (n < 0) break;
    printf (niz? ");
    for(n3=n5=0,i=1; i<=n; i++) {
      scanf ("%f", &a);
      if (a%3 == 0) n3++;
      if (a%5 != 0) n5++;
    }
    printf ("n3,n5= %d %d\n", n3, n5);
  }
}

Решење задатка 3 (поставка | садржај)

#include <stdio.h>
main {
  unsigned long k; int i, b, par, nep;
  while (1) {
    printf ("k? "); scanf ("%lx", &k);
  if (k == 0x1234) break;
    for (par=nep=i=0; i<32; i++, k>>=1) {
      b = k & 1;
      if (i%2 == 0) par += b;
        else        nep += b;
    }
    printf("par,nep= %d %d\n", par, nep);
  }
}
(садржај)
         
Аутор: Ласло Краус
Е-пошта: kraus@etf.rs

Copyright © 2005, Laslo Kraus
Последња ревизија: 22.4.2005.