1. PRIPREMA ZA ČAS
Predmet Računarstvoi informatika
Razred treći
Odeljenje III5
Nastavnatema Algoritmi i programiranje
Nastavnajedinica Potprogrami
Tip časa vežbe
U programiranju često dolazimo u situaciju da nam se deo programa ponavlja na više
različitih mesta. Najbolje bi bilo da taj deo programa izdvojimo I samo pozivamo kada je
to potrebno. Ovaj problem u programiranju se rešava korišćenjem potprograma.
Delovi deklaracije potprograma (demonstracija)
Za označavanje potprograma koristimo ključnu reč function, zatim navodimo naziv
pomoću kojeg kasnije pozivamo potprogram, zatim navodimo listu parametara
(navodimo parametre I njihov tip) I na kraju navodimo tip koji će vraćati funkcija.
Zatim sledi telo funkcije.
Deklaraciju potprograma u Lazarusu pišemo neposredno iznad glavnog programa.
U glavnom programu vršimo poziv potprograma tako što navedemo njegov naziv I
vrednosti za parametre.
2. Zadatak 71: Broj kombinacija
Napisati potprogram koji za dati prirodan broj N izračunava N!.
U glavnom programu, koristeći potprogram za date prirodne brojeve N i K izračunati
broj kombinacaija po sledećoj formuli:
C = N! / ( (N-K)! * K! )
Algoritam za potprogram za faktorijel: Algoritam za glavni program:
Fakt(n)
p := 1
i := 1,n
p := p*i
Fakt := p
p u p
GP
N, K
C :=
𝐹𝑎𝑘𝑡(𝑁)
𝐹𝑎𝑘𝑡(𝑁−𝐾) ∗𝐹𝑎𝑘𝑡(𝐾)
C
3. Potprogramza faktorijel:
function fakt(n:integer):integer;
var
i,p: integer;
begin
p:=1;
for i:=1 to n do
p:=p*i;
fakt:=p;
end;
Glavni program:
procedure TForm1.Button1Click(Sender: TObject);
var
c,n,k:integer;
begin
n:= StrToInt(edit1.text);
k:= StrToInt(edit2.text);
c:= fakt(n) div (fakt(n-k) *fakt(k));
showmessage('Broj kombinacija je' + IntToStr(c));
end;
4. Zadatak 72: Zbir uređenog niza brojeva
Napisati potprogram koji za dati prirodan broj N izračunava N!.
Napisati potprogram koji za dati realan broj X i prirodan broj N izračunava stepen broja
XN.
U glavnom programu, koristeći oba potprograma za dati prirodan broj N i realan broj X
izračunati zbir niza brojeva po sledećoj formuli:
S = 1 + x + x2/2 + x3/3! + ... + xN/N!
Algoritam za potprogramza stepen
Algoritam za glavni program
Step(x,n)
p := 1
i := 1,n
p := p*x
Step := p
p u p
GP
n, x
s:=s +
𝑆𝑡𝑒𝑝(𝑥,𝑖)
𝐹𝑎𝑘𝑡(𝑖)
s
s :=0
i := 0,n
5. Algoritam za faktorijel imamo iz prethodnog zadatka.
Potprogramza faktorijel:
function fakt(n:integer):integer;
var
i,p:integer;
begin
p:=1;
for i:=1 to n do
p:=p*i;
fakt:=p;
end;
Potprogramza stepen:
function step(x:real;n:integer):real;
var
p:real;
i:integer;
begin
p:=1;
for i:=1 ton do
p:=p*x;
step:=p;
end;
Glavni program:
procedure TForm1.Button1Click(Sender: TObject);
var
s,x:real;
i,n:integer;
begin
x:= StrToFloat(edit1.text);
n:= StrToInt(edit2.text);
s:=0;
for i:=0 ton do
s:=s+(step(x,i) / fakt(i));
showmessage('Zbir je' + FloatToStr(s));
end;
Formeza oba zadatka će izgledati isto. Potrebna su dva edit-a i jedno dugme.