Visa elektrotehnicka skola, Beograd
Ласло Краус
Програмирање I
Допунски први колоквијум
8. 1. 1999

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

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

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

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

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

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

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

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

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

Саставити потпрограм на Pascal-у за израчунавање вредности верижног разломка:

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


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


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

a) -1024≤i≤1023,       2-14≅6.07×10-5<|rnorm|≤64512,       2-19≅1.90×10-6<|r|≤64512

б) i=-485,       r=-6.75

в) i=17478,       r=15368

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

program NizUSkup;
  const Nmax = 100;
  type  Niz = array [1..Nmax] of Integer;
  var   A: Niz;
        N, I, J, K: Integer;
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;
    K := 1;
    for I := 2 to N do begin
      J := I - 1;
      while (J>0) and (A[J]<>A[I]) do J := J - 1;
      if J = 0 then begin
        K := K + 1; A[K] := A[I]
      end
    end;
    N := K;
    Write ('A= ');
    for I:=1 to N do Write (' ', A[I]);
    WriteLn;
  end until (N<=0) or (N>Nmax)
end.

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

program Verizni
  const Nmax = 100;
  type  Niz  = array [1..Nmax] of Real;
  var   A: Niz;
        V: Real;
        I, N: Integer;

  function Ver (A: Niz; N: Integer): Real);
    var V: Real; I: Integer;
  begin
    V := 0;
    for I := N downto 1 do V := 1 / (A[I] + V);
    Ver := V
  end {function};
begin {program}
  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;
    V := Ver (A, N);
    WriteLn ('V= ', V:4:2);
  end until (N<=0) or (N>Nmax);
end {program}.
(садржај)
         
Аутор: Ласло Краус
Е-пошта: kraus@etf.rs

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