Nizovi (liste)

Sjedište: CARNET - Arhiva 2021 Loomen
E-kolegij: Informatika 3 PMG - Gimnazija Đakovo
Knjiga: Nizovi (liste)
Otisnuo/la: Gost (anonimni korisnik)
Datum: petak, 1. studenoga 2024., 03:19

Opis

gradivo vezano uz liste

Uvodni zadatak


zadatak

Napravi program koji od korisnika traži unos vrijednosti jutarnje temperature za n dana (n<=30). Program treba izračunati  i ispisati na zaslon prosječnu jutarnju temperaturu u traženom periodu.

Rješenje

rješenje

dan=int(input('Za koliko dana unosite temperaturu? '))
zbroj=0
for i in range (dan):
    print('Unesi jutarnju temperaturu za', i+1, 'dan: ')
    jutarnja=int(input())
    zbroj=zbroj+jutarnja
srednja=zbroj/dan
print('Prosječna jutarnja temperatura u navedenom periodu iznosila je ', srednja, 'stupnjeva')

Zadatak

zadatak

Prethodni program doradite tako da, osim vrijednosti prosječne temperature, ispišete i broj dana u kojima je temperatura bila ispod prosjeka.

Uvod

uvod

Možemo li s dosadašnjim znanjem riješiti prethodni zadatak?
Vrijednosti temperatura unosili smo u varijablu jutarnja na sljedeći način:
for i in range (dan):
       jutarnja=int(input())
To znači da smo vrijednosti temperatura "prepisivali" jedne preko drugih i ne postoji način da ih ponovno dohvatimo.
Za rješavanje ovog problema potrebna nam je varijabla u koju možemo spremiti više vrijednosti.

Nizovi (polja ili liste)

niz

Nizovi se definiraju kao ograničen, uređen skup elemenata. U većini programskih jezika elementi niza moraju biti istoga tipa, no u Pythonu to nije slučaj.

Od jedne do druge vrijednosti u nizu kreće se pomoću indeksa . Indeksi su nenegativne cjelobrojne vrijednosti , a određuju mjesto u nizu na kojem se nalazimo. U Pythonu indeksi niza kreću od nule.

Pojednostavljeno, nizovi omogućuju pamćenje svih upisanih vrijednosti, uporabom samo jednog imena!


Liste u Pythonu

Primjeri lista u Pythonu:

broj_dana = [28, 29, 30, 31]

radni_dani = ['ponedjeljak', 'utorak', 'srijeda', 'četvrtak', 'petak']

b = [10, 20, 30, 40, 50] ...

Pogledajmo sliku:



Kreiranje liste, dohvaćanje i ispis elemenata liste

Lista se u Pythonu može kreirati na više načina.

Možemo ju najaviti (prije prvog korištenja) određivanjem duljine i postavljanjem početnih vrijednosti elemenata.

Primjer 1 - kreiranje liste

Naredbom jutarnja = [0] * 10 kreiramo listu od deset elemenata i početnu vrijednost svih elemenata postavljamo na nulu. Naknadno, elemente u listu dodajemo funkcijom input(), a njihove vrijednosti ispisujemo funkcijom print().

Listu možemo kreirati i popuniti vrijednostima i na sljedeći način:

jutarnja = [2, 4, 1, 0, -5, 2]

Tako smo elementima odmah pridružili i njihove vrijednosti, te ne trebamo koristiti funkciju za unos.

Primjer 2 - unos vrijednosti elemenata liste tipkovnicom

Kao što je navedeno ranije, za unos vrijednosti elemenata liste, uz funkciju input() koriste se programske petlje (najčešće for).  Pogledajmo primjer:

jutarnja = [0] * 10
for i in range (10):
    jutarnja = int(input())

Promjenom vrijednosti kontrolne varijable, mijenja se mjesto u nizu na koje se upisuje vrijednost. Na taj se način u memoriji čuvaju upisane vrijednosti sve dok se ne prekine izvršavanje programa.

Dohvaćanje elemenata niza

Elementima niza pristupamo pomoću njihovih indeksa, a listom se krećemo pomoću programske petlje, najčešće for.

S obzirom na to da indeksi u Pythonu kreću od 0, potrebno je voditi računa o tome da element na i-tom mjestu ima indeks i-1. Dakle, vrijednost trećeg elementa liste jutarnje dohvaćamo naredbom jutarnja[2].

Primjer 3 - ispis elemenata liste

Postavljene vrijednosti elemenata niza često treba ispisati na zaslon. U tom slučaju naredba za ispis kombinira se s programskim petljama, primjerice petljom for.

Kreiramo li listu jutarnja naredbom:

jutarnja = [2, 4, 1, 0, -5, 2]

njezine elemente možemo ispisati naredbama:

for i in range (6):
    print (jutarnja [i])

 Python nam omogućuje i drugačiji način kretanja kroz listu. Pogledajmo na primjeru ispisa elemenata liste jutarnja:

jutarnja = [2, 4, 1, 0, -5, 2]
for i in jutarnja:
    print (i)



Vježba

zadatak

1. Što će se ispisati na zaslon monitora nakon izvođenja slijedećeg programa?

b = [2, 4, 6, 8, 10, 12, 14, 16]
for i in range (0, 7, 2):
    print (b[i])

2. Program iz uvodnog zadatka preuredite tako da se unesene vrijednosti spremaju u listu.

3. Doradite prethodni program tako da ispisuje kolika je temperatura bila peti dan.

4. Doradite prethodni program tako da korisnika pitate za koji dan želi da mu prikažete temperaturu. Na zaslonu prikažite traženi podatak.

Zadaci za vježbu

zadatak

  1. Napravite program koji će tražiti unošenje cijelog broja. Program treba uneseni broj pretvoriti u broj u oktalnom brojevnom sustavu. 

  2. Prilagodite prethodni program tako da traži unos baze b (2<=b<=9) i uneseni dekadski broj pretvara u broj u zadanoj bazi.

  3. Napravite program koji uneseni dekadski broj prikazuje u heksadekadskom brojevnom sustavu.

  4. Napravite program koji će omogućiti unošenje prirodnog broja n (n<=20), a nakon toga n brojeva u jedan niz. Program treba od učitanog niza formirati drugi niz, ali tako da prvi element drugog niza bude posljednji element prvog, drugi element novog niza je predzadnji element početnog, dok je posljednji element novog niza prvi element početnog.Program treba na zaslon ispisati oba elemente oba niza.

    Primjer:
    Primjer

  5. Napravite program koji će omogućiti učitavanje jednodimenzionalnog niza od najviše 20 elemenata i na osnovu njega formirati drugi, tako da bude:

    niz1
  6. Napravite program kojim ćete omogućiti unošenje dva niza, a i b, svaki od po n elemenata (n<=20). Program treba od unesenih nizova formirati novi niz c, tako da bude c[i]=a[i]+b[i], za svaki i u intervalu 0 do n-1.

  7. Napravite program koji će od dva zadana niza formirati treći niz na slijedeći način: ako je zbroj i-tih elemenata danih nizova manji od 10, na i-to mjesto novonastalog niza dolazi i-ti element prvog niza, a ako nije onda na i-to mjesto novonastalog niza dolazi razlika i-tih elemenata danih nizova.

    niz2

Fibonaccijev niz brojeva

fibonacci

Pogledajmo sliku:

fib2

 Razmislite!

- koji je sljedeći kvadrat u nizu?

- iscrtajmo lukove koji spajaju suprotne vrhove kvadrata

- što smo dobili?

Poznati Fibonaccijev problem:

Ako par zečeva stavimo u izolirani prostor, te oni nakon dva mjeseca dostižu spolnu zrelost i novi par se rađa, koliko će pari zečeva biti u tom prostoru nakon jedne godine i 8 mjeseci, ako uzmemo da niti jedan zec  nije uginuo?

Zadatci za vježbu


zadatak

1. Napraviti program koji za uneseni prirodni broj n ispisuje fibonaccijeve brojeve od 1 do n.

Napomena: u rješavanju zadatka koristiti nizove!

2. Napravite program koji traži unos broja n, te još n brojeva. Program treba na zaslon ispisati je li korisnik upisao fibonaccijev niz.