OSNOVE PROGRAMIRANJA U PROGRAMSKOM JEZIKU

Slides:



Advertisements
Similar presentations
KAKO IZRADITI IGRU: Izrežite tabele, sličice, kartice, žetone. Ostavite 1mm bijelog ruba oko okvira. Nalijepite ih na karton u boji (hamer), jako lijepo.
Advertisements

Programiranje kroz aplikacije
Vježbenica 2: struktura grananja
Zašto Python? Najbolje od QBasic-a i LOGO-a
Glava 5 Uslovi i petlje.
Uvod u programiranje - matematika – VI predavanje
Petlje WHILE – WEND.
Ponavljanje gradiva 2. razreda
ZADACI ZA VJEŽBU struktura grananja
RP3/predavanje08 Ugniježdeni tipovi Iznimke 10/11/2018
Java Hello world !.
CASE naredba višestrukog grananja
Algoritamske/programske strukture
Programiranje - Blokovi naredbi i logički tipovi –
OSNOVE PROGRAMIRANJA U PROGRAMSKOM JEZIKU
Struktura petlje.
Java Petlje i logika - 1.
Naredbe ciklusa.
Quick Basic.
Petlje FOR - NEXT.
REPEAT…UNTIL Naredbe ciklusa.
PROGRAMSKE PETLJE Milenković Gabrijela.
KREIRANJE OBJEKATA.
RAZGRANATA STRUKTURA Zadaci i rešenja
RAZGRANATA STRUKTURA Zadaci i rešenja
LABORATORIJSKA VEŽBA VEŽBA 4
Elementi programskog jezika PASCAL
Arrays and strings -1 (nizovi i znakovni nizovi)
OSNOVE PROGRAMIRANJA U PROGRAMSKOM JEZIKU
Naredba Case Višestruko grananje.
M-datoteke.
MessageBox.
(カックロ ) Ivo Ivanišević Ena Melvan
Programski jezik C++ - Vježbe - 2. dio
PROGRAMSKI JEZIK PASCAL
Visual Basic – Prvi primjer
Do While ... Loop struktura
TEST II razredi.
RAZVRSTAJTE SLIČICE U ODGOVARAJUĆE ĆELIJE!
Objektno-orijentirano programiranje
Programiranje – Small Basic
Kontrola toka programa
Programiranje - Uvod - Kolegij: Programski jezik C++
Nizovi.
C++ WORKSHOP Šimec Tino - FOI.
Python „Technology and social media have brought power back to the people” Mark McKinnon.
Skup instrukcija procesora
- 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
INPUT, PRINT P1 PMF Split.
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
Oduzimanje brojeva od 1 do 5.
Ponavljanje Pisana provjera
Programiranje - Naredbe za kontrolu toka programa – 1. dio
INTERPOLACIJA PO DIJELOVIMA POLINOMIMA
Vježbenica 2: struktura grananja – 2.dio
Hour of Code Coding Jetpack Jumper Mateja Hržica, MSP.
Uvjetne petlje.
Višestruko grananje.
Programski jezik C++ - Vježbe - 2. dio
Vježbenica 1b: Pravocrtna programska struktura
Programiranje1 ALGORITMI 1. Programiranje2Algoritam Precizno opisan način rješenja nekog problema Jednoznačno određuje što treba napraviti Kao ishod algoritma.
Presentation transcript:

OSNOVE PROGRAMIRANJA U PROGRAMSKOM JEZIKU C++ OSNOVE PROGRAMIRANJA U PROGRAMSKOM JEZIKU 6. dio

Programska struktura petlje U programu je često potrebno ponoviti neku radnju više puta. Takva se programska struktura naziva petlja ili iteracija. Ponavljati se može: unaprijed zadani broj puta, sve dok je ispunjen zadani uvjet.

Petlje for, while, do – while. Struktura petlje se može ostvariti naredbama: for, while, do – while.

for petlja for petlja se najčešće koristi ako se dijelovi programa trebaju ponoviti unaprijed poznati broj puta. Sintaksa:

for petlja Svaka for petlja ima svoju kontrolnu varijablu. Njena se vrijednost svakim prolaskom kroz petlju mijenja ovisno o vrijednosti prirasta. Kontrolnu varijablu petlje potrebno je prije ulaska u petlju deklarirati. U petlji se najprije zadaje vrijednost početnog stanja kontrolne varijable petlje (početno stanje).

for petlja Po zadavanju početnog stanja kontrolne varijable petlje zapisuje se uvjet. Blok naredbi se izvršava sve dok je vrijednost uvjeta jednaka logičkoj istini (1). Kad vrijednost uvjeta postane neistina (0) petlja se prekida.

for petlja Prirast je iznos za koji se mijenja vrijednost kontrolne varijable petlje.

for petlja

Primjer 1 Potrebno je ispisati brojeve od 1 do 20. Ispis brojeva od 1 do 20: 1 2 3 4 5 6 7 8 9 .............20

Primjer 1

#include<iostream> using namespace std; int main() { int brojac; cout<<"Ispis brojeva od 1 do 20:"<<endl; for (brojac=1;brojac<=20;brojac++) cout<<brojac<<" "; } cout<<endl; return 0;

Primjer 2 Potrebno je dopuniti prethodni primjer tako da se ispisuju brojevi iz raspona od M do N (raspon unosi korisnik). Ispis pocinje od broja: Ispis zavrsava brojem: Ispis brojeva od ... do ...: ... ... ... ..... ...

Primjer 2 unos početne i završne vrijednosti raspona

#include<iostream> using namespace std; int main() { int brojac,m,n; cout<<"ispis pocinje od broja:"; cin>>m; cout<<"ispis zavrsava brojem:"; cin>>n; for (brojac=m;brojac<=n;brojac++) cout<<brojac<<" "; } cout<<endl; return 0;

Beskonačna petlja Potrebno je ovako promijeniti prethodni program: for (brojac=m;brojac<=n;) { cout<<brojac<<" "; }

Beskonačna petlja

Beskonačna petlja Petlja se izvodi neograničen broj puta jer je uvjet uvijek ispunjen. Ako se dogodi da se pokrene program u kome je beskonačna petlja, program se može prekinuti zatvaranjem prozora u kom se izvršava program.

Beskonačna petlja Da bi se izbjegla beskonačna petlja treba: zadati uvjet koji jamči konačan broj ponavljanja petlje, navesti sva tri izraza u zagradi naredbe for, izbjegavati promjenu vrijednosti kontrolne varijable unutar bloka naredbi for petlje.

Primjer 3 Ispisati parne brojeve iz intervala od 50 do 100. Parni brojevi iz intervala od 50 do 100 su: 50 52 54 56.... 98 100

Primjer 3

#include<iostream> using namespace std; int main() { int brojac; cout<<"Parni brojevi iz intervala od 50 do 100 su:" <<endl; for (brojac=50;brojac<=100;brojac+=2) cout<<brojac<<" "; } cout<<endl; return 0;

Primjer 5 Ispisati parne brojeve u rasponu od 100 do 50. Parni brojevi iz intervala od 100 do 50 su: 100 98 96 94 ....... 52 50

Primjer 5 prirast

#include<iostream> using namespace std; int main() { int brojac; cout<<"Parni brojevi iz intervala od 100 do 50 su:" <<endl; for (brojac=100;brojac>=50;brojac-=2) cout<<brojac<<" "; } cout<<endl; return 0;

Primjer 6 Treba potražiti pa ispisati brojeve djeljive sa 7 unutar raspona od M do N. Raspon pocinje od broja: Raspon zavrsava brojem: Brojevi djeljivi sa 7 iz raspona od … do … su: ... ... ... ... ...

Primjer 6 Napomene: Blok naredbi u petlji se izvršava za svaki broj iz zadanog raspona. Ispisuju se samo brojevi djeljivi s brojem 7. Djeljivost brojeva se provjerava operatorom modulo (%).

Primjer 6

#include<iostream> using namespace std; int main() { int brojac,m,n; cout<<"Raspon pocinje od broja:"; cin>>m; cout<<"Raspon zavrsava brojem:"; cin>>n; cout<<"Brojevi djeljivi sa 7 iz raspona od "<<m <<" do "<<n<<" su:"<<endl; for (brojac=m;brojac<=n;brojac++) if(brojac%7==0) cout<<brojac<<" "; } cout<<endl; return 0;

Primjer 6 Provjera:

Ugniježdene for petlje for petlje mogu biti ugniježdene jedna unutar druge. Pri ulazu u vanjsku petlju, njena se kontrolna varijabla postavi na početnu vrijednost. S tom se vrijednošću ulazi u unutarnju petlju.

Ugniježdene for petlje

Ugniježdene for petlje Pri ulazu u unutarnju petlju, kontrolna varijabla unutarnje petlje se postavi na početnu vrijednost i sve dok je uvjet zadovoljen, izvršava se blok naredbi unutarnje petlje. Po završenoj unutarnjoj petlji, kontrolna varijabla vanjske petlje se mijenja za vrijednost prirasta i provjerava se uvjet vanjske petlje. Za svaku vrijednost kontrolne varijable vanjske petlje izvodi se cjelokupna unutarnja petlja.

Primjer 7 Vrijednost kontrolne varijable vanjske petlje mijenja se od 1 do 3, a unutarnje od 1 do 5. U programu se ispisuju trenutne vrijednosti kontrolnih varijabli vanjske i unutarnje petlje.

kazalo se pomiče na početak sljedećeg redka Primjer 7 vanjska petlja kazalo se pomiče na početak sljedećeg redka unutarnja petlja

Primjer 7 Vanjska petlja omogućit će : ispis teksta: Vanjska petlja: ispis trenutne vrijednosti kontrolne varijable vanjske petlje (i) ispis teksta: Unutarnja petlja: Unutarnja petlja : ispisuje trenutne vrijednosti kontrolne varijable unutarnje petlje (j, od 1 do 5). Po ispisu svakoga od redaka, kazalo se prebacuje na početak novog redka i postupak se ponavlja.

#include <iostream> using namespace std; int main() { int i, j; for ( i = 1; i <= 3; i++ ) cout<<endl<<"Vanjska petlja: i="<<i<<endl; cout<<"Unutarnja petlja: "; for ( j = 1; j <= 5; j++ ) cout<<" j="<<j; } cout<<endl; return 0;

Primjer 7 Provjera:

Manipulatori Ispis se može oblikovati manipulatorima (operatorima za rukovanje ispisom). Da bi ispis bio u pravilnim stupcima, koristi se manipulator: setw(int) setw(int) određuje koliki će se prostor predvidjeti za ispis podatka koji slijedi u izlaznom toku.

setw(int) Svi su manipulatori za rukovanje ispisom definirani u biblioteci iomanip koju u datoteku izvornog koda treba uključiti naredbom include. setw(int) se upotreblajva unutar naredbe izlaznog toka, npr.:

Primjer 8 Potrebno je zbrojiti prvih 100 prirodnih brojeva. Zbroj prvih 100 prirodnih brojeva je ....

Primjer 8 Prije ulaska u petlju treba: Deklarirati varijablu koja će sadržavati trenutne vrijednosti kontrolne varijable petlje (npr. zbroj) pri svakom prolasku kroz petlju. Varijabli zbroj pridružiti vrijednost 0. Naredba u bloku omogućava uvećavanje vrijednosti varijable zbroj za tekuću vrijednost kontrolne varijable petlje (brojac).

Primjer 8 blok početna vrijednost

#include<iostream> using namespace std; int main() { int brojac,zbroj; zbroj=0; cout<<"Zbroj prvih 100 prirodnih brojeva je:"; for (brojac=1;brojac<=100;brojac++) zbroj=zbroj+brojac; } cout<<zbroj<<endl; return 0;

Primjer 8 Provjera:

Primjer 9 Treba prebrojiti koliko brojeva unutar raspona od M do N ima znamenku jedinice vrijednosti 9.

Primjer 9 Prije ulaska u petlju treba: Deklarirati varijablu (npr. N) u kojoj će se prebrojavati pronađeni brojevi koji zadovoljavaju uvjet. Varijabli N pridružiti vrijednost 0. Naredba u bloku omogućava uvećavanje vrijednosti varijable N za 1 svaki put kada se pronađe broj koji zadovoljava uvjet.

Primjer 9

#include<iostream> using namespace std; int main() { int brojac,m,n,N; cout<<"Raspon pocinje od broja:"; cin>>m; cout<<"Raspon zavrsava brojem:"; cin>>n; N=0; for (brojac=m;brojac<=n;brojac++) if(brojac%10==9) N=N+1; } cout<<"U rasponu od "<<m<<" do "<<n<<" ima "<<N <<" brojeva sa znamenkom jedinice vrijednosti 9. " <<endl; return 0;

Primjer 9 Provjera:

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 čiji rezultat mora biti tipa bool. Kada rezultat postane logička neistina (false, 0), preskače se blok naredbi petlje i program se nastavlja od prve naredbe nakon bloka naredbi petlje.

while petlja Sintaksa:

while petlja

Primjer 10 Uporabom while petlje potrebno je ispisati brojeve od 1 do 20.

Primjer 10 Petlja while može zamijeniti for petlju. Za rješenje ovog problema potrebno je, prije ulaska u petlju: zadati početnu vrijednost varijable koja se koristi u uvjetu (brojac=1), zadati uvjet (brojac<=20), U bloku naredbi u petlji uz ostalo zadati i prirast (brojac++).

Primjer 10 prirast uvjet početna vrijednost

#include<iostream> using namespace std; int main() { int brojac; brojac=1; cout<<"Ispis brojeva od 1 do 20:"<<endl; while(brojac<=20) cout<<brojac<<" "; brojac=brojac+1; } cout<<endl; return 0;

Primjer 11 Potrebno je unesenom prirodnom broju prebrojiti znamenke. Upisi prirodni broj: Broj … ima … znamenaka.

Primjer 11 Broj znamenaka odabranog broja nije unaprijed poznat. Pomoći će petlja while. Početna vrijednost varijable koja se koristi u uvjetu je uneseni broj (b). Da bi se izvršavao blok naredbi u petlji vrijednost varijable b mora biti veća od 0 (b>0).

Primjer 11 U bloku naredbi petlje: Od vrijednosti varijable b valja odvojiti znamenku najmanje težinske vrijednosti pa dobiveni rezultat vratiti u varijablu b. Varijablu koja prebrojava znamenke uvećati za 1. Provjeriti uvjet petlje.

Primjer 11 Kada se prebroji posljednja znamenka (znamenka najveće težinske vrijednosti), uvjet više neće biti zadovoljen. Petlja se prekida i ispisuje se rezultat. Primjerice:

Primjer 11

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

Primjer 11 Provjera:

Primjer 12 Treba unijeti N realnih brojeva pa izračunati njihovu srednju vrijednost. Unos brojeva traje sve dok korisnik ne upiše 0. Nakon posljednjeg broja unesi nulu. Unesi broj: ... Uneseno je ... brojeva. Srednja vrijednost je ....

Primjer 12 Problem se rješava while petljom. Prije ulaska u petlju treba zadati početnu vrijednost varijable koja se koristi u uvjetu. U ovome slučaju unosi se prvi broj (N). U uvjetu se uspoređuje sadržaj varijable u koju se pohranjuje uneseni broj s 0 (N==0).

Primjer 12 Ako je uvjet ispunjen, izvršava se blok naredbi u petlji. U bloku je potrebno: uneseni broj N pribrojiti varijabli zbroj (zbrajanje), varijablu broj uvećati za jedan (prebrojavanje), unijeti sljedeći broj N. Unos se nastavlja sve dok je uvjet ispunjen, tj. dok se ne unese 0.

Primjer 12 Kada korisnik unese 0, uvjet više nije ispunjen, program se nastavlja od prve naredbe nakon petlje. Nakon petlje treba izračunati i ispisati srednju vrijednost unesenih brojeva.

#include<iostream> using namespace std; int main() { float N,broj,zbroj; broj=0; zbroj=0; cout<<"Nakon posljednjeg broja unesi nulu."<<endl; cout<<"Unesi broj:"; cin>>N; while(N!=0) { broj=broj+1; zbroj=zbroj+N; } cout<<"Uneseno je "<<broj<<" brojeva. Srednja \ vrijednost je "<<zbroj/broj<<endl; return 0;

Primjer 12 Provjera:

do-while petlja do-while petlja se također koristi ako broj ponavljanja bloka naredbi u petlji nije unaprijed poznat. Za razliku od do sad opisanih petlji kod do-while petlje se uvjet ispituje nakon izvođenja bloka naredbi u petlji.

do-while petlja Sintaksa:

do-while petlja

Primjer 13 Primjer 11 riješiti do-while petljom (unesenom prirodnom broju prebrojiti znamenke).

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

Naredba break Naredba break se rabi kada treba prekinuti izvođenje nekog bloka naredbi unutar petlje, a sastavni je dio i switch–case naredbe. Nakon naredbe break program izvršenje nastavlja od prve naredbe iza programske petlje.

Primjer 14 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: … Uneseno je … ispravnih brojeva. Njihov je zbroj …

Primjer 14 Ako je uvjet ispunjen, prekida se izvođenje bloka naredbi u petlji, i nastavlja se s prvom naredbom nakon bloka.

#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<<" ispravnih \ brojeva. Njihov je zbroj "<<zbroj<<endl; return 0;

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.

Primjer 15 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.

Primjer 15 Upisi broj: … Uneseno je … ispravnih brojeva. Njihov je zbroj … Ako se unese broj 5, ispisat će se poruka: Unesen je broj 5. On se ne pribraja i ne prebrojava.

Primjer 15 Ako je uvjet ispunjen, preskače se dio bloka naredbi do kraja programske petlje, a nakon toga se petlja nastavlja.

#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<<" ispravnih \ brojeva. Njihov je zbroj "<<zbroj<<endl; return 0;

Primjer 60 Provjera: