Visa elektrotehnicka skola, Beograd
Ласло Краус
Програмирање - испити
Други парцијални
29.1.1998

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

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

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

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

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

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

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

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

Датотека о залихама робе у складишту за сваки артикал садржи шифру робе (низ од највише 8 знакова), назив робе (низ од највише 32 знака), ознаку јединице мере (низ од највише 3 знака), количину робе (реалан број) и јединичну цену (реалан број). Саставити главни програм на Pascal-у за израчунавање укупне вредности робе у складишту.


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


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

program Korelacija;

  type Niz = array [1..100] of Real;

  var  X, Y: Niz;
       I, N: Integer;

  function R (X, Y: Niz; N: Integer): Real;
    var I: Integer; R, Xs, Ys, XX, YY, XY: Real;
  begin
    Xs := 0; Ys := 0;
    for I := 1 to N do begin
      Xs := Xs + X[I];
      Ys := Ys + Y[I];
    end;
    Xs := Ys / N; Ys := Xs / N;
    XX := 0; YY := 0; XY := 0;
    for I := 1 to N do begin
      XX := XX + Sqr (X[I] - Xs);
      YY := YY + Sqr (Y[I] - Ys);
      XY := XY + (X[I] - Xs) * (Y[I] - Ys);
    end;
    R := XY / (Sqrt(XX)*Sqrt(YY));
  end;

begin {glavni program}
  Write ('Duzina nizova? '); ReadLn (N);
  Write ('Prvi niz? ');  for I := 1 to N do Read (X[I]); ReadLn;
  Write ('Drugi niz? '); for I := 1 to N do Read (Y[I]); ReadLn;
  WriteLn ('Faktor korelacije: ', R(X,Y,N):4:2);
end.

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

unit MNizovi;

interface

  const KAP = 100

  type Niz=array[1..KAP] of Integer;

  function Zbir (A:Niz; N:Integer): Integer;
  function Min  (A:Niz; N:Integer): Integer;
  function MaxI (A:Niz; N:Integer): Integer;

implementation

  function Zbir (A:Niz; N:Integer): Integer;
    var I, S: Integer;
  begin
    S := 0;
    for I := 1 to N do S := S+A[I];
    Zbir := S;
  end;

  function Min  (A:Niz; N:Integer): Integer;
    var I, M: Integer;
  begin
    M := A[1];
    for I := 2 to N do if A[I] < M then M := A[I];
    Min := M
  end;

  function MaxI (A:Niz; N:Integer): Integer;
    var I, M, K: Integer;
  begin
    M := A[1]; K := 1;
    for I := 2 to N do
      if A[I] > M then begin M := A[I]; K := I end;
    MaxI := K
  end;
end.

program Nizovi;

  uses MNizovi;

  var A: Niz;
      I, N: Integer;
      Kraj: Boolean;
begin
  repeat
    Write ('Duzina niza? '); ReadLn (N);
    Kraj := (N <= 0) or (N > KAP);
    if not Kraj then begin
      Write ('Elementi niza? '); for I:=1 to N do Read (A[I]);
      ReadLn;
      WriteLn ('Zbir:     ', Zbir (A, N));
      WriteLn ('Najmanji: ', Min  (A, N));
      WriteLn ('Najveci:  ', A[MaxI(A,N)]);
    end;
  until Kraj;
end;

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

program Roba;

  type Zapis = record
         Sifra: string[8];
         Naziv: string[32];
         Jed:   string[3];
         Kolicina, Cena: Real
       end;

  var Dat: file of Zapis;
      Art: Zapis;
      Vrednost: Real;
      Ime: string[12];

begin
  Write ('Ime datoteke? '); ReadLn (Ime); Assign (Dat, Ime);
  Reset (Dat); Vrednost := 0;
  while not Eof (Dat) do begin
    Read (Dat, Art);
    Vrednost := Vrednost + Art.Kolicina * Art.Cena
  end;
  WriteLn ('Ukupna vrednost robe: ', Vrednost:4:2);
end.
(садржај)
         
Аутор: Ласло Краус
Е-пошта: kraus@etf.rs

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