Naredbe grananja
Sjedište: | CARNET - Arhiva 2021 Loomen |
E-kolegij: | Pripreme za ispit iz informatike na državnoj maturi |
Knjiga: | Naredbe grananja |
Otisnuo/la: | Gost (anonimni korisnik) |
Datum: | nedjelja, 24. studenoga 2024., 13:43 |
1. Naredbe grananja
Naredbe grananja koristimo kada se program treba granati u jedan ili višesmjerova, ovisno o istinitosti danog uvjeta.Na primjer, želimo li unositi ocjene učenika, najprije moramo provjeriti je li korisnik unio ocjenu (broj između 1 i 5) i u tom slučaju izvršiti određenu naredbu. Ako korisnik nije upisao broj iz tog intervala, potrebno je izvršiti neku drugu naredbu.
Zapis naredbe grananja u pseudo jeziku izgleda ovako:
ako je uvjet onda
naredba1;
inače
naredba2;
Ovo je oblik naredbe koja se grana u dva smjera: naredba1 izvršit će se ako je zadani uvjet istinit, a naredba2 ako nije.
Uvjet je najčešće relacijski izraz, ali ponekad može biti i aritmetički.
Primjer 1:
Provjerimo je li uneseni broj paran ili neparan.
ulaz (a);
ako je a mod 2 = 0 onda
izlaz ("paran");
inače
izlaz ("neparan");
Objašnjenje: Ako je broj paran, ostatak pri dijeljenju s brojem 2 je nula.
Primjer 2:
Provjerava je li uneseni broj pozitivan ili negativan
ako je a>0 onda
izlaz ('uneseni broj je pozitivan!');
inače
izlaz ('uneseni broj nije pozitivan!');
Primjer 3:
ako je a>0 onda
P:=4*a;
inače
izlaz ('Duljina stranice kvadrata mora biti veća od nule!');
1.1. Blok naredbi
Istaknimo još jednom zapis naredbe grananja:
ako je uvjet onda
naredba1;
inače
naredba2;
Uočite kako naredbe pišu u jednini (naredba1 i naredba2). Trebamo li izvršiti više od jedne naredbe ako je uvjet ispunjen (ili ako nije), moramo ih izdvojiti u BLOK naredbi.
Blok naredbi zapisuje se između vitičastih zagrada ({ i }).
Primjer:
Algoritam koji računa i ispisuje površinu i opseg kvadrata zadanog duljinom stranice a.
Ako je a>0 onda
{
P:=4*a;
o:=sqr(a);
izlaz (P, o);
}
inače
izlaz ('Duljina stranice kvadrata mora biti veća od
nule!');
2. Zadatci s provedenih ispita
-
(2010, ljetni rok, zadatak 22)
Što će ispisati sljedeći dio programa?
x := 5;
y := 5;
ako je x – y > 0 onda
izlaz x - y
inače
izlaz x + y;
A. −5
B. 0
C. 5
D. 10
- (2010, ljetni rok, zadatak 27) Što će ispisati sljedeći dio programa?
a := 3;
b := 3;
c := 2;
ako je a < b onda
{
t := a;
a := b;
b := t;
}
ako je a < c onda
{
t := a;
a := c;
c := t;
}
ako je b < c onda
{
t := b;
b := c;
c := t;
}
izlaz c;
- (2010, jesenski rok, zadatak 22) Što će ispisati sljedeći dio programa?
x := 3;
y := -2;
ako je 2 * x + 3 * y > 0 onda
izlaz 3 * x – 4 * y
inače
izlaz 4 * x + 3 * y;
A. 1
B. 6
C. 17
D. 18 - (2010, jesenski rok, zadatak 27) Što će ispisati sljedeći dio programa ako su x i y realne varijable? Početna vrijednost varijable x je 2,7 i varijable y je 2,3.
x := 2 * y;
ako je trunc(x ) < round(y ) onda
izlaz x
inače ako je round(x ) > 3 * trunc(y ) onda
izlaz y
inače
izlaz trunc(y )+round(x ); - (2011, ljetni rok, zadatak 27) Što će ispisati sljedeći dio programa?
a := 153;
b := 432;
c := 385;
ako je a MOD 10 > b MOD 10 onda
{
t := a;
a := b;
b := t;
}
ako je a MOD 10 > c MOD 10 onda
{
t := a;
a := b;
b := t;
}
ako je b MOD 10 > c MOD 10 onda
{
t := b;
b := c;
c := t;
}
izlaz (a);
izlaz (b);
izlaz (c);
- (2011, jesenski rok, zadatak 27) Što
će ispisati sljedeći dio programa?
a := 153;
b := 432;
c := 385;
ako je a DIV 10 MOD 10 > b DIV 10 MOD 10 onda
{
t := a;
a := b;
b := t;
}
ako je a DIV 10 MOD 10 > c DIV 10 MOD 10 onda
{
t := a;
a := b;
b := t;
}
ako je b DIV 10 MOD 10 > c DIV 10 MOD 10 onda
{
t := b;
b := c;
c := t;
}
izlaz (a);
izlaz (b);
izlaz (c);
-
(2012, ljetni rok, zadatak 31)
Što će ispisati sljedeći dio programa za unesene vrijednosti parametara:
a = 30, b = 30 i c = 30?
ulaz (a, b, c);
ako je (a < b) I (a < c) onda
izlaz ('Slunj')
inače ako je b <= c onda
izlaz ('Umag')
inače
izlaz ('Makarska'); - (2012, jesenski rok, zadatak 31) Što će ispisati sljedeći dio programa za unesene vrijednosti parametara:
a = 34, b = 34 i c = 30?
ulaz (a, b, c);
ako je (a > b) I (a > c) onda
izlaz ('Bjelovar')
inače ako je b > c onda
izlaz ('Delnice')
inače
izlaz ('Sisak'); - (2013, ljetni rok, zadatak 18) Koju će vrijednost imati varijabla a nakon izvođenja sljedećega dijela programa?
a := 5;
b := a + 5;
b := b div a;
a := b mod a;
ako je a < b onda a := a - b
inače a := a + b;
A. ̶4
B. 0
C. 1
D. 4 - (2013, ljetni rok, zadatak 31) Što će ispisati sljedeći dio programa za unesenu vrijednost varijable t = 18?
ulaz(t);
ako je t div 10 + t mod 10 = 9 onda
izlaz("Broj je djeljiv s 9")
inače ako je (t div 10 + t mod 10) mod 3 = 0 onda
izlaz("Broj je djeljiv s 3")
inače
izlaz("Broj nam nije zanimljiv");
- (2013, jesenski rok, zadatak 18) Koja je vrijednost varijable z nakon izvođenja sljedećega dijela programa?
x := 20 mod 4;
y := 20 div 4;
z := x;
ako je x > y onda x := x * 4;
inače x := x + 3;
z := x – z;
A. 5
B. 4
C. 3
D. 0 - (2013, jesenski rok, zadatak 31) Što će ispisati sljedeći dio programa za unesenu vrijednost varijable t = 123?
ulaz(t);
ako je t div 10 + t mod 10 = 9 onda
izlaz("Broj je djeljiv s 9")
inače ako je (t div 10 + t mod 10) mod 3 = 0 onda
izlaz("Broj je djeljiv s 3")
inače
izlaz("Broj nam nije zanimljiv");
- (2014, ljetni rok, zadatak 18) Koju
će vrijednost imati varijabla x nakon izvođenja sljedećega dijela programa?
x := 15;
y := round(sqrt(x));
ako je y < 100 onda
x := x – y
inače
x := y – x;
A. –210
B. –11
C. 11
D. 210 - (2014, ljetni rok, zadatak 31) Što
će ispisati sljedeći dio programa ako je a = 20?
ako je a div 100 > 0 onda
izlaz("tri")
inače ako je a div 10 > 0 onda
izlaz("dva")
inače
izlaz("jedan");
- (2014, jesenski rok, zadatak 18) Koju će vrijednost imati varijabla x nakon izvođenja sljedećega dijela programa?
a := 10;
b := 12;
a := 2 * a – b;
b := 2 * b – a;
ako je a > b onda
x := a
inače
x := b;
A. 8
B. 10
C. 12
D. 16 - (2014, jesenski rok, zadatak 31) Što će ispisati sljedeći dio programa ako je a = 325?
p1 := a div 100 > a div 10 mod 10
p2 := a div 100 > a mod 10
p := p1 I p2
ako je p onda
izlaz("sto")
inače ako je (a div 10 mod 10) > (a mod 10) onda
izlaz("deset")
inače
izlaz("jedan");
- (2015, ljetni rok, zadatak 18) Koju će vrijednost imati varijable a i b nakon izvođenja sljedećega dijela programa?
a := 20;
b := round(sqrt(a - sqr(2)));
ako je a mod b > 0 onda b := a
inače a := b;
A. 20
B. 16
C. 5
D. 4 - (2015, ljetni rok, zadatak 31) Što će ispisati sljedeći dio programa za unesenu vrijednost varijable t = 5?
ulaz(t);
ako je t div 10 + t mod 10 = 9 onda
izlaz(ꞌXꞌ)
inače ako je (t div 10 + t mod 10) mod 3 = 0 onda
izlaz(ꞌYꞌ)
inače
izlaz(ꞌZꞌ); - (2015, jesenski rok, zadatak 18) Koju će vrijednost imati cjelobrojna varijabla x i logička varijabla prolaz nakon izvođenja sljedećega dijela programa ako varijabla x ima početnu vrijednost 23?
prolaz := laž;
ako je x mod 3 = 0 onda
{
x := x + 4;
prolaz := istina;
}
inače ako je x mod 3 = 1 onda
x := x + 4
inače
x := x + 3;
A. x = 27, prolaz = istina
B. x = 27, prolaz = laž
C. x = 26, prolaz = istina
D. x = 26, prolaz = laž - (2015, jesenski rok, zadatak 31) Što će ispisati sljedeći dio programa za unesenu vrijednost varijable t = 12?
ulaz(t);
ako je t < 100 onda
{
ako je t div 10 + t mod 10 = 9 onda
izlaz("A")
inače ako je (t div 10 + t mod 10) mod 3 = 0 onda
izlaz("B")
inače
izlaz("C");
}
inače
izlaz("D"); - (2016., ljetni rok, zadatak 18) Što će ispisati sljedeći dio programa nakon izvođenja?
a := 5;
a := sqr(a);
a := a div 6;
ako je a > 2 onda
izlaz(a + 3)
inače
izlaz(a + 5);
A. 7
B. 8
C. 9
D. 10 - (2016., ljetni rok, zadatak 31) Što će ispisati sljedeći dio programa ako je a = 57?
ako je (a mod 10) * 10 + a div 10 > a onda
izlaz ((a mod 10) * 10 + a div 10)
inače ako je (a mod 10) * 10 + a div 10 < a onda
izlaz ( a)
inače
izlaz (ꞌsimetričanꞌ);
2.1. Rješenja
- D
- 2
- B
- 7
- 432, 153, 385
- 432, 153, 385
- Umag
- Delnice
- D
- Broj je djeljiv s 9
- C
- Broj je djeljiv s 3
- C
- dva
- D
- jedan
- D
- Z
- D
- B
- A
- 75