Procedure su tip potprograma koji može imati nekoliko izlaza, dok funkcije mogu imati samo jedan. Da ne duljim
sve ostalo objasnit ću na primjerima
Procedura za ispis broja:
var a:integer;procedure ispis(a:integer); ovdje smo deklarirali proceduru naziva ispis koja sadržava varijablu a begin početak procedure writeln(a);end; kraj procedure begin readln(a); ispis(a); na ovaj način pozivamo proceduru readln();end.
procedura za zbroj dva broja:
var a,b,c:integer;procedure ispis(a,b:integer;var c:integer); ako želimo da nam je neka varijabla zlaz moramo
begin prije nje staviti oznaku var c:=a+b;end;begin readln(a,b); ispis(a,b,c); ako proceura ima više varijabli bitno ih je navesti redosljedom kojim dolaze writeln(c); budući da nam je prije varijable c oznaa var možem ju ispisati readln(); van procedure, ali mogli smo ju ispisati i unutar procedureend.
procedura za opseg i površinu kruga:
var r,povrsina,opseg:real;procedure kako(r:real;var povrsina,opseg:real);begin povrsina:=r*r*3.14; opseg:=2*r*3.14end;begin readln(r); kako(r,povrsina,opseg); writeln(povrsina:7:2); writeln(opseg:7:2); readln();end.
procedura za sortiranje niza:
type niz=array[1..100] of integer; ovdje smo deklirari tip varijabli niz koji može sadržavati 100 brojeva,sada je niz sličan tipovima podataka integer, real...var a,i,n,j:integer;k,l:niz;procedure suma(i,n,j,a:integer;k:niz;var l:niz);beginfor i:=1 to n do begin for j:=i to n do begin if k[i]<k[j] then begin ovaj dio ispituje da li je sljedeći broj manji od sljedećeg, ako je izvršava se sljedeći dio naredbi a:=k[i]; neka privremena vrijednost je k[i] k[i]:=k[j]; k[i] postaje veći broj, tj. sljedeći k[j]:=a; sljedeći broj postaje privremena vrijednost end; end; end; for i:=1 to n do l[i]:=k[i]; budući da je l izlazna varijabla moramo izvršiti ovu zamjenuend;beginreadln(n); for i:=1 to n do readln(k[i]); suma(i,n,j, a,k,l); for i:=1 to n do writeln(l[i]); ovdje ispisujemo sortirani niz readln); end.
procedura koja računa koliko je brojeva u nizu djeljivo s 5
type niz=array[1..100] of integer;var a,i,n,j:integer;k,l:niz;procedure suma(i,n,integer;k:niz;var a:integer);beginfor i:=1 to n do begin if k[i] mod 5=0 then a:=a+1;end;beginreadln(n); for i:=1 to n do readln(k[i]); suma(i,n,k,a); writeln(a); readln();end.