![]() Ласло Краус |
Програмирање I Други колоквијум 21. 1. 2002 |
---|
Саставити главни програм на Pascal-у који прочита низ троуглова, проналази (независно од читања низа) и исписује највећу површину троуглова у низу, исписује дужине ивица свих троуглова који имају ту највећу површину и понавља претходне кораке све док за дужину низа не прочита недозвољену вредност.
Саставити на Pascal-у главни програм који читајући низ бројева преко главног улаза направи скуп од њих и после испише садржај добијеног скупа уз истовремено уништавање листе.
unit MTrougao; interface type Trougao = record A,B,C: Real end; procedure Citaj (var T: Trougao); function P (T: Trougao): Real; procedure Pisi (T: Trougao); implementation procedure Citaj (var T: Trougao); begin with T do ReadLn (A, B, C) end {procedure Citaj}; function P (T: Trougao): Real; var S: Real; begin with T do begin S := (A + B + C) / 2; P := Sqrt (S*(S-A)*(S-B)*(S-C)) end {with} end {function P}; procedure Pisi (T: Trougao); begin with T do WriteLn ('(', A:4:2, ',', B:4:2', ',', C:4:2, ')'); end {procedure Pisi}; end {unit}. program Trouglovi; uses MTrougao; const MaxN = 100; var A: array [1..MaxN] of Trougao; B, Max: Real; N, I: Integer; begin {program} repeat Write ('Duzina niza? '); ReadLn (N); if (N > 0) and (N <= MaxN) then begin for I := 1 to N do begin Write('Stranice trougla ',I,'? '); Citaj (A[I]); end {for}; Max := P (A[1]); for I := 2 to N do begin B := P (A[I]); if B > Max then Max := B end {for}; WriteLn ('Najveca povrsina: ', Max); WriteLn ('Najvecu povrsinu imaju:'); for I := 1 to N do begin if P (A[I]) = Max then begin Pisi (A[I]); WriteLn; end {if} end {for} end until (N <= 0) or (N > MaxN); end {program}.
program Liste; type Pok = ^Elem; Elem = record Broj: Real; Sled: Pok; end {record}; var Skup, Stari: Pok; I, N: Integer; Broj: Real; procedure Ubaci(var Skup: Pok; Broj: Real); var Tek, Preth, Novi: Pok; begin Tek:=Skup; Preth:=nil; while (Tek <> nil) and (Tek^.Broj <> Broj) do begin Preth := Tek; Tek := Tek^.Sled end; if Tek = nil then begin New (Novi); Novi^.Broj := Broj; Novi^.Sled := nil; if Preth = nil then Skup := Novi else Preth^.Sled := Novi; end {procedure Ubaci}; begin {program} Write ('Duzina niza? '); ReadLn (N); Write ('Elementi niza? '); Skup := nil; for I := 1 to N do begin Read (Broj); Ubaci (Skup, Broj); end; Write ('Skup= '); while Skup <> nil do begin Write (Skup^.Broj, ' '); Stari := Skup; Skup := Skup^.Sled; Dispose (Stari); end; WriteLn; end {program}.
program Roba; type Zapis = record Sifra: strin[6]; Datum: LongInt; Cena, Kol: Real end {record}; var Dat: file of Zapis; Art: Zapis; God, G, M, I: Integer; Vred: array [1..12] of Real; Rez: Text; begin {program} Assign(Dat,'Nabavke.dat'); Reset(Dat); Write ('Godina? '); ReadLn (God); for I := 1 to 12 do Vred[I] := 0; while not Eof (Dat) do begin Read (Dat, Art); with Art do begin G := Datum div 10000; if G = God then begin M := Datum div 100 mod 100; Vred[M] := Vred[M] + Cena*Kol end {if} end {with} end {while}; Close (Dat); Assign(Rez,'Izvest.txt'); Rewrite(Rez); for I := 1 to 12 do begin WriteLn (Rez, I:2, Vredn[I]:12:2) end {for}; Close (Rez) end {program}.(садржај)
Copyright © 2002, Laslo Kraus
Последња ревизија: 22.12.2002.