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

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

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

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

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

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

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

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

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

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

Саставити потпрограм на Pascal-у за израчунавање аритметичке средње вредности s и стандардне девијације d низа реалних бројева задате формулама:

    

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


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


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

a) -512≤i≤511       2-6≅1.56×10-2<|rnorm|≤252       2-11≅4.88×10-4<|r|≤252

б) i=204,       r=0.6875

в) i=39C16,       r=3B216

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

program Nizovi;
  const Nmax = 100;
  type  Niz = array [1..Nmax] of Integer;
  var   A, B, C: Niz;
        Na, Nb, Nc, I: Integer;
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;
    Nb := 0; Nc := 0;
    for I := 1 to Na do begin
      if A[I] > 0 then begin
        Nb := Nb + 1; B[Nb] := A[I]
      end else if A[I] < 0 then begin
        Nc := Nc + 1; C[Nc] := A[I]
      end
    end;
    Write ('B= ');
    for I:=1 to Nb do Write (' ', B[I]);
    WriteLn;
    Write ('C= ');
    for I:=1 to Nc do Write (' ', C[I]);
    WriteLn;
  end until (Na<=0) or (Na>Nmax)
end.

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

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

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

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