Predavanja i vežbe iz računarstva i informatike za učenike gimnazije

Računarstvo i informatika za učenike gimnazije

1. Razred

2. Razred

3. Razred

4. Razred

 

 

Uvod u funkcije i procedure

 

 

U programskom jeziku Pascal potprograme realizujemo kao funkcije ili kao procedure. Funkcije i procedure definišu se (kažemo još: uvode se) u programu posle deklaracije promenljivih, a pre glavnog Begin-a tj. pre početka programa. Kada ih koristimo u programu kažemo da ih pozivamo.

Primer 1:
Napisati program stepenovanje i funkciju stepen koja izračunava stepen celog broja a. Program ispisuje stepen unetog broja n. Ulazni podaci su n i m.

Program Stepenovanje;
var n , m, p : integer;
function stepen (a, st :integer): integer;
 var an,i: integer;
 Begin
  an:=1;
  for i:=1 to n do an:=an*a;
  stepen:= an;
 End;

BEGIN {program pocinje od ovog reda}
 readln (n,m);
 p:= stepen (n,m); {poziv funkcije iz glavnog programa}
 writeln ('stepenovan broj je', p);
END.

Napisati program pravougaonik koji korišćenjem funkcija obim i pov (napisati i te funkcije) izračunava obim i površinu pravougaonika zadatog preko svojih stranica a i b.

Program Pravougaonik;
 var a,b,O,P : real;

 function Obim (a,b:real):real;
  Begin 
   Obim:=2*a+2*b;
  End;
 
 function Pov (a,b:real): real;
  Begin
   Pov:=a*b;
  End;

BEGIN
 read (a,b);
 P:=Pov(a,b);
 O:=Obim (a,b);
 Write ('Povrsina je ', p:10:3, ' Obim je ',O:10:3);
END.


Vežbe

Napisati funkciju koja
a) određuje rastojanje tačaka A(X1,Y1) i B(X2,Y2)
b) izračunava obim trougla sa temenima A(X1,Y1), B(X2,Y2) i C(X3,Y3)
c) izračunava površinu trougla sa temenima A(X1,Y1), B(X2,Y2) i C(X3,Y3)

Testirati napisane funkcije f-je u programu:
a) određivanjem koji od dva data trougla ima veću površinu
b) izračunavanjem površine četvorougla.
c) izračunavanjem dužine poligonalne linije, ako se unosi broj temena N, a zatim redom njihove koordinate

Program fje;
const eps=0.0001;
var X1,Y1,X2,Y2,X3,Y3,X4,Y4,P1,P2,S: real;
    n,i : integer;

function rastojanje (X1,Y1,X2,Y2:real):real;
 Begin
  rastojanje:=sqrt(sqr(X1-X2) + sqr (Y1-Y2));
 End;

function Obim (X1,Y1,X2,Y2,X3,Y3:real):real;
 Begin
  Obim := rastojanje (X1,Y1,X2,Y2) + rastojanje (X1,Y1,X3,Y3)+ 
          rastojanje (X2,Y2,X3,Y3);
 End;

function Povrsina (X1,Y1,X2,Y2,X3,Y3:real):real;
 var a, b, c, s : real;
Begin
 a:= rastojanje (X1,Y1,X2,Y2);
 b:= rastojanje (X1,Y1,X3,Y3);
 c:= rastojanje (X2,Y2,X3,Y3);
 s:=(a+b+c) / 2;
 Povrsina := sqrt (s*(s-a)*(s-b)*(s-c));
End;

BEGIN

{ a) }

read(X1,Y1,X2,Y2,X3,Y3);
p1:=Povrsina(X1,Y1,X2,Y2,X3,Y3); 
read(X1,Y1,X2,Y2,X3,Y3);
p2:=Povrsina(X1,Y1,X2,Y2,X3,Y3);

if (p1 > p2 + Eps) then write ('P1 je veci');
if (p1 < p2 - Eps) then write ('P2 je veci');
if (abs(p1-p2) < Eps) then write ('Jednaki su');

{kraj a)}


{b) cetvorougao}

read(X1,Y1,X2,Y2,X3,Y3,X4,Y4);
p1:=Povrsina(X1,Y1,X2,Y2,X3,Y3); 
p2:=Povrsina(X3,Y3,X4,Y4,X1,Y1);
writeln('Povrsina cetvorougla je '(p1+p2):10:5);

{kraj b } 


{c) - poligonalna linija}
readln (n);
readln (X1,Y1);
s:=0.0;
for i:=1 to n-1 do 
 Begin
  readln(X2,Y2);
  s:=s+rastojanje (X1,Y1,X2,Y2);
  X1:=X2;
  Y1:=Y2;
 End;
writeln ('duzina je ', s:10:5);

{kraj c}
END.

 



 

 

© 2010 Dragoljub Perišić 



 

 

 

 

 

 

 

 

 

 

 

 

 

 

 



 

 

 

©2017 Dragoljub Perišić