Programiranje

3. predavanje

Tip argumenta programa

Zadavanje tipa argumenta

Oznaka argumenta i funkcije i programa mora sadržavati znak _ (podvlaka, underline); znak _ označava bilo koji izraz. Točnije rečeno znak _ je uzorak (pattern, predložak, "špranca"),  i svaki izraz zadovoljava taj uzorak.

Oznaka x_ označava bilo koji izraz koji će se, u daljnjoj definciji funkcije ili programa zvati x.

Oznaka x_Tip označava bilo koji izraz koji će se, u daljnjoj definciji funkcije ili programa zvati x i koji je tipa Tip.  Tipovi mogu biti razni, npr.

Integer, npr. 57

Real, npr. 57.75

List, npr. {2,  3.14,  7}

Symbol, npr y (ako y nije prije definirano), ili mtk ...

String, npr "Dobar dan"

Moguće je zadati više tipova za izraz x_. Različite tipove odvajamo znakom |, npr. x_Symbol|x_String

Ukratko ponovimo: izraz x_Tip je predložak (uzorak, "špranca", pattern)  koji zadovoljavaju svi izrazi koji su tipa Tip. Tako npr. predoložak x_Integer zadovoljava svaki cjelobrojni izraz (koji se u daljnjem zove x).

"3predavanje_1.gif"    |    "3predavanje_2.gif"

Tip argumenta programa, 1. primjer

Zadatak:

Napišite program koji će primati realni argument, i vraćati će pozitivnu vrijednost treće potencije.

Izrada:

"3predavanje_3.gif"

Poziv programa kub:

"3predavanje_4.gif"

"3predavanje_5.gif"

"3predavanje_6.gif"

"3predavanje_7.gif"

"3predavanje_8.gif"

"3predavanje_9.gif"

"3predavanje_10.gif"

"3predavanje_11.gif"

"3predavanje_12.gif"    |    "3predavanje_13.gif"

Tip argumenta programa, 2. primjer

Zadatak:

Napišite program koji će primati realni ili cjelobrojni arugument, i vraćati će pozitivnu vrijednost treće potencije.

Izrada:

"3predavanje_14.gif"

Poziv funkcije kub2:

"3predavanje_15.gif"

"3predavanje_16.gif"

"3predavanje_17.gif"

"3predavanje_18.gif"

"3predavanje_19.gif"

"3predavanje_20.gif"

"3predavanje_21.gif"    |    "3predavanje_22.gif"

Ponavljanje naredbi, petlja Do

Pojam petlje

Petlja je takva  naredba (funkcije) koja omogućava da se neke druge naredbe jednom napišu a izvedu više puta.

Opći oblik funkcije Do

Do[izrazi, lista].

Znači funkcija Do ima dva argumenta :
prvi argument je niz izraza čije izvođenje se ponavlja (svaki izraz završava s točka zarezom ;),
drugi argument je lista pomoću koje se kontrolira koliko puta će se ponavljati izvođenje prvog argumenta.

"3predavanje_23.gif"    |    "3predavanje_24.gif"

Ponavaljanje naredbi u petlji Do

Sintaksa naredbe Do

Do[izrazi, {i, imin, imax, istep}]

Određivanje postupka ponavljanja

Na početku brojač  i poprima startnu vrijednost imin; ukoliko i nije veći od imax izrazi iz prvog argumenta se izvedu,

vrijednost brojača i poveća za korak istep; ukoliko nova vrijednost nije veća od imax izrazi iz prvog argumenta se opet izvedu,

vrijednost brojača i se ponovo poveća za korak istep; ukoliko nova vrijednost nije veća od imax izrazi iz prvog argumenta se opet izvedu,

···

Na svakom koraku se vrijednsot brojača i promjeni tako da se staroj vrijednosti doda korak istep; kada vrijednost brojača i premaši imax funkcija Do završava  i program se nastavlja na prvoj slijedećoj naredbi iza Do.

Ako se brojač istep ne navede tada se  podrazumjeva da je jedank 1.

brojač se, naravno, ne mora zvati i; brojač, kako god ga zvali, je lokalna varijabla funkcije Do.

"3predavanje_25.gif"    |    "3predavanje_26.gif"

1. primjer petlje Do

Zadatak

Napišite program koji će učitati  prirodni broj  n i ispisati kvadrate svih brojeva od 1 do n.

Da bi osigurali pozitivnost argumenta koristiti ćemo izraz /; koji se koristi na slijedeći način.
      uzorak /; uvjet
Ovakav predložak zadovoljavaju svi izrazi koji zadovoljavaju i navedeni uzorak i navedeni uvjet.
Npr.  predložak
        n_Integer /; n >0
zadovoljavju svi izrazi koji imaju cjelobrojnu vrijednost uz uvjet da su pozitivni. U daljnjem se takvi izrazi zovu n.

Izrada

"3predavanje_27.gif"

Testiranje

"3predavanje_28.gif"

"3predavanje_29.gif"

"3predavanje_30.gif"

"3predavanje_31.gif"

"3predavanje_32.gif"

"3predavanje_33.gif"

"3predavanje_34.gif"

"3predavanje_35.gif"

"3predavanje_36.gif"

"3predavanje_37.gif"

"3predavanje_38.gif"    |    "3predavanje_39.gif"

2. primjer petlje Do

Zadatak

Napišite program koji prima kao argument vektor (listu) i vraća zbroj njenih elemenata.

U programu ćemo lokalnu varijablu zbroj postaviti na početnu vrijednost 0.

Izrada

"3predavanje_40.gif"

Testiranje

"3predavanje_41.gif"

"3predavanje_42.gif"

"3predavanje_43.gif"    |    "3predavanje_44.gif"

Notebook izradili: Vladimir Benić i Sonja Gorjanc


Created by Wolfram Mathematica 6.0  (13 May 2008) Valid XHTML 1.1!