Grananje
Sjedište: | CARNET - Arhiva 2021 Loomen |
E-kolegij: | e-Ekonomac |
Knjiga: | Grananje |
Otisnuo/la: | Gost (anonimni korisnik) |
Datum: | nedjelja, 24. studenoga 2024., 11:53 |
1. Uvod u grananje
Razmislite na koji način prelazite cestu preko pješačkog prijelaza označenog semaforom. Na koji način u tom slučaju donosimo odluku kada možemo prijeći cestu?
Pri pisanju programa, često je potrebno provjeriti neki uvjet npr: jeli broj pozitivan ili negativan, paran ili neparan, jeli broj veći od drugog broja, te ovisno o rezultatu uvjeta izvršiti određenu naredbu ili naredbe.
2. Ponovimo - Relacijski i logički operatori
Za ispitivanje uvjeta korite se relacijski operatori a za postavljanje složenih uvjeta koriste se logički operatori. Ako je izvršavanje neke naredbe ili naredaba uvjetovano rezultatom relacijskih ili logičkih izraza, tada se oni stavljaju u strukturu grananja.
Relacijskim i logičkim izrazima, najčešće se koristimo kad je ovisno o rezultatu provjere, potrebno izvršiti neku naredbu. Na primjer, želimo li unijeti ocjene učenika da bismo izračunali njihov prosjek, najprije moramo provjeriti je li korisnik unio ocjene (broj između 1 i 5) i tada izvršiti određenu naredbu (zbrojiti ocjene s prethodnim ocjenama). Ako korisnik nije upisao ocjenu, potrebno je izvršiti neku drugu naredbu, npr. napisati mu poruku o tome da nije unio ispravan podatak.
Relacijski operatori
Izrazi u kojima je potrebno usporediti dvije vrijednosti nazivaju se relacijskim izrazima. Za uspoređivanje se koriste relacijski operatori: manje od (<), veće od (>), manje ili jednako (<=), veće ili jednako (>=), jednako (=), i različito (<>). Kad uspoređujemo dvije vrijednosti, rezultat može biti laž (0) ili istina (1).
Relacijski operatori u pseudojeziku
Primjer : izračunajmo vrijednosti relacijskih izraza
Logički operatori
Što napraviti ako je potrebno usporediti više vrijendosti, primjerice, trebamo li provjeriti je li uneseni broj troznamenkast (veći od 99 i manji do 1000). Matematički bi to zapisali ovako 99<a<1000. U programiranju uglavnom ne možemo na taj način zapisivati relacijske izraze. Moramo provjeriti je li a>99 i je li a<1000. U tu svrhu koristimo se logičkim operatorima I, ILI, NE i navedeni primjer bi zapisali (A < 1000) I (A > 99)
Logički operatori u pseudojeuiku
U mješovitim izrazima u kojima se nalaze aritmetički, relacijski i logički operatori, najveći prioritet imaju aritmetičke, zatim relacijske i na kraju logičke operacije. Izrazi u zagradi računaju se prvi.
Relacijski i logički operatori u Pythonu
3. Pitanje, vježbe i zadaci
4. Grananje
Programskom strukturom grananja koristimo se pri donošenju odluka, odnosno kada se program treba granati u jedan ili više smjerova ovisno o istinitosti danog uvjeta.
Grananje u pseudojeziku
Napisani primjer pokazuje grananje u dva smjera. Naredba 1 izvršit će se ako je zadani uvjet istinit, a naredba 2 ako nije.
Prikaz grananja dijagramom toka
Primjer 1. Provjerimo je li unijeti broj paran ili neparan (ako je broj paran ostatak pri cjelobrojnom dijeljenju s brojem 2 je 0)
Primjer 2. Provjerimo je li uneseni broj troznamenkast (u ovom primjeru u uvjetu je potrebno kombinirati relacijske operatore sa logičnim)
Primjer 3. Provjerimo je li uneseni broj manji od nule, veći od nule ili jednak nuli (za rješavanje ovog zadatka moguće je tri puta se koristiti naredbom jednostrukog grananja)
Trebamo li program granati u više od dva smjera, naredbe grananja moguće je pisati jednu u drugoj. Tako prethodni primjer, možemo rješiti i na sljedeći način:
U prvom algoritmu program provjerava sva tri uvjeta bez obzira na upisani broj, dok u drugom primjeru čim jedan uvjet bude ispunjen one u nastavku će preskočiti.
5. Grananje u Python-u
Grananje u Pythonu ima sljedeći oblik:
Ako je uvjet istinit izvršit će se naredba_1 a ako nije izvršit će se naredba_2. Znak ":" upućuje na to da se naredba nastavlja u sljedećem redu. Pri pisanju programa u sučelju IDLE naredba u sljedećem redu biti će uvučena za četiri mjesta. Sve sljedeće uvučene naredbe pripadaju istom bloku naredaba.
Primjer 1. Program koji ispituje je li uneseni broj paran ili neparan (pseudojezik i programski kom u Pythonu)
Kada je potrebno provjeriti više uvjeta u jednoj naredbi grananja, naredba IF je oblika:
Primjer 2. Program koji za uneseni broj provjerava jeli veći od nule, manji od nule ili je jednak 0
6. Domaći rad
- Napravite program koji za uneseni broj provjerava je li troznamenkast (algoritam za taj program napisan je prije u pseudojeziku). Prijedlog rješenja možete pronaći u dodatnim digitalnim sadržajima na linku https://www.e-sfera.hr/dodatni-digitalni-sadrzaji/97707967-990f-45db-9034-564e8a1531c9/ (prilikom korištenja rješenja pronađite programski jezik Python i zadatke troznamenkasti)
- Napravite program koji će provjeravati je li uneseni broj troznamenkast. Ako jest, na zaslon je potrebno ispisati zbroj njegovih znamenaka, a ako nije poruku: "Uneseni broj nije troznamenkast".