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

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

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

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

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

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

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

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

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

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

Саставити на Pascal-у потпрограм за израчунавање вредности функције f(x):

Саставити на Pascal-у главни програм који врши табелирање горње функције f(x) за све вредности xminxxmax са кораком Δx.


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


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

a) -1024≤i≤1023       1.56×10-2≅2-6≤|rnorm|≤254       2.44×10-4≅2-12≤|r|≤254

б) i=-528,       r=-1.75

в) i=0C716,       r=3A416

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

program Granice;
  const NMax = 100;
  type  Niz = array [1..NMax] of Real;
  var   A: Niz;
        N, I: Integer;
        B: Real;
begin
  repeat
    Write ('n? '); ReadLn (N);
  if (N>0) and (N<=NMax) then begin
    Write ('A?  ');
    for I:=1 to N do Read(A[I]); ReadLn;
    Write ('b? '); ReadLn (B);
    Prvi := 0; Posl := 0;
    for I := 1 to N do begin
      if A[I] = B then begin
        if Prvi = 0 then Prvi := I;
        Posl := I
      end
    end;
    WriteLn ('Prvo mesto:      ', Prvi);
    WriteLn ('Poslednje mesto: ', Posl);
  end until (N<=0) or (N>NMax)
end.

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

program Tabeliranje;
  var X, XMin, XMax, DX: Real;
      N: Integer;

  function F(X:Real, N:Integer): Real;
    var S, P: Real;
        I: Integer;
  begin
    S := 0; P := 1;
    for I := 0 to N do begin
      S := S + 1 / (1 + P);
      P := P * X
    end
  end {function};

begin {program}
  WriteLn ('Xmin, Xmax, dX? );
  ReadLn (XMin, XMax, DX);
  WriteLn ('N? '); ReadLn (N);
  WriteLn;
  WriteLn ('x':8, 'f(x)':8);
  for I := 1 to 16 do Write('=');
  WriteLn;
  X := XMin;
  while X <= XMax do begin
    WriteLn (X:8:2, F(X,N):8:2);
    X := X + DX
  end
end {program}.
(садржај)
         
Аутор: Ласло Краус
Е-пошта: kraus@etf.rs

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