Programiranje
2. predavanje
Logički izrazi
Pojam
Izraz je logički izraz ako može poprimiti samo dvije vrijednosti: istina ili neistina (True ili False).
Primjeri
Ako sa x označimo prirodan broj tada je tvrdnja "x je prost broj" logički izraz;
Ako sa x i y označimo realne brojeve tada je x>y logički izraz
Operacije s logičkim izrazima
Logički i se označava s &&. Ako su L1 i L2 dva logička izraza tada je L1&&L2 istiniti izraz ako su i L1 i L2 istiniti; u svim ostalim slučajevima je to neistinit izraz;
Logički ili se označava s ||. Ako su L1 i L2 dva logička izraza tada je L1||L2 neistiniti izraz ako su i L1 i L2 neistiniti; u svim ostalim slučajevima je to istinit izraz;
Negacija se označava s !. Ako je L logički izraz tada je !L istina ako je L neistina i obratno
Funckija If
O poretku izvođenja naredbi u programu
Naredbe se, u pravilu, u programu, izvode kako su navedene — jedna za drugom.
Izuzeci od "linearnog" izvođenja naredbi
Na temelju istinitosti nekog izraza odlučuje se da li će se izvršiti jedna ili druga grupa naredbi (funkcija If);
Na temelju istinitosti nekog izraza odlučuje se da li će se neka gupa naredbi izvršiti ili će se preskočiti (funkcija If);
Postoji mogućnost da se neka grupa naredbi jednom napiše, a izvrši nekoliko puta (funkcije Do, While, For)
Sintaksa i semantika naredbe If
If[ logički izraz, izrazi—istinitost, izrazi—neistinitost ], računalo testira logički izraz i ako je razultat istinit "računa" se samo prva grupa izraza, a ako je neistinit "računa" se samo druga grupa. Izrazi završavaju s ;. Nakon izvođenja navedenih naredbi prelazi se na prvu funkciju iza funkcije If.
If[ logički izraz, izrazi—istinitost ] , računalo testira logički izraz i ako je razultat istinit "računa" se navedena grupa izraza, a ako je neistinit navedena grupa izraza se preskače i prelazi se na prvu naredbu iza funkije If.
Funckija If, 1. primjer
Zadatak:
Napišite program koji će učitati dva realna broja i ispisati veći;
program ćemo nazvati veci.
Rješenje:
In[8]:=
Pozivanje programa veci
In[9]:=
Out[9]=
Funckija If, 1. primjer, modifikacija
Zadatak:
Napišite program koji kao argumente ima dva realna broja i kao rezultat vraća veći od njih;
program ćemo nazvati veci2.
Rješenje:
In[10]:=
Pozivanje programa veci2
In[11]:=
Out[11]=
Funckija If, 2. primjer
Zadatak:
Napišite program koji ima jedan realan argument. Ako argument nije pozitivan ispisuje se poruka o tome i program se prekida, a ako je pozitivan program vraća ln agumenta.
Za ispis poruke koristite funkciju Print, a za prekid programa koristite funkciju Abort.
Rješenje
In[12]:=
Pozivanje
In[13]:=
Out[13]=
In[14]:=
Out[14]=
In[15]:=
Out[15]=
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).
|
Tip argumenta programa, 1. primjer
Zadatak:
Napišite program koji će primati realni argument, i vraćati će pozitivnu vrijednost treće potencije.
Izrada:
In[16]:=
Poziv programa kub:
In[17]:=
Out[17]=
In[18]:=
Out[18]=
In[19]:=
Out[19]=
In[20]:=
Out[20]=
|
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:
In[21]:=
Poziv funkcije kub2:
In[22]:=
Out[22]=
In[23]:=
Out[23]=
In[24]:=
Out[24]=
|
Notebook izradili: Vladimir Benić i Sonja Gorjanc