Osnovne algoritamske strukture - slijed
Sjedište: | CARNET - Arhiva 2021 Loomen |
E-kolegij: | Informatika 3 PMG - Gimnazija Đakovo |
Knjiga: | Osnovne algoritamske strukture - slijed |
Otisnuo/la: | Gost (anonimni korisnik) |
Datum: | petak, 22. studenoga 2024., 20:01 |
1. Uvod
Ovisno o zahtjevima programa, postoje tri osnovne algoritamske strukture:
- slijed – niz naredaba koje se izvršavaju jedna za drugom
- grananje – dio programa u kojem se ovisno o ispunjenosti uvjeta izvršava određena naredba ili blok naredaba
- ponavljanje – zatvoreni niz naredaba koje se ponavljaju sve dok je zadovoljen postavljeni uvjet ponavljanja.
2. Funkcija za ispis
Ispisivanje na zaslon u Pythonu omogućuje funkcija print(). Možemo ju rabiti za ispisivanje teksta:
print ('Danas je odličan dan za početak učenja programiranja!')
ili vrijednosti:
print (7+3)
Funkcija print () omogućuje i ispisivanje mješovitih izraza, primjerice print ('7 + 3 =', 7 + 3).
Navedene primjere isprobaj u sučelju Python Shell. Za vježbanje osmisli i nekoliko novih primjera te ih podijeli s prijateljima u razredu.
Primjer 1. Napravi program koji će na zaslon ispisati dane u tjednu.
Rješenje ovog zadatka je jednostavno:
print ('Ponedjeljak Utorak Srijeda Četvrtak Petak')
A što ako želimo da se svaki dan ispiše u novi red?
Tad ćemo se koristiti znakovnim konstantama namijenjenima provjeravanju ispisa. One se sastoje od dva znaka, a počinju znakom \. Slovo navedeno pokraj znaka \ provjerava ispis.
\n novi red
\t vodoravni tabulator
Zadatak: Napravi program kojim ćeš na zaslon ispisati svoj idealan raspored sati. Na primjer:
Sat Pon Uto Sri Cet Pet
1 Mat TZK Inf Bio Hrv
2 Mat Eng Inf LU Hrv
3 GU VJ/Et Fiz Eng Kem
4 Nje Kem Nje Eng TZK
5 Lat Hrv Hrv Pov Geo
6 Pov Geo Mat Fiz Bio
3. Funkcija za unos podataka
Unošenje podataka s tipkovnice u Pythonu omogućuje funkcija input(). Funkciju input moguće je koristiti u obliku:
varijabla = input('poruka').
Tad je varijabla mjesto u memoriji u koje spremamo unesenu vrijednost, a poruka je uputa korisniku što treba upisati.
Primjer:
Naredba a = input ('Upiši jedan cijeli broj: ') ispisat će na zaslon tekst Upiši jedan cijeli broj: i „čekati“ da korisnik unese neku vrijednost. Unesena vrijednost pohranit će se kao vrijednost varijable a. Da bi se uneseni podatci spremili u memoriju, nakon upisivanja korisnik treba pritisnuti tipku Enter.
Zadatak:
Pretipkaj i testiraj sljedeći program i vrlo brzo ćeš shvatiti način rada funkcije input().
a = input('Pozdrav, kako se zoveš?')
print(a, 'drago mi je što smo se upoznali. Uđimo zajedno u svijet programiranja!')
Pri unošenju podataka funkcijom input(), nismo li naveli drugačije, Python pretpostavlja da unosimo niz znakova. Ako su nam u programu potrebni primjerice cijeli brojevi, potrebno je uneseni niz znakova pretvoriti u broj. Objasnimo na primjeru:
Naredba a = input() traži od korisnika unošenje jednog podatka i unesenu vrijednost pohranjuje u varijablu a kao znakovnu vrijednost.
Naredba a = int(a) niz znakova pohranjenih u varijabli a pretvara u cijeli broj.
Još jednostavnije, prethodno možemo zapisati na sljedeći način:
a = int(input())
4. Aritmetički operatori
Za računanje aritmetičkih izraza koriste se aritmetički
operatori. U većini programskih jezika, uz već standardne operatore za
zbrajanje (+), oduzimanje (-), množenje (*) i dijeljenje (/), koriste se dva
dodatna operatora: operator cjelobrojnog dijeljenja i operator ostatka
cjelobrojnog dijeljenja. Operator cjelobrojnog dijeljenja daje rezultat
cjelobrojnog dijeljenja dvaju cijelih brojeva. Ostatak pri cjelobrojnom
dijeljenju vraća ostatak koji dobijemo pri dijeljenju dvaju cijelih brojeva.
4.1. Aritmetički operatori u Pythonu
Uz navedene aritmetičke operatore Python sadržava i operator potenciranja. Oznake za aritmetičke operatore u Pythonu pogledajte u tablici:
Operacija |
Operator |
Primjer |
|
Aritmetički izraz |
Rezultat |
||
zbrajanje |
+ |
5 + 2 |
7 |
oduzimanje |
- |
5 – 2 |
3 |
množenje |
* |
5*2 |
10 |
dijeljenje |
/ |
5/2 |
2.5 |
potenciranje |
** |
5**2 |
25 |
rezultat cjelobrojnog dijeljenja |
// |
5//2 |
2 |
ostatak cjelobrojnog dijeljenja |
% |
5%2 |
1 |
4.2. Zadatak
Zapiši aritmetičke izraze u Pythonu, izračunaj njihove vrijednosti i rezultate provjeri u Python Shell sučelju:
a) 15 div 3 + 20 mod 5
b) 17 div 3*7 mod 3
c) 17 div 5 mod 3
d) 4 + 4*7 div 3 mod 7
e) 13*4 + 12 mod 5 - 43 div 2 mod 6
5. Pridruživanje vrijednosti
Svaki programski jezik ima operator pridruživanja. Spominjali smo ga već na početku ove cjeline, kod prvog primjera algoritma u pseudojeziku. Operator pridruživanja varijabli s lijeve strane pridružuje vrijednost izraza s desne strane. Koristi se za postavljanje vrijednosti varijabli. Osim upisivanja konkretne vrijednosti, varijabli možemo pridružiti vrijednost izračunavanjem.
Operator pridruživanja u Pythonu označava se oznakom =.
Na primjer, zapišemo li a = 5, to znači da ćemo broj 5 pohraniti u memoriju kao vrijednost varijable a. Kažemo da smo varijabli a pridružili vrijednost 5.
Zapišemo li a = 3 + 5, najprije će se izračunati vrijednost s desne strane pa će se tek onda ta izračunata vrijednost pridružiti varijabli a. Dakle, vrijednost varijable a nakon te naredbe bit će 8.
Primjer 1.
Kolika će biti vrijednost varijable a nakon izvršavanja naredbi
a = 5
a = a + 6?
Vrijednost varijable a nakon prve naredbe je 5. Nailaskom na naredbu a = a + 6 program će najprije dohvatiti vrijednost varijable a (5). Nakon toga će toj vrijednosti dodati broj 6. Tada će dobiveni zbroj (5 + 6 = 11) pridružiti varijabli a. Dakle, vrijednost varijable a nakon izvršavanja prethodnih naredaba bit će 11.
Uočite da se prethodna vrijednost varijable a (5) „briše” i da na njezino mjesto dolazi nova vrijednost. Nakon druge naredbe starom se vrijednošću varijable nećemo moći ponovno koristiti. To je jedna od čestih pogrešaka na početku programiranja, jednostavno očekujete da možete raditi s obje vrijednosti.
Primjer 2.
Nakon izvođenja naredbi
x = 3
y = 7
x = x – 3*y
y = -y
x = x + y
varijabla x imat će vrijednost -25.
6. Standardne matematičke funkcije
Neke su funkcije ugrađene u Python, a neke su spremljene u posebne zbirke (module) koje je prije korištenja tih funkcija potrebno uvesti (import).
Modul u kojem su spremljene matematičke funkcije zove se math.
Funkcije se uvoze naredbom import oblika: from modul import naziv_funkcije.
Ako ćemo se u programu koristiti s više funkcija iz nekog modula, jednostavnije je umjesto navođenja funkcija upisati znak *. Time kažemo programu da uveze sve funkcije iz navedenog modula.
Na primjer, naredba from math import* omogućit će nam korištenje svih funkcija spremljenih u modul math.
Često korištene matematičke funkcije jesu:
Opis |
Funkcija |
Primjer |
Modul |
apsolutna vrijednost realnog broja |
abs (x) |
abs (5) = 5 abs (-5) = 5 |
- |
potenciranje |
pow (x,y) |
pow (2,3) = 8 |
- |
drugi korijen realnog broja |
sqrt (x) |
sqrt (16) = 4 |
math |
zaokruživanje realnog broja na najbliži cijeli broj |
round (x) |
round (2.6) = 3 |
|
cijeli dio realnog broja |
trunc (x) |
trunc (2.6) = 2 |
math |
najmanji cijeli broj veći od x ili jednak x |
ceil (x) |
ceil (2.3) = 3 |
math |
najveći cijeli broj manji od x ili jednak x |
floor (x) |
floor (2.3) = 2 |
math |
6.1. Primjer
Program koji izračunava površinu i opseg pravokutnog trokuta ako su zadane duljine njegovih kateta.
from math import*
a = int (input ('Upiši duljinu katete a: '))
b = int (input ('Upiši duljinu katete b: '))
c = sqrt (pow(a, 2) + pow (b, 2))
o = a + b + c
p = a*b/2
print('Opseg zadanoga pravokutnog trokuta je', o, 'a površina ', p)
6.2. Zadatak
Napravi program koji ispisuje cijeli i realni dio zadanoga realnog broja.