Upload
others
View
1
Download
0
Embed Size (px)
Citation preview
Programmeerimine
5.loeng
T�ana loengus
Funktsioonid ja protseduurid
Protseduurid
Protseduurid
Protseduur on suhteliselt iseseisev korduvkasutatav program-
miosa, mis koosneb k�askudest ja mida on v~oimalik v�alja kut-
suda tema nime kaudu.
Protseduur v~oib olla parametriseeritud argumentidega, mille
konreetsed v�a�artused m�a�aratakse protseduuri v�aljakutsel.
Protseduuride de�neerimine Pythonis:
def procName(arg1,. . . ,argn):
procBody
Pykkar v�arvib triibu
Protseduurid
Algseis: Pykkar on p~ohjaserval n�aoga l~ounasse. Pykkar
v�arvib triibu
from pykkar import �def triip ():while True:paint()if is wall ():break
else:step()
Pykkar liigub tagasi
Protseduurid
Algseis: Pykkar on l~ounaserval n�aoga l~ounasse. Pykkar
p�o�orab �umber ja liigub p~ohjaservani.
from pykkar import �def tagasi ():right () # �umberp�o�ord
right ()while True:
if is wall ():break
else:step()
P~ohiprogramm
P~ohiprogramm
Algseis: Pykkar on loodenurgas n�aoga l~ounasse. Pykkar
v�arvib ruudustiku triibuliseks.
from pykkar import �while True:
triip ()tagasi ()right ()if is wall (): # ei lase robotil vastu seina p~orgata
breakelse:step() # robot liigub �uhe ruudu v~orra edasi
if is wall ():break
else:step()right ()
Kontrollt�o�o �ulesanne
Joonistada kilpkonna vahendusel 5� 5 ruudu kahe k�ulje ruudud
�ule �uhe alustades nurgast. Boonus joonistatud k�uljeruutude
v�arvimise eest.
Funktsioonid
Funktsioonid
Funktsioon on protseduur, mis v�aljastab v�a�artuse.
Funktsiooni rakendus on avaldis, mille v�a�artust v~oib kasu-
tada sarnaselt teiste (aritmeetilised-, loogilised-, jne) avald-
istega.
Ilma v�a�artuseta protseduuri saab kasutada lausena ning tema
"toimeks" on k~orvalefekt programmi olekule.
Objektorienteeritud keeltes (n�ait. Java) on protseduurid seo-
tud mingi klassiga, misjuhul neid nimetatakse meetodideks.
Funktsioonid
Funktsioonide de�neerimine Pythonis:
def funcName(arg1,. . . ,argn):
funcBody
funcName on funktsiooni nimi.
argi on funktsiooni formaalsed parameetrid.
funcBody on funktsiooni keha, mis koosneb lausetest.
Funktsiooni v�aljakutsel antakse formaalsetele parameetritele
tegelike argumentide v�a�artused.
Formaalsed parameetrid ja funktsiooni kehas de�neeritud
muutujad on funktsioonis lokaalsed; so. on n�ahtavad ainult
selle funktsiooni kehas.
return lause l~opetab funktsiooni t�o�o ja kui tal on argument,
siis selle v�a�artus on funktsiooni v�aljakutse v�a�artuseks.
Funktsioonid
N�aide { keskmise arvutamine
def keskmine(arv1,arv2):k = (arv1 + arv2) / 2return k
N�aide { temperatuuri teisendamine Fahrenheiti skaalasse
def celsius2Fahrenheit(tempC):tempF = round(tempC�1.8+32.0)return tempF
Funktsioonid
N�aide { keskmise arvutamine
def keskmine(arv1,arv2):k = (arv1 + arv2) / 2return k
N�aide { temperatuuri teisendamine Fahrenheiti skaalasse
def celsius2Fahrenheit(tempC):tempF = round(tempC�1.8+32.0)return tempF
Kontrollvoog funktsioonide v�aljakutsetel
Main Foo Bar
Foo(); Bar();
Funktsioonid
arv = 7
arv = keskmine(arv + 1; 2)arv = keskmine(arv; arv � 2)
def keskmine(arv1; arv2) :k = (arv1+ arv2)=2return k
Funktsioonid
arv = 7
arv = keskmine(arv + 1; 2)arv = keskmine(arv; arv � 2)
def keskmine(arv1; arv2) :k = (arv1+ arv2)=2return k
arv 7
Funktsioonid
arv = 7
arv = keskmine(arv + 1; 2)arv = keskmine(arv; arv � 2)
def keskmine(arv1; arv2) :k = (arv1+ arv2)=2return k
arv 7
arv1
arv2
8
2
Funktsioonid
arv = 7
arv = keskmine(arv + 1; 2)arv = keskmine(arv; arv � 2)
def keskmine(arv1; arv2) :k = (arv1+ arv2)=2return k
arv 7
arv1
arv2
k
8
2
5
Funktsioonid
arv = 7
arv = keskmine(arv + 1; 2)arv = keskmine(arv; arv � 2)
def keskmine(arv1; arv2) :k = (arv1+ arv2)=2return k
arv 5
Funktsioonid
arv = 7
arv = keskmine(arv + 1; 2)arv = keskmine(arv; arv � 2)
def keskmine(arv1; arv2) :k = (arv1+ arv2)=2return k
arv 5
arv1
arv2
5
3
Funktsioonid
arv = 7
arv = keskmine(arv + 1; 2)arv = keskmine(arv; arv � 2)
def keskmine(arv1; arv2) :k = (arv1+ arv2)=2return k
arv 5
arv1
arv2
k
5
3
4
Funktsioonid
arv = 7
arv = keskmine(arv + 1; 2)arv = keskmine(arv; arv � 2)
def keskmine(arv1; arv2) :k = (arv1+ arv2)=2return k
arv 4
Funktsioonid
Funktsiooni keha v~oib alata s~onega, mis annab funktsiooni
l�uhikirjelduse (ingl. docstring).
{ Vastav s~one seotakse funktsiooniobjekti atribuudiga doc .
N�aide { Fahrenheiti skaalast temperatuuri teisendamine
def fahrenheit2Celsius(t ):"""Teisendab temperatuuri Fahrenheiti skaalast
Celsiuse skaalasse."""
return round(5�(t�32)/9)
Kolmest arvust suurim
Funktsioonid
N�aide { kolmest arvust suurim
def kolmestSuurim(a, b, c):suurim = aif suurim < b:
suurim = bif suurim < c:
suurim = creturn suurim
J�argmiseks korraks
Lugeda l�abi ~opiku peat�ukid:
{ Ptk. 5 "Alamprogrammid ehk funktsioonid"
{ Ptk. 6 "Tingimuslaused"
Suur t�anu osalemast
ja
kohtumiseni!