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

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

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

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

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

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

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

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

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

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

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

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


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


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

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

б) i=991,       r=64512

в) i=22278,       r=34278

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

program SrednjiBrojevi;
  const NMax = 100;
  type  Niz = array [1..NMax] of Real;
  var   A, B: Niz;
        Na, Nb, I: Integer;
        Min, Max, D, G: Real;
begin
  repeat
    Write ('na? '); ReadLn (Na);
  if (Na>0) and (Na<=NMax) then begin
    Write ('A?  '); for I:=1 to Na do Read(A[I]); ReadLn;
    Min := A[1]; Max := Min;
    for I:=2 to Na do
      if      A[I]<Min then Min := A[I]
      else if A[I]>Max then Max := A[I];
    D := Min + (Max-Min) / 3;
    G := Max - (Max-Min) / 3;
    Nb := 0;
    for I := Na downto 1 do begin
      if (A[I]>D) and (A[I]<G) then begin
        Nb := Nb + 1; B[Nb] := A[I]
      end
    end;
    Write ('B='); for I:=1 to Nb do Write (' ', B[I]); WriteLn;
  end until (Na<=0) or (Na>NMax)
end.

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

program Funkcija;
  type Niz = array [1..100] of Real;
  var  X, XMin, XMax, DX;
       A: Niz;
       I, N: Integer;

  function F (X: Real; A: Niz; N: Integer): Real;
    var P, S, Xi: Real; I: Integer;
  begin
    P := 1; S := 0; Xi := 1;
    for I := 1 to n do begin
      Xi := Xi * X; S := S + I;
      P := P * (A[I] + Xi) / S
    end {for};
    F := Exp (Ln (P) / N)
  end {function};
begin {program}
  Write ('N? '); ReadLn (N);
  Write ('A? ');
  for I := 1 to N do Read (A[I]); ReadLn;
  Write ('Xmin, Xmax, dX? '); ReadLn (XMin, XMax, DX);
  WriteLn;
  WriteLn ('x':8, 'f':8);
  for I := 1 to 16 do Write('='); WriteLn;
  X := XMin;
  while X <= XMax do begin
    WriteLn (X:8:2, F(X,A,N):8:2);
    X := X + DX
  end
end {program}.
(садржај)
         
Аутор: Ласло Краус
Е-пошта: kraus@etf.rs

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