Loading…
Transcript

PYTHON

Igor Pavlovski

PYTHON OKRUZENJE

HELLO WORLD!

OVDE(python shell-NEW WINDOW) KODIRAMO

OVDE (PYTHON SHELL)DOBIJAMO REZULTATE KODIRANJA

ROBOT KAREL

PROMENLJIVE (VARIJABLE)

PROMENLJIVE

Promenljive su pojmovi,objekti koji sadrže neke vrednosti, u koje se mogu upisivati vrednosti, čitati vrednosti i menjati.

U programiranju, promenljive predstavljaju podatke kojima se upravlja u programima.

Promenljive mogu menjati vrednost u toku izvršavanja programa, otuda potiče reč promenljiva ili na engleskom variable.

U najprostijem smislu to su imenovani delovi memorije kojima se pristupa u programu.

Promenljive je najlakše zamisliti kao kutije koje sadrže vrednosti nekih podataka.

Umesto broja, u promenljivu možete da upišete i tekst ili vrednost iz neke druge promenljive:

X = 3

Y = X

Prva naredba će upisati vrednost 3 u promenljivu X. Druga naredba će pročitati vrednost koja se nalazi u promenljivoj X i upisati je u promenljivu Y.

Za dodeljivanje vrednosti promenljivoj koristi se znak

DODELJIVANJE VREDNOSI PROMENLJIVOJ

a=8

b=6

c=10

a je ime promenljive, 8 je njena vrednost

Zadatak 1

1.Napisi program koji ce izracunavati obim trougla cije su stranice 8, 6 i 10 i da reazultat glasi u obliku teksta- "Obim je:".

Zadatak

SAVET: Rekli smo da promenljive imenujemo i onda im vrednosti dodeljujemo( tako sto ukucamo znak =)

SAVET: Za ispisivanje vrednosti na ekranu koristimo funkciju print.

Pomocu nje se mogu napisati broj, tekst ili vrednost promenljive

RESENJE

UGRADJENE FUNKCIJE

Na primer, funkciji može da se zada da kao ulazni parametar bud dužina stranice jednakostraničnog trougla

a, a da kao rezultat izbaci obim tog trougla tj. 3*a.

Sto znaci da se odredjivanje vrednost te funkcije bazira i zavisi od ulaznog parametra a, tj. od stranice a

Funkcije su jedan od osnovnih pojmova matematike i programiranja.

One predstavljaju koriscenje i transformaciju određenih ulaznih vrednosti (tj. parametara, argumenata) u jednu ili više izlaznih vrednosti tj. rezultata.

UGRADJENE FUNKCIJE

OSNOVNE UGRADJENE FUNKCIJE

min, max - minimum i maksimum

abs - apsolutna vrednost

math.pow, math.sqrt - stepen, kvadratni koren

round, math.floor, math.ceil - zaokrugljivanje realnih brojeva

Osnovne ugradjene funkcije

Učitavanje podataka pri pokretanju programa

U programskom jeziku Python uobičajeno je da se podaci zadaju na početku programa.

Jedan način da se zatraži od korisnika da unese neki ceo broj jeste da se u programu navede

Ceo broj = int(input("Unesi jedan ceo broj:"))

Ako želimo da dopustimo da se unose i realni brojevi, tada u programu moramo navesti

broj = float(input("..."))

input

Programeri, napravite program koji ce vam izracunati koliko je vremena potrebno da se automobilom stigne iz jednog grada u drugi.

Obrazac za izracunavanje vremena sledeci :vreme=udaljenost/brzina

#iskoristite naredbu input koja ce od korisnika traziti da unese udaljenost izrazenu u kilometrima(celi brojevi) i brzinu koja se izrazava u km/h(celi brojevi)

Napisi program koji ce od korisnika traziti da unese dva cela broja,x i y, a zatim izracunati njihov zbir i ispistati rezultat zbira.

ZADACI /PRIMERI

RESENJE

RESENJE

MINIMUM I MAXIMUM

U mnogim zadacima potrebno je odrediti manji ili veći od dva data broja. Pošto je taj zadatak veoma čest, programski jezik Python nudi rešenje u vidu funkcija min i max.

Koja je vrednost izraza min(min(5, 2), 3)?

Minimum i maximum

Na primer, vrednost izraza min(2, 5) je onaj broj koji je najmanji.

Izraz min(2, 5), predstavlja poziv funkcije min sa argumentima 2 i 5.

Damir, Sneža i Mica su igrali igricu na računaru.

Koliki je najveći broj poena (high-score) koji je osvojio neko od njih?

#koristiti int,input naredbe da uneses proizvoljne brojev osvojenih poena za Damira,Snezu i Micu

ZADACI/PRIMERI

RESENJE

Asolutna vrednost- abs

U jeziku Python apsolutnu vrednost možemo izračunati pomoću funkcije abs.

Tako je vrednost izraza abs(5) jednaka 5, dok je vrednost izraza abs(-3) jednaka 3.

Apsolutnom vrednošću se određuje odstupanje broja od nule.

Na primer, broj 4 odstupa od nule za 4, dok broj -5 odstupa od nule za 5 jedinica.

Apsolutna vrenost(abs)

Jedna od najznačajnijih primena apsolutne vrednosti je da se izračuna udaljenost brojeva, bez obzira na njihov međusobni odnos. Naime, rastojanje između brojeva x1 i x2 je jednako apsolutnoj vrednosti njihove razlike tj. vrednosti I x1-x2 I bez obzira da li je x1>=x2 ili je x1<=x2

Spratovi u jednoj zgradi su obeleženi brojevima od -2 do 10 (brojevi -2 i -1 označavaju dva nivoa ispod zemlje, 0 označava prizemlje, dok ostali brojevi označavaju spratove iznad zemlje).

Ako se znaju spratovi na kojima se nalaze dva drugara, izračunaj koliko su spratova udaljeni.

zadaci

RESENJE

PROGRAMI LINIJSKE STRUKTURE

PROGRAMI LINIJSKE STRUKTURE

Algoritamske/programske strukture se dele u tri osnovne grupe:

Linijska (sekvencija)

Razgranata (uslovna, selekcija)

Ciklična (iteracija, ponavljanje).

linijski - algoritmi kod kojih se svaki korak izvršava tačno jedanput, jedna za drugom;

razgranati - algoritmi kod kojih se neki koraci mogu izvršiti jednom ili nijednom u zavisnosti od uslova;

ciklični - algoritmi kod kojih se neki koraci mogu izvršiti više puta tj. ponavljaju.

PODSETNIK

Kornjača grafika je sastavni deo jezika Python i lep način da se prikažu neki osnovni koncepti programiranja u kojem se neki zamišljeni lik kreće po ekranu ostavljajući pritom trag koji čini crtež.

KORNJAČA GRAFIKA

Naredbe kornjače

Da bismo u našim programima mogli koristiti crtanje uz pomoć kornjače, potrebno je prvo da uključimo biblioteku za rad sa kornjačom (to se radi tako što navedemo import turtle). Nakon toga možemo izdavati naredbe našoj kornjači. Svaka naredba će počinjati sa turtle.???

Da bismo videli našu kornjaču (umesto strelice koja se podrazumevano prikazuje) možemo upotrebiti naredbu turtle.shape("turtle").

import turtle/forward

Crtanje linije

Kornjača se na početku nalazi u centru ekrana i okrenuta je nadesno (u smeru istoka).

Naredbom turtle.forward(100) kornjači govorimo da se pomeri napred (u smeru u kom je trenutno okrenuta) 100 koraka i tako, pošto naša kornjača podrazumevano sa sobom nosi olovku kojom crta, postižemo da se na ekranu nacrta duž dužine 100 piksela.

ispisane naredbe:

import turtle

turtle.shape("turtle")

turtle.forward(100)

BRZINA

BACKWARD

Osim pomeranja napred, kornjača može da se kreće i unazad, crtajući pri tom liniju. Naredba kojom se to postiže je turtle.backward

Da bismo videli jasnije kako kornjača radi, možemo joj promeniti brzinu kretanja.

turtle.speed(0) nam daje najbržu kornjaču (nakon pokretanja programa se odmah vidi gotov crtež), dok turtle.speed(10) daje najsporiju kornjaču (moguće je navesti i bilo koju celobrojnu vrednost između 0 i 10).

brzina kornjace/backward

ispisane naredbe:

import turtle

turtle.shape("turtle")

turtle.speed(10)

turtle.forward(100)

ispisane naredbe:

import turtle

turtle.shape("turtle")

turtle.speed(10)

turtle.backward(100)

BOJA

DEBLJINA LINIJE

Pomoću turtle.width postavljamo debljinu traga koji kornjača ostavlja, pri čemu se debljina zadaje kao parametar.

Na primer, naredbom turtle.width(5) postižemo da linije koje se crtaju budu debele 5 piksela.

Moguće je postaviti različite parametre koji određuju način na koji se vrši iscrtavanje

Pomoću turtle.color možemo promeniti boju kornjače i njene olovke (i tako promeniti i boju traga tj. linija koje se crtaju).

Kao parametar ove naredbe u zagradama pod navodnicima navodimo ime željene boje na engleskom jeziku. Na primer, naredba turtle.color("red") postavlja crvenu boju..

boja i debljina linije

ispisane naredbe:

import turtle

turtle.speed(5)

turtle.shape("turtle")

turtle.width(5)

turtle.color("red")

turtle.forward(50)

turtle.color("green")

turtle.forward(50)

PODIZANJE OLOVKE

Zadatak: dopuni naredni program tako da kornjača nacrta isprekidanu liniju koja se sastoji od tri duži.

podizanje olovke

Kornjača tokom svog kretanja ostavlja trag. Međutim, nekada je zgodno da kornjaču pomerimo bez crtanja.

Naredbom turtle.penup() kornjača podiže svoju olovku i nakon toga se kreće po ekranu ne ostavljajući trag sve dok joj se ne izda naredba turtle.pendown() nakon čega ponovo počinje da ostavlja trag tokom kretanja.

ispisane naredbe:

import turtle

turtle.shape("turtle")

turtle.speed(10)

turtle.forward(20)

turtle.penup()

turtle.forward(20)

turtle.pendown()

turtle.forward(20)...

NASTAVI DALJE...

OKRETANJE KORNJACE

OTISCI KORNJACE

Naredbom turtle.stamp() kornjača može da ostavi svoj otisak na mestu na kom se trenutno nalazi.

Kornjača može menjati svoj smer kretanja tako što se okreće nalevo (u smeru suprotnom smeru kretanja kazaljke na satu) ili nadesno (u smeru kretanja kazaljke) za određeni broj stepeni,

Za to se koriste naredbe turtle.left(n) i turtle.right(n) gde je n broj stepeni.

okretanje/otisci kornjace

ispisane naredbe:

import turtle

turtle.shape("turtle")

turtle.speed(10)

turtle.penup()

turtle.stamp()

turtle.forward(50)

turtle.stamp()

turtle.forward(50)

turtle.stamp()

ispisane naredbe:

import turtle

turtle.speed(10)

turtle.forward(50)

turtle.left(60)

turtle.forward(50)

turtle.right(60)

turtle.forward(50)

PREGLED NAREDBI

pregled naredbi

PROGRAMI RAZGRANATE STRUKTURE

PROGRAMI RAZGRANATE STRUKTURE

U životu često neke stvari radimo samo ako je neki uslov ispunjen.

Na primer, ako pada kiša, tada ćemo poneti kišobran. Ako je naša visina veća od 140 cm, tada će nas pustiti da se spuštamo niz vodeni tobogan

u akva-parku.

I u programiranju se određene naredbe izvršavaju samo ako neki uslov ispunjen.

NAREDBE GRANJANJA

Da bi se opisalo uslovno izvršavanje nekih naredbi koristi se naredba if (reč if na engleskom jeziku znači ako)

Često se javlja i potreba da se u zavisnosti od toga da li je uslov ispunjen izvrši jedna ili druga grupa naredbi.

Na primer, ako je korisnik uneo ispravnu lozinku treba mu poželeti dobrodošlicu na sajt, a u suprotnom mu treba javiti da uneta lozinka nije ispravna.

Takav oblik organizacije izvršavanja programa se postiže naredbom if-else (reč else na engleskom jeziku znači u suprotnom) koji u jeziku Python ima sledeći oblik:

Naredbom if-else tok programa se razdvaja na dve mogućnosti (mogu se izvršiti naredbe ispod if ili ispod else), pa se kaže da se tok programa na tom mestu grana, a naredba if-else naziva se naredba grananja.

naredbe granjanja

  • Nakon uslova se mora obavezno navesti dvotačka (karakter :)
  • Naredbe koje se izvršavaju uslovno moraju se malo uvući (obično se to uradi tako što se ispred svake naredbe otkucaju tri razmaka).

Primetimo da je dvotačku potrebno navesti i iza else, kao i da su oba bloka naredbi uvučena.

Poređenje (relacijski operatori)

Najjednostavniji oblik uslova je poređenje nekih veličina. Računar ume da poredi veličine (brojeve, ali i niske). Za to se koriste operatori slični onima koje ste već videli u matematici:

Rezultat primene ovih operacija je tačno ili netačno (kažemo da je rezultat logička tj. istinitosna vrednost).

Ilustrujmo sada primenu grananja i poređenja kroz nekoliko jednostavnih programa.

Poređenje

(relacijski operatori)

a < b proverava da li je a manje od b

a > b proverava da li je a veće od b

a >= b proverava da li je a veće ili jednako b

a <= b proverava da li je a manje ili jednako b

a == b proverava da li je a jednako b

a != b proverava da li je a različito od b

Pokušaj sada da izmeniš prethodni program tako što ćeš onima koji imaju 15 ili više godine reći da nikada nije kasno da krenu sa učenjem programiranja.

1.

2.

Napišimo program koji korisnicima mlađim od 15 godina šalje posebnu pohvalu jer su krenuli da programiraju veoma rano.

3.

primeri/zadaci

Napiši program koji na osnovu visine deteta određuje da li dete sme da ide na tobogan.

Uslov:Moze ako je visi od 140.Upotrebi ELSE za decu koja nisu visa da im kazses-Jos ne mozes na tobogan.

1.RESENJE

2.RESENJE

3..RESENJE

LOGICKE VREDNOSTI

Ako u prethodnom programu u prvom redu umesto vrednosti True postaviš vrednost False, dobićeš drugačiju poruku nakon pokretanja programa.

Promenljiva može da sadrži i istinitosne vrednosti (logičke vrednosti ili iskazne vrednosti) tačno tj. True i netačno tj. False.

Promenljive čije su vrednosti istinitosne se kažu da su logičke ili bulovske (tj. da su tipa bool - u čast velikog matematičara Džordža Bula koji je prvi uveo matematički račun nad istinitosnim vrednostima).

LOGICKE VREDNOSTI

pada_kisa = True

if pada_kisa:

print("Ponesi kišobran")

else:

print("Ne moraš da nosiš kišobran")

Kombinovanje više logičkih uslova (logički operatori)

Kada je u naredbi if potrebno povezati vise uslova, koriste se logicke operacije and,or,not koje se primenjuju na logicke vrednosti

Kombinovanje više logičkih uslova (logički operatori)

Izraz uslov1 and uslov2 je tacan samo ako su oba uslova tacna!

Izraz uslov1 or uslov2 je netacan samo ako su oba uslova netacna!

Operacija not predstavlja negaciju. Primenom ove operacije logicka vrednost TACNO postaje NETACNO i obrnuto

Programeri, napisite program koji proverava da li je broj trocifren.

Savet: broj je trocifren ako pripada intervalu[100,999]

zadatak

resenje

broj=int(input('Unesi broj: '))

if broj>=100 and broj<=999:

print('Broj je trocifren.')

else:

print('Broj nije trocifren.')