Prijavi problem


Obeleži sve katergorije koje odgovaraju problemu

Jos detalja - opišite nam problem


Uspešno ste prijavili problem!
Status problema i sve dodatne informacije možete pratiti klikom na link
Na žalost nismo trenutno u mogućnosti da obradimo Vaš zahtev.
Molimo Vas da pokušate kasnije.

Programiranje u Pajtonu, priručnik za šesti razred

Дефинисање функција

Видели смо колико је корисно када на располагању имамо дате функције попут min, max или abs. Сви програмски језици, па и Python 3 допуштају корисницима да дефинишу своје функције.

Примери дефинисања функција

На пример, функција која израчунава обим једнакостраничног троугла се може дефинисати и онда употребити на следећи начин.

Слично, функција која израчунава обим правоугаоника се може дефинисати и онда употребити на следећи начин.

Дефиниција функције почиње речју def након тога се наводи назив функције, затим у заградама наведени улазни параметри функције и симбол двотачка (:). Након те прве линије наводи се тело функције, које мора бити мало увучено. Код најједноставнијих функција (као што су ове две наведене у примерима) тело функције представља само наредба return након које се налази израз који представља везу између улазних параметара и резултата функције. Код компликованијих функција у телу се налазе дужа израчунавања, али се и даље у телу функције (најчешћње на самом крају) налази наредба return иза које се наводи вредност функције (то може бити и име променљиве у којој је израчуната резултујућа вредност).

Обим квадрата

Дефиниши функцију која на основу дужине странице израчунава површину квадрата.

Функције са више резултата

У неким ситуацијама функција треба да врати више вредности. На пример, желимо да претварање центиметара у метре и центиметре опишемо у облику посебне функције. Резултат тада можемо вратити у облику пара или торке елемената (више речи о паровима и торкама је дато у поглављу о представљају података у програмима).

Секунде у сате, минуте и секунде

Напиши функцију која на основу броја секунди протеклих од претходне поноћи израчуна тренутно време у сатима, минутима и секундама, водећи рачуна да број сати буде између 0 и 23.

У наредној дефиницији функције направљено је неколико грешака. Исправи је тако да наредни програм да исправне резултате.

Када програм покренеш треба да испише 0 : 16 : 40 и 2 : 0 : 0.

Сврха дефинисања функција

Једини разлог да уведемо функције у ових неколико примера био је да се добију разумљивији програми (ономе ко чита главни програм много је јасније да се у неком делу израчунава површина правоугаоника ако у програму види израз povrsina_pravougaonika(2, 5) него ако види израз 2 * (2 + 5)).

Функције помажу да се програм скрати тако што се избегава понављање истог програмског кода (ако је тај програмски код дугачак и компликован, издвајање у функцију може значајно поједноставити и скратити програм). Ако се покаже да је тај део кода често потребно мењати (што је често случај у програмирању) то што се код јавља само једном (у склопу тела функције) чини одржавање много једноставнијим (не морамо измене да правимо на пуно места, већ само на једном).

Функције помажу и да се неки проблеми реше, тако што омогућавају разлагање комплексних проблема на једноставније потпроблеме.

Прикажимо како се иста функција може више пута употребити у решењу следећег задатка.

Месечне промене плате

Основна плата једног радника у првом месецу била је 48.375 динара. У наредном месецу је повећана за 10%, затим је у наредном месецу смањена за 5%, а затим је у наредном месецу опет повећана за 15%. Приликом сваке промене, плата је заокруживана на најближи цео број динара. Колико је износила плата тог радника у четвртом месецу?

Формулу за промену новчаног износа за одређени проценат смо већ раније разматрали. Ако се плата \(P\) увећава за \(p\%\) тада је нови износ једнак \(P \cdot (1 + \frac{p}{100})\). Након овога, потребно је додатно заокружити износ на најближи цео број коришћењем функције round. Пошто је формула компликована, уместо да је више пута користимо у програму, много је боље издвојити је у посебну функцију.

Допуни дефиницију те функције, и затим исправи аргументе у њеним позивима у складу са текстом задатка. Провери на крају да ли је резултат који добијеш тачан.

Плата у четвртом месецу је

На крају можеш да пробаш да урадиш још неколико задатака из ове области, које смо ти припремили.