ZADACI ZA VEŽBU - KOLOKVIJUM II

Na kolokvijumu II svaki student će dobiti 5 od sledeća 32 zadatka.

Zadatak 1

Napišite program koji koristi while petlju da štampa brojeve 1 2 4 8 16 ... 512 
( svaki sledeći je duplo veći od predhodnog). 
 

Zadatak 2

Napišite program koji koristi while petlju da štampa slova iz učitanog stringa, jedno slovo u liniji. 

 

Zadatak 3

Napišite program koji traži od korisnika da unese niz reči razdvojenih zapetama. 
Program zatim treba da štampa ove reči na isti način (razdvojene zapetama) ali sada reči 
treba da budu sortirane alfabetski.

Na primer ako korisnik unese: without,hello,bag,world
Program treba da štampa: bag,hello,without,world 

 

Zadatak 4

Napišite program koji traži od korisnika da unese rečenicu. Program treba da štampa reči iz ove rečenice 
nakon što odbaci duple reči i sortira reči alfabetski.

Na primer ako je korisnik uneo: "hello world and practice makes perfect and hello world again" program 
treba da štampa: "gain and hello makes perfect practice world".

 

Zadatak 5

Napišite program koji traži od korisnika da unese lozinku (password). Ako unese ispravnu lozinku program 
mu saopštava da se ulogovao u sistem. U suprotnom program traži da ponovo unese lozinu. Korisnik ima samo 
tri pokušaja za unos lozinke, a posle toga mu program saopštava da je izbačen iz sistema. 

 

Zadatak 6

Napišite program koji omogućava korisniku da unese unapred nepoznat broj rezultata na nekom kolokvijumu 
(koristite while petlju). Korisnik signalizira da je završio kada unese negativan broj. 
Štampajte koliko je bilo desetki (sa brojem poena 90 ili više). Takođe štampajte i prosečan broj poena. 

 

Zadatak 7

Napišite program koji traži od korisnika da unese jedan string i jedno slovo. 
Korišćenjem while petlje program treba da štampa indeks prvog pojavljivanja unetog slova ili poruku 
da string ne sadrži to slovo. 

 

Zadatak 8

Napišite program koji koristi funkcije list i range da kreirate listu [3, 6, 9, … , 99].

 

Zadatak 9

Napišite program koji traži od korsinika da unese težinu u funtama. Program treba da konvertuje 
težinu u kilograme i da formatizuje rezulat na jedno decimalno mesto. (Jedan kilogram ima 2.4 funte).

 

Zadatak 10

Napišite program koji traži od korisnika da unese jednu reč. Presložite slova iz reči tako da 
budu alfabetski uređena (sortirana) i štampajte tako uređenu teč. 
Na primer, abracadabra treba da posatne aaaaabbcdrr.

 

Zadatak 11

Napišite program koji uzima listu sa deset cena i deset proizvoda, primeni sniženje 
cena za 11% i prikazuje izlaz kao što je dole prikazano, sa cenama pozicioniranim udesno i lepo formatizovanim.

Apples    $  2.45
Oranges   $ 18.02
itd.
Pears     $120.03

 

Zadatak 12

Iskoristite sledeće dve liste i format metodu da kreirate listu svih karata u standardnom špilu od 52 karte, 
u formatu vrednost boja (na primer, ‘Dama Pik’).

boja = ['Herc', 'Karo', 'Tref', 'Pik']
vrednost = ['1', '2', '3', '4', '5', '6', '7', 
            '8', '9', '10', 'Žandar', 'Dama', 'Kralj', 'As']

 

Zadatak 13

Napišite program koji koristi bulovske zastavice (flags) kojima se određuje da li dve liste imaju 
zajedničkih elemenata ili ne.

 

Zadatak 14

Napišite program koji traži od korisnika da unese datum u obliku mm/dd/yy i konvertuje ga u 
govorni oblik. Na primer 02/04/77 tzreba da se konvertuje u Februar 4, 1977.

 

Zadatak 15

Napišite program koji uzastopno traži od korisnika da unese proizvod i njegovu cenu. 
Smestite sve unete vrednosti u rečnik čiji je ključ naziv proizvoda a vrednost cena proizvoda. 
Kada korisnik završi sa unosom podataka za rečnik, dajte mu mogućnost da uzastopno unosi ime 
proizvoda pa štampajte njegovu cenu ili poruku da proizvod nije u rečniku. 

 

Zadatak 16

Iskoristite rečnik:

meseci = {'Januar':31, 'Februar':28, 'Mart':31, 'April':30,
        'Maj':31, 'Jun':30, 'Jul':31, 'Avgust':31,
        'Septembar':30, 'Oktobar':31, 'Novembar':30, 'Decembar':31}
da napišete program kojim se:
Štampaju svi ključevi iz rečnika u alfabetskom redolsedu.
Štampaju svi nazivi meseca koji imaju 31 dan.

 

Zadatak 17

Napišite program koji koristi rečnik u kojem se nalazi deset imana korisnika i njihovih pasvorda. 
Program treba da traži od korisnika da unesu ime i pasvord. Ako ime nije u rečniku program treba 
da obavesti korisnika da nije registrovan u sistemu. Ako je uneto ime u recniku ali korisnik 
nije uneo ispravan pasvord, program treba da ga obavesti da je uneti pasvord neispravan. 
Ako je pasvord ispravan program treba da saopšti korisniku da se ulogovao u sistem.

 

Zadatak 18

Rečnici predstavljaju pogodan način za smeštanje (pamćenje) struktuiranih podataka. 
Evo jednog takvog primera

d=[{'ime':'Janko', 'telefon':'555-1414', 'email':'janko@mail.net'},
   {'ime':'Marko', 'telefon':'555-1618', 'email':'marko@mail.net'},
   {'ime':'Ana', 'telefon':'555-3141', 'email':'';},
   {'ime':'Jovana', 'telefon':'555-2718', 'email':'jovana@mail.net'}]

Napišite program koji čita ovaj rečnik i štampa sledeće:

    Sve korisnike čiji telefonski broj se završava sa 8.
    Sve korisnike koji nemaju email adresu.

 

Zadatak 19

Napišite program kojim se nalazi i štampa unija i presek sledećih skupova:

A = {1, 2, 3, 4, 5, 6, 7, 8}
B = {4, 5, 6, 7, 8, 9} 

 

Zadatak 20

Dat vam je fajl poda nazivom rezultat_ispita.txt, gde je u svakoj liniji ime, prezime 
i broj poena kao u sledećem primeru:

Janko Jankovic 83
Ana Mijatovic 86

Napišite program koji skenira fajl, dodaje 5 poena svakom studentu i upisuje prezime, 
ime i novi broj poena u fajl rezultat_ispita2.txt.

 

Zadatak 21

Dat vam je fajl pod nazivom ocene.txt, u kojem svaka linija sadrži prezime, ime i tri rezlultata 
kolokvijuma za svakog studenta, kao na primer:

    Jankovic Janko 83 77 54
    Mijatovic Ana 86 69 90

Napišite program kojim se određuje koliko je studenata položilo sva tri kolokvijuma 
(kolokvijum je položen ako je broj poena veći ili jednak 50). 

 

Zadatak 22

Napišite funkciju pod nazivom pravougaonik koja prihvata dva cela broja m i n kao argumente 
i štampa m × n boks koji se sastoji od zvezdica. Dole je prikazan izlaz funkcije pravougaonik(3,5):

*****
*****
***** 

 

Zadatak 23

Napišite funkciju suma_cifara koja prihvata jedan ceo broj num i vraća sumu njegovih cifara. 

 

Zadatak 24

Napišite funkciju koja izračunava i vraća peti stepen nekog broja. 

 

Zadatak 25

Napišite funkciju koja prihvata ceo broj i vraća True ako je broj neparan, a False ako nije.
 
 

Zadatak 26
 
Napišite funkciju koja prihvata dva stringa pa vraća onaj string koji ima manju dužinu. 

 

Zadatak 27

Napišite funkciju koja prihvata dva broja u obliku stringa i vraća njihov proizvod, takođe u obliku stringa. 

 

Zadatak 28

Napišite funkciju prva_razlika koja prihvata dva stringa i vraćat prvu poziciju na kojoj se 
stringovi razlikuju. Ako su stringovi identični funkcija vraća -1.

 

Zadatak 29

Napisati klasu PasswordManager. Klasa treba da sadrži listu old_passwords u kojoj se nalaze 
korisnikovi stari pasvordi. Poslednji pasvord u toj listi je korisnikov tekući pasvord. 
Treba da postoji metoda get_password koja vraća tekući pasvord i metoda set_password koja 
postavlja novi pasvord. Metoda set_password treba da menja tekući pasvord samo ako je 
novi pasvord različit od svih prethodnih pasvorda koje je korisnik do tada korsitio. 
Na kraju kreirajte i metodu is_correct koja prihvata string i vraća True ili False u 
zavisnosti od toga da li je string jednak tekućem pasvordu ili ne. 

 

Zadatak 30

Napišite klasu Investicija sa varijablama glavnica i kamata. Konstruktor klase treba da postavi 
vrednosti ovih varijabli. Klasa treba da ima metodu pod nazivom vrednost_posle koja vraća vrednost 
investicije posle n godina. Formula za to je g*(1+k)**n, gde je g glavnica, a k kamata. 
Takođe, treba da postoji i specijalna metoda __str__ takva da štampanje objekta rezultira sledećim zgledom:

Glavnica - 1000.00, Kamatna stopa - 5.12%

 

Zadatak 31

Napišite klasu Time čija jedina varijabla je vreme u sekundama. Klasa treba da sadrži metodu 
convert_to_minutes koja vraća string minuta i sekundi formatiziran kao u sledećem 
primeru: ako je broj sekundi 230, metoda treba da vrati ‘3:50’. 

 

Zadatak 32


Napišite klasu Wordplay. Klasa treba da sdrži listu reči. Korisnik ove klase treba da klasi 
prosledi listu reči koju će koristiti. Klasa treba da ima sledeće metode:

    words_with_length(length) — vraća listu svih reči dužine length
    starts_with(s) — vraća listu reči koje počinju stringom s
    ends_with(s) — vraća listu reči koje se završavaju stringom s