Autor Tema: Funkcije  (Pročitano 1518 puta)

Dragonfly

  • Global Moderator
  • Sr. Member
  • *****
Funkcije
« poslato: Novembar 18, 2013, 01:11:55 pre podne »
Функције

Ако неки комад вашег кода представља једну логичну целину или се тај комад понавља на више места у коду онда би га ваљало издвојити у нешто што у програмирању зовемо функција па на месту где је био тај код ставимо позив функције. Или да илуструјемо на простом примеру :
Уместо овога

var a = 5;
var b = 10;
var c = 15

var srednja_vrednost_ab = (a + b) / 2;
print("srednja vrednost brojeva " + a + " i " + b + " je " + srednja_vrednost_ab);

var srednja_vrednost_ac = (a + c) / 2;
print("srednja vrednost brojeva " + a + " i " + c + " je " + srednja_vrednost_ac);

var srednja_vrednost_bc = (b + c) / 2;
print("srednja vrednost brojeva " + b + " i " + c + " je " + srednja_vrednost_ab);

прегледније је имати ово

var a = 5;
var b = 10;
var c = 15

ispisiSrednjuVrednost(a, b);
ispisiSrednjuVrednost(a, c);
ispisiSrednjuVrednost(b, c);

function ispisiSrednjuVrednost(x, y){
  var srednja_vrednost_xy = (x + y) / 2;
  print("srednja vrednost brojeva " + x + " i " + y + " je " + srednja_vrednost_xy);
}

И осим што је доњи пример прегледнији, ако имамо грешку у рачунању средње вредности или желимо да променимо нешто у испису, у горњем примеру бисмо морали да радимо исправку на три места а у доњем примеру само на једном месту.

Блок који у доњем примеру почиње са function је наравно један пример функције. Функција може за вас да одради нешто (нпр. испише нешто на екран) а може и да врати неку вредност као резултат процесирања података. Ви сте и до сад позивали функције само тога можда нисте били свесни.

print(tekst); је функција која исписује неки текст или број у наше поље на екрану.

var x = prompt("Упиши нешто"); је функција која ће приказати поље за унос податка са поруком "Упиши нешто" и вратиће вредност унесеног податка коју ћемо ми онда сместити у промењиву х.

Хајде сада још једном да изанализирамо рентгенски снимак једне просте функције као нпр.

function кључна реч којом започињемо дефиницију неке функције
Затим следи име функције izracunajSrednjuVrednost па после имена следе две заграде (). У заградама можемо, а и не морамо, да имамо параметре које функција користи за обраду. Осим имена параметар можете у литератури наћи још и имена аргумент или атрибут. Шта ће функција онда да обрађује ако не прима никакве параметре? Може да чита податке из неког фајла, или из базе података нпр.
Елем, после () следи блок функције а блок је, као што смо пре рекли, све оно у {}
Функција на крају може, а и не мора, да врати резултат своје обраде а то ради помоћу return након чега следи промењива која садржи вредност коју функција враћа тамо одакле је функција позвана. То може бити главни тог програма или нека друга функција.
Како бисмо позвали ову функцију? Овако :

var a = 3;
var b = 7;
var sv = izracunajSrednjuVrednost(a, b);
print("srednja vrednost je " + sv);

А може и овако

var sv = izracunajSrednjuVrednost(3, 7);
print("srednja vrednost je " + sv);

У оба случаја ће параметар x добити вредност 3 а параметар y ће добити вредност 7. Промењива srednja_vrednost ће после рачунања (x + y) / 2 добити вредност 5 и ту вредност ће функција вратити у главни ток програма где ће бити додељена промењивој sv