22
OSNOVE PROGRAMIRANJA U PAJTONU PREDAVANJE 7 – KOLEKCIJE: TEKST I LISTA Miloš Kovačević Đorđe Nedeljković Marija Petronijević Dušan Isailović

PREDAVANJE 7–KOLEKCIJE:TEKSTI LISTA · PREDAVANJE 7–KOLEKCIJE:TEKSTI LISTA Miloš Kovačević Đorđe Nedeljković MarijaPetronijević Dušan Isailović. SADRŽAJ PREDAVANJA -

  • Upload
    others

  • View
    12

  • Download
    0

Embed Size (px)

Citation preview

Page 1: PREDAVANJE 7–KOLEKCIJE:TEKSTI LISTA · PREDAVANJE 7–KOLEKCIJE:TEKSTI LISTA Miloš Kovačević Đorđe Nedeljković MarijaPetronijević Dušan Isailović. SADRŽAJ PREDAVANJA -

OSNOVE PROGRAMIRANJA U PAJTONU

PREDAVANJE 7 – KOLEKCIJE: TEKST I LISTA

Miloš Kovačević

Đorđe Nedeljković

Marija Petronijević

Dušan Isailović

Page 2: PREDAVANJE 7–KOLEKCIJE:TEKSTI LISTA · PREDAVANJE 7–KOLEKCIJE:TEKSTI LISTA Miloš Kovačević Đorđe Nedeljković MarijaPetronijević Dušan Isailović. SADRŽAJ PREDAVANJA -

SADRŽAJ PREDAVANJA

- Kolekcije objekata

- Sekvence

- Tekst

- Lista

Page 3: PREDAVANJE 7–KOLEKCIJE:TEKSTI LISTA · PREDAVANJE 7–KOLEKCIJE:TEKSTI LISTA Miloš Kovačević Đorđe Nedeljković MarijaPetronijević Dušan Isailović. SADRŽAJ PREDAVANJA -

KOLEKCIJA OBJEKATA

Objekti osnovnih brojnih tipova imaju nedeljivu prirodu.

(ne mogu se podeliti na delove koji sami po sebi imaju smisla)

Često treba sačuvati informacije koje se odnose na istu osobinu različitih entiteta.

ocene iz matematike za sve studente

... ili informacije koje se odnose na pojavu koja se posmatra u vremenu.

prosečna ocena studenta, posle svake godine studiranja

Kolekcija objekata - grupiše srodne podatke unutar jedinstvene celine.

Ona mogućava njihovu obradu na pojedinačnom i zbirnom nivou.

Kolekcija objekata realizovana je kao objekat (odgovarajućeg tipa)

Page 4: PREDAVANJE 7–KOLEKCIJE:TEKSTI LISTA · PREDAVANJE 7–KOLEKCIJE:TEKSTI LISTA Miloš Kovačević Đorđe Nedeljković MarijaPetronijević Dušan Isailović. SADRŽAJ PREDAVANJA -

KOLEKCIJA OBJEKATA

Kolekcija zapravo ne sadrži objekte, već objektne reference!

objektna referenca (adresa objekta u memoriji)

Imaćemo u vidu objektne reference, ali ćemo govoriti da su „objekti u kolekciji“.

Objekti u kolekciji nazivaju se elementi kolekcije.

Page 5: PREDAVANJE 7–KOLEKCIJE:TEKSTI LISTA · PREDAVANJE 7–KOLEKCIJE:TEKSTI LISTA Miloš Kovačević Đorđe Nedeljković MarijaPetronijević Dušan Isailović. SADRŽAJ PREDAVANJA -

SEKVENCE

Sekvenca je uređena kolekcija – podrazumeva postojanje redosleda objekata.

Sekvencama se pristupa preko indeksa pozicije.

Broj elemenata ili dužina sekvence određuje se preko funkcije len().

Page 6: PREDAVANJE 7–KOLEKCIJE:TEKSTI LISTA · PREDAVANJE 7–KOLEKCIJE:TEKSTI LISTA Miloš Kovačević Đorđe Nedeljković MarijaPetronijević Dušan Isailović. SADRŽAJ PREDAVANJA -

TEKSTUALNE SEKVENCE – TIP str

Konstruktor klase String (funkcija koja pravi objekte iz klase)

Page 7: PREDAVANJE 7–KOLEKCIJE:TEKSTI LISTA · PREDAVANJE 7–KOLEKCIJE:TEKSTI LISTA Miloš Kovačević Đorđe Nedeljković MarijaPetronijević Dušan Isailović. SADRŽAJ PREDAVANJA -

TEKST – PRISTUPANJE KARAKTERIMA

Indeks van opsega – greška (izostavljeno)

Jednoelementni tekst – karakter memorisan prema Unicode standardu.Svakom karakteru, po Unicode-u, odgovara jednistveni broj (UCP):

Page 8: PREDAVANJE 7–KOLEKCIJE:TEKSTI LISTA · PREDAVANJE 7–KOLEKCIJE:TEKSTI LISTA Miloš Kovačević Đorđe Nedeljković MarijaPetronijević Dušan Isailović. SADRŽAJ PREDAVANJA -

PRISTUPANJE KARAKTERIMA

foreach petlja(za svaki element u sekvenci, radi …)

Očigledno, range je sekvenca!

Page 9: PREDAVANJE 7–KOLEKCIJE:TEKSTI LISTA · PREDAVANJE 7–KOLEKCIJE:TEKSTI LISTA Miloš Kovačević Đorđe Nedeljković MarijaPetronijević Dušan Isailović. SADRŽAJ PREDAVANJA -

POREĐENJE TEKSTA. LEKSIKOGRAFSKI POREDAK

poređenje se vrši karakter po karakter( porede se ord(x) i ord(y) )

poređenje po leksikografskom poretku(kao u rečniku)

Page 10: PREDAVANJE 7–KOLEKCIJE:TEKSTI LISTA · PREDAVANJE 7–KOLEKCIJE:TEKSTI LISTA Miloš Kovačević Đorđe Nedeljković MarijaPetronijević Dušan Isailović. SADRŽAJ PREDAVANJA -

PODTEKST, SPAJANJE, MULTIPLIKACIJA

Operator in proverava pripadnost elementa (tekstualnoj) sekvenci.

Operatori + (spajanje) i * (multiplikacija) ponašaju se drugačije nego sa brojevima.(preopterećenje operatora)

Page 11: PREDAVANJE 7–KOLEKCIJE:TEKSTI LISTA · PREDAVANJE 7–KOLEKCIJE:TEKSTI LISTA Miloš Kovačević Đorđe Nedeljković MarijaPetronijević Dušan Isailović. SADRŽAJ PREDAVANJA -

NEPROMENLJIVOST TEKSTA

Slično brojnim tipovima i tekstualni objekti su nepromenljivi!

Page 12: PREDAVANJE 7–KOLEKCIJE:TEKSTI LISTA · PREDAVANJE 7–KOLEKCIJE:TEKSTI LISTA Miloš Kovačević Đorđe Nedeljković MarijaPetronijević Dušan Isailović. SADRŽAJ PREDAVANJA -

IZDVAJANJE PODTEKSTA

Page 13: PREDAVANJE 7–KOLEKCIJE:TEKSTI LISTA · PREDAVANJE 7–KOLEKCIJE:TEKSTI LISTA Miloš Kovačević Đorđe Nedeljković MarijaPetronijević Dušan Isailović. SADRŽAJ PREDAVANJA -

Ideja za iterativni postupak:

Page 14: PREDAVANJE 7–KOLEKCIJE:TEKSTI LISTA · PREDAVANJE 7–KOLEKCIJE:TEKSTI LISTA Miloš Kovačević Đorđe Nedeljković MarijaPetronijević Dušan Isailović. SADRŽAJ PREDAVANJA -

PALINDROM – REKURZIVNO REŠENJE

Tekst t je palindrom ako važi:

t[0] == t[-1] i t[1: -1] je palindrom (rekurzija)

Šta fali da bi rekurzija mogla da se primeni?

Bazni slučaj: prazan tekst je palindrom!

Page 15: PREDAVANJE 7–KOLEKCIJE:TEKSTI LISTA · PREDAVANJE 7–KOLEKCIJE:TEKSTI LISTA Miloš Kovačević Đorđe Nedeljković MarijaPetronijević Dušan Isailović. SADRŽAJ PREDAVANJA -

PALINDROM

Page 16: PREDAVANJE 7–KOLEKCIJE:TEKSTI LISTA · PREDAVANJE 7–KOLEKCIJE:TEKSTI LISTA Miloš Kovačević Đorđe Nedeljković MarijaPetronijević Dušan Isailović. SADRŽAJ PREDAVANJA -

PALINDROM – TEST PROGRAM

Kako se generišu svi podtekstovi nekog teksta?

Prvo se izabere dužina podteksta, a se onda generišu svi podtekstovi date dužine.

Page 17: PREDAVANJE 7–KOLEKCIJE:TEKSTI LISTA · PREDAVANJE 7–KOLEKCIJE:TEKSTI LISTA Miloš Kovačević Đorđe Nedeljković MarijaPetronijević Dušan Isailović. SADRŽAJ PREDAVANJA -

OBJEKTI I METODE

Funkcija – imenovani niz naredbi za obavljanje odgovarajuće funkcionalnosti.

nije vezana ni za jedan konkretni objekat.

Ulazni parametri utiču na rezultat rada, ali funkcija postoji nezavisno od njih!

U objektno orijentisanim jezicima, tip (klasa) objekta određuješta se sve može raditi nad objektom – klasa definiše ponašanje.

Metode – funkcije definisane unutar klase i koje se vezuju za konkretan objekat.

Pozivaju se nad objektom u notaciji sa tačkom: ime_objekta.ime_metode(...)

Posmatra se klasa Auto – definiše automobile kao objekte. Šta je prirodnije:

start(perin_golf), start(tatin_krš)

ili

perin_golf.start(), tatin_krš.start()

Page 18: PREDAVANJE 7–KOLEKCIJE:TEKSTI LISTA · PREDAVANJE 7–KOLEKCIJE:TEKSTI LISTA Miloš Kovačević Đorđe Nedeljković MarijaPetronijević Dušan Isailović. SADRŽAJ PREDAVANJA -

TEKSTMETODE

Page 19: PREDAVANJE 7–KOLEKCIJE:TEKSTI LISTA · PREDAVANJE 7–KOLEKCIJE:TEKSTI LISTA Miloš Kovačević Đorđe Nedeljković MarijaPetronijević Dušan Isailović. SADRŽAJ PREDAVANJA -

LISTE – TIP list

Lista – sekvenca objekata proizvoljnih tipova.

Promenljiv objektni tip: mogu se brisati stari, ili dodavati novi elementi.

Prave se uz pomoć uglastih zagrada – [ ], ili uz pomoć list() konstruktora:

može u više redova!

Page 20: PREDAVANJE 7–KOLEKCIJE:TEKSTI LISTA · PREDAVANJE 7–KOLEKCIJE:TEKSTI LISTA Miloš Kovačević Đorđe Nedeljković MarijaPetronijević Dušan Isailović. SADRŽAJ PREDAVANJA -

UNUTRAŠNJE LISTE. INDEKSIRANJE.

Liste sadrže reference na objekte!

unutrašnjalista

Pristup preko indeksa. Prvi element ima indeks 0 (kao i kod teksta)!

Page 21: PREDAVANJE 7–KOLEKCIJE:TEKSTI LISTA · PREDAVANJE 7–KOLEKCIJE:TEKSTI LISTA Miloš Kovačević Đorđe Nedeljković MarijaPetronijević Dušan Isailović. SADRŽAJ PREDAVANJA -

IZDVAJANJE

PODLISTI

Prilikom izdvajanja (kopiranja)

kreira se nova lista!

Prilikom (izdvajanja) kopiranja, kopiraju se objektne reference, a ne objekti!

Page 22: PREDAVANJE 7–KOLEKCIJE:TEKSTI LISTA · PREDAVANJE 7–KOLEKCIJE:TEKSTI LISTA Miloš Kovačević Đorđe Nedeljković MarijaPetronijević Dušan Isailović. SADRŽAJ PREDAVANJA -

AŽURIRANJE LISTE

Liste su promenljivi objekti

Metod iz klase list

del – ni metod, ni funkcija već operator