OSNOVE PROGRAMIRANJA U PROGRAMSKOM JEZIKU C 6 dio
- Slides: 84
OSNOVE PROGRAMIRANJA U PROGRAMSKOM JEZIKU C++ 6. dio
Programska struktura petlje 2 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 3 Struktura petlje se može ostvariti naredbama: for, while, do – while.
for petlja 4 for petlja se najčešće koristi ako se dijelovi programa trebaju ponoviti unaprijed poznati broj puta. Sintaksa:
for petlja 5 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 6 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 7 Prirast je iznos za koji se mijenja vrijednost kontrolne varijable petlje.
8 for petlja
Primjer 1 9 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 10
#include<iostream> using namespace std; 11 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 12 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 13 unos početne i završne vrijednosti raspona
#include<iostream> using namespace std; 14 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 15 Potrebno je ovako promijeniti prethodni program: for (brojac=m; brojac<=n; ) { cout<<brojac<<" } ";
Beskonačna petlja 16
Beskonačna petlja 17 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 18 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 19 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 20
#include<iostream> using namespace std; 21 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 22 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 23 prirast
#include<iostream> using namespace std; 24 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 25 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 26 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 27
28 #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 29 Provjera:
Ugniježdene for petlje 30 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.
31 Ugniježdene for petlje
Ugniježdene for petlje 32 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 33 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.
Primjer 7 34 vanjska petlja unutarnja petlja kazalo se pomiče na početak sljedećeg redka
Primjer 7 35 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.
36 #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 37 Provjera:
Manipulatori 38 Ispis se može oblikovati manipulatorima (operatorima za rukovanje ispisom). Da bi ispis bio u pravilnim stupcima, koristi se manipulator: � setw(int) određuje koliki će se prostor predvidjeti za ispis podatka koji slijedi u izlaznom toku.
setw(int) 39 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 40 Potrebno je zbrojiti prvih 100 prirodnih brojeva. Zbroj prvih 100 prirodnih brojeva je. .
Primjer 8 41 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 42 početna vrijednost blok
#include<iostream> using namespace std; 43 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 44 Provjera:
Primjer 9 45 Treba prebrojiti koliko brojeva unutar raspona od M do N ima znamenku jedinice vrijednosti 9.
Primjer 9 46 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 47
48 #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 49 Provjera:
while petlja 50 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
while petlja 51 Sintaksa:
52 while petlja
Primjer 10 53 Uporabom while petlje potrebno je ispisati brojeve od 1 do 20.
Primjer 10 54 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 55 početna vrijednost uvjet prirast
56 #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 57 Potrebno je unesenom prirodnom broju prebrojiti znamenke. Upisi prirodni broj: Broj … ima … znamenaka.
Primjer 11 58 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 59 U bloku naredbi petlje: Od vrijednosti varijable b valja odvojiti znamenku najmanje težinske vrijednosti pa dobiveni rezultat vratiti u varijablu b. 2. Varijablu koja prebrojava znamenke uvećati za 1. 3. Provjeriti uvjet petlje. 1.
Primjer 11 60 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 61
#include<iostream> using namespace std; int main() 62 { 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 63 Provjera:
Primjer 12 64 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 65 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 66 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 67 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<<"Unesi broj: "; cin>>N; } cout<<"Uneseno je "<<broj<<" brojeva. Srednja vrijednost je "<<zbroj/broj<<endl; return 0; }
Primjer 12 69 Provjera:
do-while petlja 70 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 dowhile petlje se uvjet ispituje nakon izvođenja bloka naredbi u petlji.
do-while petlja 71 Sintaksa:
do-while petlja
Primjer 13 73 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 75 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 76 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 77 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; 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 79 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 80 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 81 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 82 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; 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 84 Provjera:
- Osnove java programiranja
- Php osnove,
- Objektno orijentisano programiranje java
- Io sono il signore dio tuo non avrai altro dio
- Metodologija programiranja
- Faze programiranja
- Matematicke osnove racunara
- Opste osnove predskolskog programa
- Osnove rada u programu prikupljanje i unos podataka
- Osnove imunologije
- Osnove algoritama
- Informatika je nauka
- Podatek in informacija
- Ubodni incident postupak
- Osnove zdravstvene njege
- Sql osnove
- Organske osnove psihickog zivota
- Sta su informaciono komunikacione tehnologije
- Masculinum femininum neutrum
- Osnove turizma udžbenik 1. razred pdf
- Osnove termodinamike
- Srednja kvadratna brzina molekula
- Informatika osnovni pojmovi
- Aktiva i pasiva konta
- Osnove jela
- Osnove pedagogije
- Osnove arhitekture
- Osnove zdravstvene njege
- Ispitivanje tehničkih materijala
- Osnove poslovne komunikacije
- Vesna zupančič ministrstvo za zdravje
- Molekulske osnove nasledjivanja
- Nastavne metode
- Slidetodoc
- 3. deklinacija suglasničke osnove
- Francuski jezik osnove
- Osnove interneta
- Finance za nefinančnike
- Osnove zdravstvene njege
- Informatika za 6 razred pitanja i odgovori
- Asimilacija samoglasnika
- Nulti kondicional
- Kako se gradi present perfect simple
- Luzitanizmi u hrvatskom jeziku
- Indirektne zamenice u italijanskom jeziku
- We keep the butter here passive voice
- Predlozi u italijanskom jeziku
- Iuventus
- Imperfekat
- Lisjem suhijem znacenje
- Muški rod imenice
- Frazemi primjeri
- Anglizmi u hrvatskom jeziku
- Idiomi primeri
- Glagolski dodaci
- Maj na hrvatskom jeziku
- Kviz o padežima
- Germanizmi u bosanskom jeziku
- Jezik i stil
- Sergej jesenjin pismo majci na ruskom jeziku
- Reported speech primeri
- Najljepši stihovi o hrvatskom jeziku
- Hungarizmi
- Prilozi u italijanskom jeziku
- Naglasci u hrvatskom jeziku
- Perfekat glagola machen
- Germanizmi u hrvatskom jeziku primjeri
- Nepravilni participi italijanski
- Fonološka prilagodba posuđenica
- Upitne reci u francuskom jeziku
- Držislavov natpis
- Posuđenice iz latinskog jezika
- Conditionnel francuski
- Padežna pitanja
- Dvousnenici
- Past perfect tense signal words
- Latinski brojevi do 100
- Particip prosli italijanski
- Come dio comanda trama
- Regalo d dios
- Nizina uz rijeku po
- Objekat
- Invitati alla festa di dio
- Signore vieni a salvarmi
- Opi dio