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


Pri izračunavanju aritmetičkih izraza potrebno je poznavati prioritete operatora. Operator potenciranja počinje prvi, nakon njega slijede množenje, dijeljenje, cjelobrojno dijeljenje i ostatak cjelobrojnog dijeljenja, a tek na kraju zbrajanje i oduzimanje. Redoslijed obavljanja operacija istog prioriteta je slijeva nadesno, a izrazi u zagradi računaju se prvi.

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.