Petlje WHILE – WEND
Petlje Možemo ih podijeliti na: Petlje koje se izvršavaju određen broj puta FOR – NEXT Petlje koje se izvršavaju dok se ne ispuni uvjet Petlje s ispitivanjem uvjeta na početku Petlje s ispitivanjem uvjeta na kraju
WHILE – WEND Petlja s ispitivanjem uvjeta na početku Uvjet je logički izraz Petlja se izvršava dok je uvjet istinit Iz petlje se izlazi kad uvjet postane lažan Uvjet ? Niz naredbi DA WHILE uvjet Naredba_1 ... Naredba_n WEND
Primjer 1. x = 10 WHILE x < 15 PRINT x x = x + 1 WEND END 10 11 12 početak kraj x = 10 x x <15 x = x + 1 DA QBasic: Ispis na ekranu: x = 10 WHILE x < 15 PRINT x x = x + 1 WEND END 10 11 12 13 14 Pseudokod 1. x je 10 2. dok je x manji od 15 2.1. ispiši x 2.2. povećaj x za 1 3. kraj
Primjer 2. Ispiši sumu parnih brojeva do zaključno 100. CLS suma = 0 Pseudokod QBasic: 1. suma = 0 2. broj = 2 3. dok je broj<=100 3.1. dodaj broj sumi s 3.2. povećaj broj za 2 4. ispiši sumu 5. kraj CLS suma = 0 br = 2 WHILE br <= 100 suma = suma + br br = br + 2 WEND PRINT "Suma parnih brojeva: " ; suma END Ispis na ekranu: Suma parnih brojeva: 2550
Primjer 3. Računanje n faktorijela (n!) pomoću petlje s ispitivanjem uvjeta na početku CLS PRINT "Racunanje faktorijela: n!" INPUT "Unesi broj n = "; n fakt = 1 i = 1 WHILE i <= n fakt = fakt * i i = i + 1 WEND PRINT "n! = "; fakt END n fakt i Uvjet 5 1 1<=5 2 2<=5 3 3<=5 6 4 4<=5 24 5<=5 120 6<=5 Racunanje faktorijela: n! Unesi broj n = 5 n! = 120
Petlje DO/WHILE – LOOP/UNTIL
DO WHILE – LOOP Petlja s ispitivanjem uvjeta na početku Isto kao i WHILE – WEND Petlja se izvršava dok je uvjet istinit Uvjet ? Niz naredbi DA Primjer: DO WHILE uvjet Naredba_1 ... Naredba_n LOOP x = 10 DO WHILE x < 15 PRINT x x = x + 1 LOOP END
DO UNTIL – LOOP Petlja s ispitivanjem uvjeta na početku Petlja se izvršava dok je uvjet lažan Izlaz iz petlje je kada uvjet postane istinit uvjet ? niz naredbi NE DO UNTIL uvjet Naredba_1 ... Naredba_n LOOP
Primjer 4. Ispisati brojeve od 1 do 5. br = 1 DO UNTIL br = 6 PRINT br br = br + 1 LOOP END 1 2 3 4 5
DO – LOOP WHILE Petlja s ispitivanjem uvjeta na kraju Petlja će se izvršiti bar jedan put Petlja se izvršava dok je uvjet istinit Niz naredbi Uvjet ? DA NE DO Naredba_1 ... Naredba_n LOOP WHILE uvjet
Primjer 5. x = 10 DO PRINT x x = x + 1 LOOP WHILE x < 5 END Ispis na ekranu: 10 Petlja će se izvršiti jedan put iako je uvjet lažan zato što se istinitost provjerava na kraju petlje.
DO – LOOP UNTIL Petlja s ispitivanjem uvjeta na kraju Petlja se izvršava dok je uvjet lažan Izlaz iz petlje je kada uvjet postane istinit Petlja će se izvršiti bar jedan put Niz naredbi Uvjet ? NE DA DO Naredba_1 ... Naredba_n LOOP UNTIL uvjet
Primjer 6. CLS br = 0 DO PRINT "Dobar dan!" br = br + 1 početak kraj br = 0 “Dobar dan!” br = br + 1 br=5 DA NE CLS br = 0 DO PRINT "Dobar dan!" br = br + 1 LOOP UNTIL br = 5 END Dobar dan!
Primjer 7. Računanje n faktorijela (n!) pomoću petlje s ispitivanjem uvjeta na kraju CLS PRINT "Racunanje faktorijela: n!" INPUT "Unesi broj n = ", n fakt = 1 i = 1 DO fakt = fakt * i i = i + 1 LOOP UNTIL i > n PRINT "n! = "; fakt END n fakt i Uvjet 5 1 1>5 2 2>5 3 3>5 6 4 4>5 24 5>5 120 6>5 Racunanje faktorijela: n! Unesi broj n = 5 n! = 120
Usporedimo WHILE i UNTIL… x = 10 DO WHILE x < 15 PRINT x x = x + 1 LOOP Program koji koristi WHILE x = 10 DO UNTIL x = 15 PRINT x x = x + 1 LOOP Program koji koristi UNTIL 10 11 12 13 14 Oba programa će dati isti izlazni ekran
Zadaci Napisati program za računanje prosjeka plaća radnika. Plaće se unose dok se ne unese 0. Ispisati broj unesenih plaća i prosjek. Napisati program koji traži unos prirodnih brojeva a i b. Ponavljati unos dok ne bude a<b. Ispisati sve brojeve iz intervala [a,b] koji su djeljivi s brojem 7. Nije dozvoljena naredba GOTO. Obavezno koristiti bar jednu petlju WHILE-WEND.
Zadaci Napisati program koji će ponavljati učitavanje brojeva sve dok njihova suma ne postane veća od 5000. Program treba ispisati sumu i ukupan broj učitanih brojeva. Nije dozvoljena naredba GOTO. Napisati program koji će od korisnika tražiti unos prirodnog broja n. Ponavljati unos dok se ne unese n>0. Ispisati poruku je li paran ili neparan. Program zatim pita korisnika da li želi ponoviti unos. Samo ako korisnik unese “D” ili “d”, ponavlja se unos. Nije dozvoljena naredba GOTO.