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

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

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

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

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

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

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

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

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

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

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


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


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

a) -1024≤ i ≤1023           1.90×10-6 ≅ 2-19 ≤ 6.10×10-5 ≅ 2-14 ≤ |r| ≤ 64512

б) i = -549,           r = -0.921875

в) i = 7D216,           r = 3FF16

Решење задатка 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=0, 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 a, poz, neg;
  int n, i;
  printf ("n? "); scanf ("%d", &n);
  while (n >= 0) {
    printf (niz? ");
    for (neg=poz=i=0; i<n; i++) {
      scanf ("%f", &a);
      if (a < 0) neg += a*a; else poz += a*a*a;
    }
    printf ("neg= %f\n", neg);
    printf ("poz= %f\n", poz);
    printf ("\nn? "); scanf ("%d", &n);
  }
}
(садржај)
         
Аутор: Ласло Краус
Е-пошта: kraus@etf.rs

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