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]:=

2predavanje_1.gif

Pozivanje programa veci

In[9]:=

2predavanje_2.gif

Out[9]=

2predavanje_3.gif

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]:=

2predavanje_4.gif

Pozivanje programa veci2

In[11]:=

2predavanje_5.gif

Out[11]=

2predavanje_6.gif

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]:=

2predavanje_7.gif

Pozivanje

In[13]:=

2predavanje_8.gif

Out[13]=

2predavanje_9.gif

In[14]:=

2predavanje_10.gif

2predavanje_11.gif

Out[14]=

2predavanje_12.gif

In[15]:=

2predavanje_13.gif

2predavanje_14.gif

Out[15]=

2predavanje_15.gif

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).

2predavanje_16.gif    |    2predavanje_17.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:

In[16]:=

2predavanje_18.gif

Poziv programa kub:

In[17]:=

2predavanje_19.gif

Out[17]=

2predavanje_20.gif

In[18]:=

2predavanje_21.gif

Out[18]=

2predavanje_22.gif

In[19]:=

2predavanje_23.gif

Out[19]=

2predavanje_24.gif

In[20]:=

2predavanje_25.gif

Out[20]=

2predavanje_26.gif

2predavanje_27.gif    |    2predavanje_28.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:

In[21]:=

2predavanje_29.gif

Poziv funkcije kub2:

In[22]:=

2predavanje_30.gif

Out[22]=

2predavanje_31.gif

In[23]:=

2predavanje_32.gif

Out[23]=

2predavanje_33.gif

In[24]:=

2predavanje_34.gif

Out[24]=

2predavanje_35.gif

2predavanje_36.gif    |    2predavanje_37.gif

Notebook izradili: Vladimir Benić i Sonja Gorjanc

Spikey Created with Wolfram Mathematica 7.0