Математичке функције¶
У програмирању стално користимо функције. На пример, print(), input(), int(), float() и str() су функције језика Пајтон, које смо до сада већ користили. У пајтону постоје и многе друге функције, а међу њима и велики број оних које се користе у математици. Неке од једноставнијих математичких функција ћемо видети у наставку.
Функције abs(), min() и max()¶
Функције abs(), min() и max() се често користе у рачунским задацима. Вероватно сте их негде већ користили, па ћемо их објаснити само укратко:
функција abs() враћа апсолутну вредност бројчаног израза који јој се проследи као аргумент (апсолутна вредност броја се добија када се одбаци знак броја, видети пример испод);
функција min() може имати два или више бројчаних аргумената, а враћа вредност најмањег од њих;
функција max() може имати два или више бројчаних аргумената, а враћа вредност највећег од њих;
Ево како изгледа употреба ових функција у програму:
Функције abs(), min() и max() - питања¶
Проверите разумевање горе поменутих функција:
- 10
- Тачно!
- 20
- Функција min враћа најмању од вредности које јој се проследе као аргументи.
- 30
- Функција min враћа најмању од вредности које јој се проследе као аргументи.
Q-17: Која је вредност израза min(10, 20, 30)
?
- 10
- Функција max враћа највећу од вредности које јој се проследе као аргументи.
- 20
- Функција max враћа највећу од вредности које јој се проследе као аргументи.
- 30
- Тачно!
Q-18: Која је вредност израза max(10, 20, 30)
?
-
Q-19: Упарите вредности израза ``min(100, max(0, x))`` са условима за x.
Покушајте поново!
- вредност израза је 0
- ако је x мање од нуле
- вредност израза је x
- ако је x између 0 и 100
- вредност израза је 100
- ако је x веће од 100
-
Q-20: Упарите изразе са њиховим вредностима.
Покушајте поново!
- abs(x)
- x ако је x позитивно, а супротан број иначе
- max(0, x)
- x ако је x позитивно, а нула иначе
- min(0, x)
- x ако је x негативно, а нула иначе
- min(0, abs(x))
- увек нула
Функције за заокруживање вредности¶
Заокруживање реалне вредности на цео број је операција која нам је такође често потребна. Већ смо видели да конверзијом реалног броја у цео вршимо заокруживање ка нули. Постоји још неколико функција помоћу којих у Пајтону можемо да закоружимо реалан број на разликите начине:
функција round() враћа цео број најближи вредности аргумента (резтултат је целобројног типа);
функција floor() враћа најближи цео број, мањи или једнак вредности аргумента (резтултат је реалног типа);
функција ceil() враћа најближи цео број, већи или једнак вредности аргумента (резтултат је реалног типа);
Покрените следећи програм да бисте видели како раде ове функције и да бисте их упоредили.
Примећујемо да су функције floor и ceil по нечему различите од функције round и свих претходних функција - испред њиховог имена у програму пише math.
. То је зато што су ове функције дефинисане у модулу који се зове math. Модули су програмске целине које садрже разне функције, константе и друге делове кода које можемо да користимо у нашим програмима. Тако и модул math поред функција floor и ceil садржи и многе друге функције. На пример, позната константа пи се може користити као math.pi, а функција квадратни корен као math.sqrt (овде их нећемо користити).
Да бисмо могли да користимо функције модула math, потребно је да овај модул прикључимо нашем програму. То смо урадили пишући import math
на почетку програма. Тиме смо наравно омогућили коришћење и свих других математичких функција и свега другог што је дефинисано у овом модулу.
За фукцију round и све претходне функције није потребно прикључивати никакав посебан модул, јер су те функције уграђене у сам језик Пајтон, тако да су нам увек директно на располагању.
Функције за заокруживање вредности - питања¶
Проверите разумевање функција објашњених у овој лекцији:
- -2
- Прочитајте поново објашњења функција abs и round.
- 2
- Функција round враћа најближи цео број.
- -3
- Функција abs враћа апсолутну вредност броја, која је увек већа или једнака нули.
- 3
- Тачно!
Q-21: Која је вредност израза abs(round(-2.7))
?
- max(x, round(x))
- Тачно!
- max(x)
- Функција max треба да има бар два аргумента.
- round(x)
- На овај начин износ може и да се смањи.
- abs(x)
- Износ је већ позитиван, функцијом abs се овде ништа не постиже.
Q-22: Један касир заокружује рачун на најближи цео број само ако се тиме износ повећава, у противном пријављује износ какав јесте. Коју формулу примењује тај касир (x је полазна вредност рачуна)?
-
Q-23: Упарите функције за заокруживање са начином заокруживања.
Покушајте поново!
- ка нули
- int()
- ка ближем целом броју
- round()
- ка мањем целом броју
- floor()
- ка већем целом броју
- ceil()
Задатак за радознале - функција round
Функција round може да се позове и са два аргумента (ми је иначе нећемо тако користити), где је други аргумент обично мали цео број. Проверите на пример колико је \(round(123.23456, 2)\), \(round(123.23456, 3)\) и \(round(123.23456, -1)\). Можете да користите простор испод за помоћни програм.
Покушајте да објасните чему служи други аргумент функције round, када се функција позове са два аргумента.