Visa elektrotehnicka skola, Beograd
Ласло Краус
Програмирање I
Први колоквијум
Друга група
7. 12. 2002

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

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

На неком 12-битном рачунару негативни цели бројеви се кодирају помоћу пуног комплемента, а реални бројеви имају структуру seeeemmmmmmm, где су s - предзнак броја, e - битови бинарног експонента са померајем 7 и m - битови мантисе са скривеним битом (нормализована мантиса је 1≤М<2).

а) Колики је опсег означених целих бројева и реалних бројева на описаном рачунару?

б) Колика је децимална вредност меморијске локације у којој се налази 26658 ако је то означени цели број и ако је то реални број?

в) Који је садржај меморијске локације ако се у њој налази број -25110 као означени цели број и као реални број?

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

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

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

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


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


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

a) -2048≤ i ≤2047           1.22×10-4 ≅ 2-13 ≤ 1.56×10-2 ≅ 2-6 ≤ |r| ≤ 255

б) i = 1461,           r = 22.625

в) i = 74058,           r = 75738

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

#include <stdio.h>
main () {
  double x, y, z, 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 (y=z=i=1; i<=n; i++) { z *= x*x; y *= 1+1/z); }
    printf ("%10.2f %10.2f\n", x, y);
  }
}

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

#include <stdio.h>
main {
  float s;
  int n, i, a, k;
  printf ("n? "); scanf ("%d", &n);
  while (n >= 0) {
    printf (niz? ");
    for (s=k=i=0; i<n; i++) {
      scanf ("%d", &a);
      if (a%3==0 && a%5!=0) { s += a; k++; }
    }
    if (k) s /= k;
    printf ("s= %f\n", s);
    printf ("\nn? "); scanf ("%d", &n);
  }
}
(садржај)
         
Аутор: Ласло Краус
Е-пошта: kraus@etf.rs

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