On-line učionica

15. decembar 2011.

Procedure i funkcije

Filed under: Pascal,Programiranje — jelena100janovic @ 12:07 am

Procedure

Procedure su potprogrami koje možemo pozvati iz glavnog dela programa. Procedure se deklarišu van glavnog programa pomoću ključne reči procedure (procedura). Procedure takođe imaju jedinstveno ime. Procedure imaju sopstvene begin i end. Evo primera kako napraviti proceduru koja se zove Hej koja ispisuje „Hej!“ na ekran.

program Proceduree;
procedure Hej;
begin
   writeln(‘Hej!’);
end;
begin
end.

Da bismo koristili proceduru, zovemo je njenim imenom iz glavnog dela programa.

program Proceduree;
procedure Hej;
begin
   writeln(‘Hej!’);
end;
begin
   Hej;
end.

Procedure se smeštaju iznad mesta sa kog su pozvane. Evo primera procedure koja poziva drugu proceduru.

program Proceduree;
procedure Hej;
begin
   writeln(‘Hej!’);
end;
procedure HejPoziv;
begin
   Hej;
end;
begin
   HejPoziv;
end.

Procedure mogu imati parametre, isto kao i ostale naredbe koje smo koristili. Svakom parametru se dodeljuje ime i tip, a onda se koristi kao bilo koja druga promenljiva. Ako želite da koristite više od jednog parametra, onda ih odvajate tačka-zarezom.

program Proceduree;
procedure Pisi(s:string;i:integer);
begin
   writeln(s);
   writeln(i);
end;
begin
   Pisi(‘Hello’,3);
end.

Globalne i lokalne promenljive

Promenljive koje smo do sad koristili su globalne, jer ih možemo koristiti u bilo kom delu programa. Lokalne promenljive se mogu koristiti samo unutar procedura, a memorija koju koriste se oslobađa kada završimo sa korišćenjem procedure. Lokalne promenljive se deklarišu odmah ispod deklaracije imena procedure.

program Proceduree;
procedure Pisi(s:string);
var
   i:integer;
begin
   for i:=1 to 3 do writeln(s);
end;
begin
   Pisi(‘Hej!’);
end.

Funkcije

Funkcije liče na procedure sem što one vraćaju vrednost. Ključna reč function (funkcija) se koristi umesto procedure kada deklarišete funkciju. Da biste zadali tip promenljive koju vraćate, koristite dvotačku i ime tipa posle imena funkcije.

program Funkcije;
function Zbir(i,j:integer):integer;
begin
end;
begin
end.

Dodeljivanje vrednosti funkcije promenljivoj, čini promenljivu jednakom povratnoj vrednosti funkcije. Ako koristite funkciju unutar nečega kao Writeln povratna vrednost će biti ispisana. Da biste postavili povratnu vrednost, samo napišite da imenu funkcije dodeljujete vrednost koju želite da vratite.

program Funkcije;
var
   odgovor:integer;
function Zbir(i,j:integer):integer;
begin
   Zbir:=i+j;
end;
begin
   odgovor:=Zbir(1,2);
   writeln(Zbir(1,2));
end.

Možete izaći iz procedure ili funkcije u bilo kom trenutku koristeći naredbu Exit (izađi).

program Proceduree;
procedure UzmiIme;
var
   ime:string;
begin
   writeln(‘Kako se zoves?’);
   readln(ime);
   if ime=“ then Exit;
   writeln(‘Tvoje ime je ‘,ime);
end;
begin
   UzmiIme;
end.

Zadaci za vežbanje:

  1. Napišite funkciju koja računa prosek dva broja. Zatim napišite program koji demonstrira njen rad.
  2. Napišite funkciju koja ispisuje kvadrate prvih 10 prirodnih brojeva. Zatim napišite program koji demonstrira njen rad.
  3. Napišite funkcije za unos niza, računanje njegove prosečne vrednosti i ispis niza. Zatim napišite program koji demonstrira njihov rad.
  4. Napišite funkcije za unos i ispis matrice formata 5×5. Zatim napišite program koji demonstrira njihov rad.
  5. Napišite funkciju koja u prosleđenom stringu menja sva pojavljivanja razmaka sa crticom i vraća broj izmena. Zatim napišite program koji demonstrira njen rad.
  6. Napišite funkcije koje u prosleđenom stringu: broje reči, slova, samoglasnike i suglasnike. Zatim napišite program koji demonstrira njihov rad.
  7. Napišite program koji učitava niz parova brojeva, od kojih prvi predstavlja cenu sata rada, a drugi broj radnih sati u nedelji; kraj unosa je kad je cena po satu 0; zatim, program računa nedeljnu platu tako što 40 radnih sati računa po ceni, prekovremeni do 60 sati 50% uvećano, a prekovremeni preko 60 radnih sati duplo više. Program treba da ispiše sve nedelje plate i ukupnu količinu novca. Koristite funkcije i konsante za brojeve 40 i 60!

Ostavite komentar »

Nema komentara.

RSS feed for comments on this post. TrackBack URI

Ostavite odgovor

Popunite detalje ispod ili pritisnite na ikonicu da biste se prijavili:

WordPress.com logo

Komentarišet koristeći svoj WordPress.com nalog. Odjavite se / Promeni )

Slika na Tviteru

Komentarišet koristeći svoj Twitter nalog. Odjavite se / Promeni )

Fejsbukova fotografija

Komentarišet koristeći svoj Facebook nalog. Odjavite se / Promeni )

Google+ photo

Komentarišet koristeći svoj Google+ nalog. Odjavite se / Promeni )

Povezivanje sa %s

Blog na WordPress.com.

%d bloggers like this: