View Single Post
Staro 27.02.2015., 04:24   #35
Bullet1
Premium
Moj komp
 
Bullet1's Avatar
 
Datum registracije: Oct 2006
Lokacija: Dubrovnik
Postovi: 2,576
Citiraj:
Autor Neo-ST Pregled postova
Dobro, ali kako je on povezao hours sa h, rate sa r i pay sa p ?
Samo treba shvatiti da h i hours nisu iste varijable već je h kopija od hours.
Dakle ako ti imaš varijablu imena Neo-ST koju šalješ funkciji, nije uopće bitno kako će se ona u funkciji zvati. Može se zvati isto Neo-ST a može Bullet, Pero a, z, žnj itd.

funkcija ima oblik:

funkcija (a, b) {
...tijelo funkcije...
}

a u main programu ti tu funkciju pozivaš funkcija(Neo-ST, Bullet) gdje argumenti koje predaješ odgovaraju tipu varijable koja funkcija prima.

Neznam kako bi ti pobliže objasnio od ovako:

Dakle, computepay gledaj kao funkciju i nema apsolutno nikakve veze što je ona napisana prije try. Try se nalazi u main dijelu programa i služi kako bi ti dao vrijednost nekoj varijabli.
Imaš jabuku i trebaš joj dati vrijednost da znaš koliko ona košta. Ako si definirao da jabuka košta 2kn možeš ju zapisati kao jabuka = 2. S druge strane imaš krušku koja košta 3kn i definiraš varijablu kruška = 3. Sada imaš dvije opcije za izračun koliko jedna jabuka i jedna kruška skupa koštaju. Prva opcija je da u main programu samo nastaviš pisati nešto poput:
suma = jabuka + kruška ;
što znači da je suma = 2 + 3 odnosno suma = 5;
ili napraviš funkciju koja se zove suma te prima parametre artikl1 i artikl2. Takav zapis funkcije izgleda suma(artikl1, artikl2). Ti od te funkcije tražiš da ti napravi sumu dvaju artikala i da ti vrati rezultat. Nebitno je jesu li u pitanju kruške i jabuke ili šljive i smokve, ista je matematika. Dakle, definirao si u glavnom programu da je:
jabuka = 2;
kruška = 3;
i sada želiš primjeniti funkciju koja će zbrojiti vrijednosti krušaka i jabuka. To ćeš napraviti jednostavnim pozivom funkcije suma(jabuka, kruška) i spremit ćeš povratnu vrijednost u neku varijablu kako bi tu sumu mogao koristiti dalje u programu ili ju samo ispisati. Da ne filozofiram dalje, napisat ću ti jednostavniji primjer od toga što imaš zadano pa možda shvatiš.

Code:
//ovo je funkcija koju pozivaš iz main programa
def suma(artikl1, artikl2):
    rezultat = artikl1 + artikl2;
    return rezultat;


//ovo je main program
jabuka = 2;
kruška = 3;
šljiva = 5;
smokva = 1;

//funkcija sprema rezultat (5) u varijablu trošak1
trošak1 = suma(jabuka, kruška);

//ispisivamo vrijednost varijable trošak1 odnosno broj 5
print trošak1;

//funkcija sprema rezultat (6) u varijablu trošak2
trošak2 = suma(šljiva, smokva); 

//ispisivamo vrijednost varijable trošak2 odnosno broj 6
print trošak2;

//funkcija sprema rezultat (11) u varijablu ukupan_trošak
ukupan_trošak = suma(trošak1, trošak2); 

//ispisivamo vrijednost varijable ukupan_trošak odnosno broj 11
print ukupan_trošak;
Vidimo da smo funkciju suma upotrijebili 3 puta za različite proizvode. To je moguće zato jer se svaki puta kada pozovemo funkciju suma, oni argumenti koje smo predali u main programu preslikaju/kopiraju u one argumente koje funkcija prima.

Jabuka se preslikala u artikl1
Kruška se preslikala u artikl2

Šljiva se preslikala u artikl1
Smokva se preslikala u artikl2

Trošak1 se preslikao u artikl1
Trošak2 se preslikao u artikl2

Već su neke ure i neznam kako da ti bolje objasnim, sorry...
Bullet1 je offline   Reply With Quote