5.3. Функције¶
Да бисмо вам приближили појам функције, хајде да размишљамо на следећи начин:
Када бисмо радили неки већи посао, било би корисно да имамо помоћнике који ће нам урадити неки део посла. Функција би у програму била управо један наш помоћник! Она обично нешто израчуна за нас и врати нам резултате који су нам потребни како би наставили даље, али некада и само уради нешто нпр. нацрта неки део цртежа као што ће то бити у следећем примеру.
Функција има свој назив и своје параметре наведене у заградама који су јој потребни да би могла да изврши задатак.
Наредбе функције куцамо само на једном месту које се назива тело функције, а затим позивамо је у помоћ када год нам то затреба!
Функција за цртање испрекидане линије¶
Напишимо (дефинишимо) функцију која исцртава испрекидану линију а као параметар прослеђује јој се број цртица које желимо да линија има.
Дефиниција функције започета је кључном речју def
, након чега је наведен назив функције
(у нашем примеру, то је био isprekidana_linija
), а потом параметар функције у
заградама (ако их има више раздвајају се зарезима). Након двотачке,
наведен је програмски код који чини тело функције, увучен у односу на прву линију
(слично као што је и тело наредби for
, while
и if
увек увучено). Тело сачињавају
наредбе које се извршавају сваки пут када се функција позове.
Дефинисањем функције дефинисали смо заправо нову наредбу коју можемо користити у програму.
Нацртајмо испрекидану линију тако што ћемо користиути ту нову наредбу (позваћемо претходну функцију наводећи њен назив а као параметар проследићемо број цртица које желимо да испрекидана линија има).
Функција за цртање многоугла¶
Приметимо да се цртање многоугла (каже се и полигона) јавило у више различитих програма. Стога је корисно дефинисати функцију за цртање многоугла. Параметри те функције биће број страница полигона и дужина једне странице.
Након ове дефиниције, квадрат чија је страница дужине 100
пиксела нацртаћемо тако што наведемо poligon(4, 100)
, а шестоугао
димензије 50 тако што наведемо poligon(6, 50)
. Са функцијом за
цртање многоугла на располагању, наш програм за цртање три квадрата
различите боје је доста једноставније написати и постаје доста
разумљивији.
Покушај да измениш претходни програм тако да уместо квадрата црта три шестоугла дужине страница 80 пиксела.
Четири квадрата¶
Напиши програм у којем корњача црта облик који се састоји од четири квадрата, како је приказано на наредној слици.
Дефиниши функцију за цртање квадрата, а затим размисли како су ти квадрати међусобно распоређени, тј. колико треба да се окрене корњача након што заврши са цртањем сваког квадрата.
Решење са петљом у петљи.
Решење са помоћном функцијом за цртање квадрата.