Uvjetne petlje.

Slides:



Advertisements
Similar presentations
Programiranje kroz aplikacije
Advertisements

Vježbenica 2: struktura grananja
Programi zasnovani na prozorima
Uvod u programiranje - matematika – VI predavanje
Petlje WHILE – WEND.
Ponavljanje gradiva 2. razreda
ZADACI ZA VJEŽBU struktura grananja
Java Hello world !.
PONAVLJANJE CheckBox Koristi se za rešavanje zadataka gde je potrebno omogućiti uključivanje ili isključivanje jedne ili više opcija. Važna svojstva: –Checked.
Algoritamske/programske strukture
Programiranje - Blokovi naredbi i logički tipovi –
OSNOVE PROGRAMIRANJA U PROGRAMSKOM JEZIKU
Struktura petlje.
Java Petlje i logika - 1.
Naredbe ciklusa.
The Present Perfect Continuous Tense
Dvodimenzionalno polje
Quick Basic.
Petlje FOR - NEXT.
REPEAT…UNTIL Naredbe ciklusa.
PROGRAMSKE PETLJE Milenković Gabrijela.
Java Script.
Europski dan programiranja
RAZGRANATA STRUKTURA Zadaci i rešenja
Elektrotehnički fakultet – Podgorica Operativni sistemi
Elementi programskog jezika PASCAL
Arrays and strings -1 (nizovi i znakovni nizovi)
OSNOVE PROGRAMIRANJA U PROGRAMSKOM JEZIKU
Vježbenica 1.: Pravocrtna programska struktura
Naredba Case Višestruko grananje.
M-datoteke.
MessageBox.
Pojmovi digitalnog zapisa
Programski jezik C++ - Vježbe - 2. dio
PROGRAMSKI JEZIK PASCAL
Visual Basic – Prvi primjer
Osnovni simboli jezika Pascal
Do While ... Loop struktura
TEST II razredi.
Objektno-orijentirano programiranje
Programiranje – Small Basic
Kontrola toka programa
Programiranje - Uvod - Kolegij: Programski jezik C++
OSNOVE PROGRAMIRANJA U PROGRAMSKOM JEZIKU
Strukture podataka i algoritmi 5. VRIJEME IZVRŠAVANJA ALGORITMA
Nizovi.
C++ WORKSHOP Šimec Tino - FOI.
Python „Technology and social media have brought power back to the people” Mark McKinnon.
Analiza varijance prof. dr. sc. Nikola Šakić.
- metodom zamjene susjednih elemenata niza
Naredbe u php-u.
SRETNA SEDMICA.
Programski jezik C++ - Vježbe - 5. dio
Programski jezik Python
Vježba- grananje-naredba if
Programiranje - Naredbe za kontrolu toka programa – 1. dio
Programski jezik C++ - Vježbe - 4. dio
Naredbe u php-u.
Programiranje - Naredbe za kontrolu toka programa – 3. dio
Programski jezik C++ - Vježbe - 1. dio
7. Baze podataka Postavke MS Accessa.
Oduzimanje brojeva od 1 do 5.
Ponavljanje Pisana provjera
Vježbanje.
Programiranje - Naredbe za kontrolu toka programa – 1. dio
INTERPOLACIJA PO DIJELOVIMA POLINOMIMA
Vježbenica 2: struktura grananja – 2.dio
Višestruko grananje.
Programski jezik C++ - Vježbe - 2. dio
Vježbenica 1b: Pravocrtna programska struktura
Presentation transcript:

Uvjetne petlje

while petlja while petlja se najčešće koristi ako broj ponavljanja bloka naredbi u petlji nije unaprijed poznat. Izvršava se sve dok je ispunjen zadani uvjet (uvjet je logički izraz). Sanda, 2019.

while petlja Osnovni oblik: Sanda, 2019.

Primjer 54 Potrebno je unesenom prirodnom broju prebrojiti znamenke. Upisi prirodni broj: Broj … ima … znamenaka. Sanda, 2019.

#include<iostream> using namespace std; int main() { int br,b,a; Sanda, 2019. #include<iostream> using namespace std; int main() { int br,b,a; cout<<"Upisi prirodni broj: "; cin>>b; a=b; br=0; while(b>0) b=b/10; br=br+1; } cout<<"Broj "<<a<<" ima "<<br<<" znamenki."<<endl; return 0;

Primjer 54 Broj znamenaka broja B nije unaprijed poznat. Algoritam bi trebao funkcionirati na sljedeći način: Sanda, 2019.

Primjer 54 Uvjet petlje: B>0. U petlji: Od vrijednosti varijable B odvaja se znamenka najmanje težinske vrijednosti, a potom se dobiveni rezultat vraća u varijablu B. Varijabla koja prebrojava znamenke uvećava se za 1. Provjerava se uvjet petlje. Sanda, 2019.

Pohrana vrijednosti unesenog broja. Varijablu koja će prebrojavati znamenke valja isprazniti. Sanda, 2019.

Primjer 54 Provjera programa: Sanda, 2019.

Primjer 55 Test je pisalo N učenika (N NIJE unaprijed poznat!!). Maksimalan broj bodova je 100. Za ocjenu odličan treba postići bar 80 bodova. U programu se za svakog učenika unose bodovi osvojeni na testu (broj bodova NE MOŽE biti negativan). Po unosu broja bodova prvo treba provjeriti da li je broj bodova iz dozvoljenog raspona. Ako nije, takav se unos zanemaruje. Potom se unos ponavlja. Unos traje sve dok korisnik ne upiše -1. Program ispisuje koliko je učenika pisalo test, te koliko ih je ocijenjeno ocjenom odličan. * DM Sanda, 2019.

Primjer 55 Upisi osvojeni broj bodova (raspon bodova je 0-100): Test je pisalo … ucenika. Ocjenom odlican ocijenjeno ih je …. * DM Sanda, 2019.

#include<iostream> using namespace std; int main() { int b,bb,bu,b5; b5=0; bu=0; cout<<"Nakon posljednjeg broja bodova upisi -1."<<endl; while(bb!=-1) { p:cout<<"Upisi osvojeni broj bodova (raspon bodova je 0-100): "; cin>>bb; if((bb<-1)||(bb>100)) cout<<endl<<"Pogreska pri unosu bodova. Ponovi!"<<endl; goto p; } bu++; if(bb>=80) b5++; bu=bu-1; cout<<endl<<"Test je pisalo "<<bu<<" ucenika.\ Ocjenom odlican ocijenjeno ih je"<<b5; return 0; Sanda, 2019.

Primjer 55 U uvjetu petlje se sadržaj varijable bb uspoređuje s -1 (bb!=-1). U petlji: unosi se broj bodova bb, varijabla bu uvećava se za jedan, uneseni broj bodova bb uspoređuje se s 80 (bb>=80), ako je veći od 80, varijabla b5 uvećava se za jedan (prebrojavanje odličnih), Nakon petlje, sadržaj varijable bu umanjuje se za 1 (nula se ne broji). Sanda, 2019.

Pomoćne varijable valja isprazniti. Uvjet petlje. Provjera za ocjenu odličan. Da li je ocjena iz zadanog raspona vrijednosti? -1 se ne smije prebrojiti! Sanda, 2019.

Primjer 55 Provjera programa: Sanda, 2019.

Do - while petlja do-while petlja se najčešće koristi ako broj ponavljanja bloka naredbi u petlji nije unaprijed poznat. Uvjet se ispituje nakon izvođenja bloka naredbi u petlji. Blok naredbi u ovoj petlji izvodi se bar jednom bez obzira je li uvjet ispunjen ili ne. Sanda, 2019.

Do - while petlja Osnovni oblik: Sanda, 2019.

Primjer 56 Restoran želi kupiti ribe. U program se unosi masa svake pojedine ribe, sve dok ukupna masa ne prijeđe 100 kg. Program ispisuje ukupan broj kupljenih riba i njihovu ukupnu masu (riješiti do-while petljom). Upisi masu ribe (u kg): Kupljeno je … komada ribe. Ukupna masa riba iznosi … kg.. * DM Sanda, 2019.

#include<iostream> using namespace std; int main() { Sanda, 2019. #include<iostream> using namespace std; int main() { float riba,suma,b; suma=0; b=0; do cout<<"Upisi masu ribe (u kg): "; cin>>riba; suma=suma+riba; b++; } while(suma<=100); cout<<endl<<"Kupljeno je "<<b<<" komada ribe. Ukupna\ masa riba iznosi "<<suma<<" kg."<<endl; return 0;

Unos vrijednosti težine, pribrajanje i prebrojavanje. Provjera uvjet petlje. Sanda, 2019.

Primjer 56 Provjera programa: Sanda, 2019.

Primjer 57 Korisnik unosi realne brojeve. Unaprijed nije poznato koliko će tih brojeva biti. Nakon posljednjeg broja unosi se 0. Program pronalazi pa ispisuje najveći uneseni broj. Za prekid unosa brojeva treba unijeti broj 0. Upisi realni broj: Najveci broj je … Sanda, 2019.

#include<iostream>using namespace std; int main() { float b,max; cout<<endl<<"Program pronalazi najveci broj iz\ skupa brojeva koje unosi korisnik. Za prekid\ unosa brojeva treba unijeti broj 0."<<endl<<endl; cout<<"Upisi realni broj: "; cin>>b; if(b==0) goto k; max=b; do if(b>max) } while(b!=0); cout<<endl<<"Najveci broj je: "<<max<<endl; k:return 0; Sanda, 2019.

Primjer 57 Uvodi se pomoćna varijabla (npr. max) u koju se na početku sprema broj unesen prije početka petlje. Da bi se izvršavao blok naredaba u petlji, vrijednost varijable b mora biti različita od 0 (b!=0). U bloku naredaba petlje treba: Unijeti sljedeći broj. Uneseni broj usporediti sa sadržajem varijable max. Ako je taj broj veći od sadržaja varijable max, njegova vrijednost postaje novi sadržaj varijable max. Sanda, 2019.

Ako je prvi broj nula, program će stati. Svaki od unesenih brojeva uspoređuje se s vrijednošću varijable max. Početna vrijednost. Uvjet. Sanda, 2019.

Specifična situacija zahtijeva ovaj dodatak. Potencijalni problem! Korisnik na početku unosi negativan broj, a potom unosi nulu! Specifična situacija zahtijeva ovaj dodatak. Sanda, 2019.

Primjer 57 Provjera programa: Sanda, 2019.

Naredba break Naredba break rabi se za prekidanje izvođenja programske petlje. Nakon naredbe break program izvršenje nastavlja od prve naredbe iza programske petlje. Sanda, 2019.

Primjer 58 Treba unijeti 10 prirodnih brojeva pa ih zbrojiti. U slučaju unosa broja 5, unos se prekida. Ispisuje se poruka o unosu broja 5, a potom i broj unesenih brojeva do unosa petice te njihov zbroj. Upisi broj: … Prekid zbog unosa broja 5. Uneseno je … brojeva. Njihov je zbroj … Sanda, 2019.

#include <iostream> using namespace std; int main () { Sanda, 2019. #include <iostream> using namespace std; int main () { int n,A,zbroj,broj; zbroj=0; broj=0; for (n=1; n<=10; n++) cout <<"Upisi broj:"; cin>>A; if (A==5) cout<<"Prekid zbog unosa broja 5"<<endl; break; } broj=broj+1; zbroj=zbroj+A; cout<<endl<<"Uneseno je "<<broj<<" brojeva. Njihov \ je zbroj "<<zbroj<<endl; return 0;

U slučaju unosa broja 5, unos se prekida i iskakuje se iz petlje. Sanda, 2019.

Primjer 58 Provjera programa: Sanda, 2019.

Naredba continue Ponekad je potrebno preskočiti dio bloka naredbi do kraja programske petlje, pa nakon toga petlju nastaviti. U tu se svrhu koristi naredba continue. (Bolje je, umjesto naredbe continue rabiti naredbu grananja if jer nepažljiva uporaba naredbe continue može uzrokovati beskonačnu petlju.) Sanda, 2019.

Primjer 59 Treba unijeti 10 prirodnih brojeva, pa ih zbrojiti. U slučaju unosa broja 5, ispisuje se poruka o unosu broja 5, preskače se dio bloka do kraja programske petlje, pa se nakon toga petlja nastavlja. Na kraju se ispisuje broj ispravno unesenih brojeva te njihov zbroj. Sanda, 2019.

Primjer 59 Upisi broj: … Uneseno je … brojeva koji nisu 5. Njihov je zbroj … Ako se unese broj 5, ispisat će se poruka: Unesen je broj 5. On se ne pribraja i ne prebrojava. Sanda, 2019.

#include <iostream> using namespace std; int main () { Sanda, 2019. #include <iostream> using namespace std; int main () { int n,A,zbroj,broj; zbroj=0; broj=0; for (n=1; n<=10; n++) cout <<"Upisi broj:"; cin>>A; if (A==5) cout<<"Unesen je broj 5. On se ne pribraja i\ ne prebrojava."<<endl; continue; } broj=broj+1; zbroj=zbroj+A; cout<<endl<<"Uneseno je "<<broj<<" brojeva koji \ nisu 5. Njihov je zbroj "<<zbroj<<endl; return 0;}

U slučaju unosa broja 5, preskače se dio bloka, a potom se unos nastavlja. Sanda, 2019.

Primjer 59 Provjera programa: Sanda, 2019.