понедељак, 29. април 2024.

Информатика и рачунарство - 6. разред - Функције

Функције су један од основних појмова у математици. Самим тим спадају међу основне појмове и у програмирању.  Оне програмерима знатно олакшавају рад. Уколико у програму постоји део кода који се понавља и ако је притом он још и дугачак и компликован, можеш га издвојити у функцију. Тиме значајно поједностављујеш и скраћујеш програм. 
У програмирању, део програмског кода сачуван под неким именом који обавља одређени задатак када се то од њега захтева зове се ФУНКЦИЈА. Једном написану функцију можеш искористити (позвати) на више места.
Python има велику предност на  Scratch-ом. Он садржи неке већ дефинисане функције. Оне се називају УГРАЂЕНЕ ФУНКЦИЈЕ. Можеш их користити, тј. позвати у било ком свом програму на било ком месту у коду.
Функција се позива помоћу њеног имена. Затим се у загради наводе улазни подаци које функција треба да обради. Улазни подаци функција називају се ПАРАМЕТРИ, односно аргументи функције. Излазни податак функције је њен РЕЗУЛТАТ.  

У наставку ћу  описати следеће уграђене функције:
  • min, max - минимум и максимум
  • len -  трансформише стринг у број
  • abs - апсолутна вредност
  • math.pow, math.sqrt  - степен, квадратни корен 
  • round, math.floor, matj.ceil заокругљивање реалних бројева


Минимум и максимум


У многим задацима потребно је одредити мањи или већи од два дата броја. Пошто је тај задатак веома чест, програмски језик Python нуди решење у виду функција min и max
Пример 1: 
min (2,7) = 2
max (8,3) =8
max(min(15,10),3)=max(10,3)=10
min(max(1,10),3)=min(10,3)=3
min(min(2,8),1)=min(2,1)=1

Пример 2: Напиши програм који ће приказивати најмањи од три написана броја.
prvi_broj=int(input("Unesi prvi broj: "))
drugi_broj=int(input("Unesi drugi broj: "))
treci_broj=int(input("Unesi treci broj: "))
najmanji_broj=min(prvi_broj, drugi_broj, treci_broj)       
print("Najmanji broj je: ", najmanji_broj)


Апсолутна вредност


Још једна веома корисна функција коју си упознао у математици је апсолутна вредност. Апсолутном вредношћу се одређује одступање броја од нуле. На пример, број 4 одступа од нуле за 4, док број -5 одступа од нуле за 5 јединица. 

Дакле апсолутна вредност броја  x, која се, подсетимо се, обележава са |x|, једнака је самом броју x  ако је x 0  тј. броју  x, ако је  x < 0У језику Python апсолутну вредност можемо израчунати помоћу функције abs.

Пример 3: 
abs(5) = 5
abs(-15) = 15
abs(- 10.3) = 10.3

Пример 4: Cпратови у једној згради су обележени бројевима од -2 до 10 (бројеви -2 и -1 означавају два нивоа испод земље, 0 означава приземље, док остали бројеви означавају спратове изнад земље). Ако се знају спратови на којима се налазе два другара, израчунај колико су спратова удаљени.

sprat1 = 3
sprat2 = -1
rastojanje = abs(sprat1 - sprat2)
print(rastojanje)


Остале математичке функције


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

Слично, функција math.ceil заокружује дати реалан број навише тј. на најмањи цео број већи или једнак њему, док math.floor заокружује дати реалан број наниже тј. на највећи цео број мањи или једнак њему. 

Пример 5:
math.ceil (2.1)=3
math.floor (2.1)=2
math.ceil (2.9)=3
round(4.1)=4
math.floor (2.9)=2
math.ceil(7.25)=8
mat.floor(7.25)=7
round(4.8)=5

Приметимо да имена ових функција почињу са math. Оне су део такозване математичке библиотеке и да би се могле користити у програму на његовом почетку мора бити написано import math.


Функција math.sqrt израчунава квадратни корен тј. онај ненегативан број који када се помножи сам са собом (када се квадрира) даје полазни број. 

На пример, важи да је 4 број 
 (то се у  математици записује као  4=2.)
4=2

Пример 6:
math.sqrt(64)=8
math.sqrt(100)=10
math.sqrt(144)=12


Пример 7: Напиши програм који за дату површину квадрата израчунава дужину његове странице.

import math
P = float(input("Unesi površinu kvadrata: "))
a = math.sqrt (P)
print("Dužina stranice je: ", a)

Функција math.pow  врши степеновање. На пример, 
28=256 се може израчунати помоћу math.pow(2, 8). Као што множење означава узастопно сабирање, тако степеновање означава узастопно множење. Други степен броја 2 je 22=22=4, трећи степен броја 2 је 23=222=8 и тако даље. Степеновање се може израчунати и оператором **. Тако се уместо math.pow(2, 8) може употребити израз 2 ** 8 чија је вредност такође 256.
Осим функција, у библиотеци math дефинисане су и разне корисне константе. На пример, број π који представља однос пречника и обима круга доступан је помоћу math.PI (вредност тог броја је око 3,141592).

Пример 8: 
math.pow(2, 3)=2 **3=8
math.pow(3, 2)=3**2=9
math.pow(5, 2)=5**2=25



Функција  len броји колико карактера (знакова) садржи неки стринг.

len ("Останикодкуће!")=14

О овој функцији ћемо више радити када будемо радили лекцију Стрингови.


Још неке од функција које смо већ користили су:

print - користи се за исписивање вредности променљиве или конкретне вредности
input - тражи од корисника програма да унесе неку вредност
int - вредност написану у заградама претвара у цео број.
float- вредност написану у заградама претвара у реалан број.



ДОМАЋИ ЗАДАТАК:


1. Напиши  програм тако да израчунава и исписује вредност израза:

1,5+1,5:|0,5|2:0,5

x=  ?????  ispravi ovaj red
print(x)


2. Јовановићи желе да уплате летовање. За исти хотел добили су понуде од две туристичке агенције. Напиши програм који одређује колико ће платити летовање, ако бирају јефтинију понуду.

ponuda1=43125
ponuda2=45182
povoljnija_ponuda=   ?????  ispravi ovaj red
print(povoljnija_ponuda)


3.  Која је вредност израза?

math.sqrt(max(25, 10))=
math.pow(max(5,2),2)=
math.ceil(8.4)=
round(135.5)=
print(max(34, 18) - min(34, 52))=
print(abs(-83))=

понедељак, 22. април 2024.

Информатика и рачунатсво - 7.разред - Комбиновање облика


Напиши у свесци наслов ове лекције и оно што је по теби најважније.

О овој лекцији можеш пронаћи на линку ОВДЕ. 

дуж
pg.draw.line(prozor, boja, (x1, y1), (x2, y2), debljina)
правоугаоник
pg.draw.rect(prozor, boja, (x, y, sirina, visina), debljina)
круг
pg.draw.circle(prozor, boja, (x, y), r, debljina)
елипса
pg.draw.ellipse(prozor, boja, (x, y, sirina, visina), debljina)
лук
pg.draw.arc(prozor, boja, (x, y, sirina, visina), od_ugao, do_ugao, debljina)

Ево примера Чича Глише

import pygame
pygame init()
prozor=pygame.display.set_mode((300,300))
pygame.display.set_caption("Glisa")
prozor.fill(pygame.Color("white")
      # iscrtavamo glavu
pygame.draw.circle(prozor, pg.Color("black"), (150, 70), 20, 5)
      # iscrtavamo šešir
pygame.draw.line(prozor, pg.Color("blue"), (120, 50), (180,50), 3)
pygame.draw.rect(prozor, pg.Color("blue"), (130, 10, 40, 40))
      # iscrtavamo oči
pygame.draw.circle(prozor, pg.Color("black"), (145, 60), 2, 2)
pygame.draw.circle(prozor, pg.Color("black"), (155, 60), 2, 2)
      # iscrtavamo usta
pygame.draw.ellipse(prozor, pg.Color("red"), (140, 75, 20, 10))
       # iscrtavamo telo
pygame.draw.line(prozor, pg.Color("black"), (150, 90), (150,170), 5)
      # iscrtavamo levu ruku
pygame.draw.line(prozor, pg.Color("black"), (150, 110), (100, 120), 5)
pygame.draw.line(prozor, pg.Color("black"), (100, 120), (80, 100), 5)
      # iscrtavamo desnu ruku
pygame.draw.line(prozor, pg.Color("black"), (150, 110), (200, 150), 5)
pygame.draw.line(prozor, pg.Color("black"), (200, 150), (210, 170), 5)
      # iscrtavamo levu nogu
pygame.draw.line(prozor, pg.Color("black"), (150, 170), (130, 200), 5)
pygame.draw.line(prozor, pg.Color("black"), (130, 200), (140, 250), 5)
      # iscrtavamo desnu nogu
pygame.draw.line(prozor, pg.Color("black"), (150, 170), (170, 200), 5)

pygame.draw.line(prozor, pg.Color("black"), (170, 200), (160, 250), 5)
pygame.display.update() 
while pygame.event.wait().type != pygame.QUIT:
    pass
​pygame.quit()





Комбиновање ових облика покушајте у програмском језику Pygame  да нацратате једну од слика доле. 
Идите на портал Петља.