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

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

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

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

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

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

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

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

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

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

Саставити на Pascal-у потпрограм за израчунавање времена лета t, удаљености места пада на земљу d и највеће достигнуте висине h тела које се са почетном брзином v избацује под углом φ у односу на површину земље (g=9,8062 m/s2):

         

Саставити на Pascal-у главни програм за табелирање горњих података за све вредности vminvvmax са кораком Δv и φminφφmax са кораком Δφ.


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


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

a) -2048≤i≤2047       6.10×10-5≅2-14≤|rnorm|≤65024       9.53×10-7≅2-20≤|r|≤65024

б) i=-1040,       r=-1.75

в) i=7FC16,       r=67D16

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

program VelikiBrojevi;
  const NMax = 100;
  type  Niz = array [1..NMax] of Real;
  var   A, B: Niz;
        Na, Nb, 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;
    S := 0; for I:=1 to Na do S := S + A[I];
    S := S / Na; Nb := 0;
    for I := 1 to Na do begin
      if A[I] > S 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 KosiHitac;
  const G = 9.8062;
  var   V, VMin, VMax, DV, Fi, FiMin, FiMax, DFi, T, D, H;

  procedure KosHit (V, Fi: Real; var T, D, H: Real);
  begin
    T := 2 * V * Sin (Fi) / G;
    D := T * V * cos (Fi);
    H := T * V * sin (Fi) / 4
  end {procedure};
begin {program}
  WriteLn ('Vmin, Vmax, dV? );     ReadLn (VMin, VMax, DV);
  WriteLn ('Fimin, Fimax, dFi? '); ReadLn (FiMin, FiMax, DFi);
  WriteLn;
  WriteLn ('v':8, 'fi':8, 't':8, 'd':8, 'h':8);
  for I := 1 to 40 do Write('=');
  WriteLn;
  V := VMin;
  while V <= VMax do begin
    Fi := FiMin;
    while Fi <= FiMax do begin
      KosHit (V, Fi, T, D, H);
      WriteLn (V:8:2, Fi:8:2, T:8:2, D:8:2, H:8:2);
      Fi := Fi + DFi
    end;
    V := V + DV
  end
end {program}.
(садржај)
         
Аутор: Ласло Краус
Е-пошта: kraus@etf.rs

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