STRUKTURA PETLJE UVOD STRUKTURA PETLJE Struktura petlje koristi

  • Slides: 31
Download presentation
STRUKTURA PETLJE - UVOD

STRUKTURA PETLJE - UVOD

STRUKTURA PETLJE § Struktura petlje koristi se kada neki blok naredaba treba višekratno ponavljati.

STRUKTURA PETLJE § Struktura petlje koristi se kada neki blok naredaba treba višekratno ponavljati. § Ponavljati se može: § unaprijed zadani broj puta (konačne petlje), § sve dok je ispunjen zadani uvjet (uvjetne petlje). Sanda, 2020. 2

FOR PETLJA § for petlja - petlja koja se izvršava unaprijed zadani, konačan broj

FOR PETLJA § for petlja - petlja koja se izvršava unaprijed zadani, konačan broj puta. § Osnovni oblik for petlje: Sanda, 2020. 3

FOR PETLJA § Svaka for petlja ima svoju kontrolnu varijablu. § Kontrolnoj varijabli se

FOR PETLJA § Svaka for petlja ima svoju kontrolnu varijablu. § Kontrolnoj varijabli se na početku petlje pridružuje početna vrijednost. § Vrijednost kontrolne varijable svakim se prolaskom kroz petlju mijenja za vrijednost prirasta. § Petlja se izvršava sve dok je uvjet ispunjen (logička istina; 1). Sanda, 2020. 4

FOR PETLJA Sanda, 2020. 5

FOR PETLJA Sanda, 2020. 5

PRIMJER 45 § Korištenjem for petlje ispisati brojeve iz raspona od M do N

PRIMJER 45 § Korištenjem for petlje ispisati brojeve iz raspona od M do N (raspon bira korisnik). Upisi pocetni broj raspona: Upisi zavrsni broj raspona: Ispis brojeva od. . . do. . . : . . . . Sanda, 2020. 6

Sanda, 2020. #include<iostream> using namespace std; int main() { int brojac, m, n; cout<<"Upisi

Sanda, 2020. #include<iostream> using namespace std; int main() { int brojac, m, n; cout<<"Upisi pocetni broj raspona: "; cin>>m; cout<<"Upisi zavrsni broj raspona: "; cin>>n; cout<<endl<<"Ispis brojeva od "<<m<<" do"<<n<<": "<<endl; for (brojac=m; brojac<=n; brojac++) { cout<<brojac<<" "; } return 0; } 7

Sanda, 2020. 8

Sanda, 2020. 8

PRIMJER 45 § Provjera programa: Sanda, 2020. 9

PRIMJER 45 § Provjera programa: Sanda, 2020. 9

PRIMJER 45 A §U prethodnom primjeru obrisati dio definicije petlje, ovako: for (brojac=m; brojac<=n;

PRIMJER 45 A §U prethodnom primjeru obrisati dio definicije petlje, ovako: for (brojac=m; brojac<=n; ) a potom program pokrenuti. Sanda, 2020. 10

OPREZ - BESKONAČNA PETLJA § Petlja se izvodi neograničen broj puta jer je uvjet

OPREZ - BESKONAČNA PETLJA § Petlja se izvodi neograničen broj puta jer je uvjet uvijek ispunjen. Sanda, 2020. 11

KAKO IZBJEĆI BESKONAČNU PETLJU? § Zadati uvjet koji ponavljanja petlje. jamči konačan broj §

KAKO IZBJEĆI BESKONAČNU PETLJU? § Zadati uvjet koji ponavljanja petlje. jamči konačan broj § Izbjegavati promjenu vrijednosti kontrolne varijable unutar bloka naredbi for petlje. Sanda, 2020. 12

PRIMJER 46 § Treba ispisati parne brojeve iz raspona od 50 do N. N

PRIMJER 46 § Treba ispisati parne brojeve iz raspona od 50 do N. N bira korisnik. Upisi zavrsnu vrijednost raspona: Parni brojevi iz raspona od 50 do … su: 50 52 54 56. . Sanda, 2020. 13

Sanda, 2020. #include<iostream> using namespace std; int main() { int brojac, N; cout<<"Upisi zavrsnu

Sanda, 2020. #include<iostream> using namespace std; int main() { int brojac, N; cout<<"Upisi zavrsnu vrijednost raspona: "; cin>>N; cout<<endl<<"Parni brojevi iz raspona od 50 do " <<N<<" su: " <<endl; for (brojac=50; brojac<=N; brojac+=2) { cout<<brojac<<" "; } return 0; } 14

PRIMJER 46 § Pošto je razlika dva susjedna parna broja 2, problem je moguće

PRIMJER 46 § Pošto je razlika dva susjedna parna broja 2, problem je moguće riješiti tako da se vrijednost kontrolne varijable petlje svakim prolaskom kroz petlju uveća za 2. (Zadatak se može riješiti i provjerom djeljivosti s 2!) Sanda, 2020. 15

PRIMJER 46 Sanda, 2020. 16

PRIMJER 46 Sanda, 2020. 16

PRIMJER 46 § Provjera programa: Sanda, 2020. 17

PRIMJER 46 § Provjera programa: Sanda, 2020. 17

PRIMJER 46 A § Što kada bismo željeli brojiti unatrag? § Promijeniti prethodni program

PRIMJER 46 A § Što kada bismo željeli brojiti unatrag? § Promijeniti prethodni program tako da ispisuje parne brojeve unatrag; od 100 do N. N bira korisnik. Upisi zavrsnu vrijednost raspona: Parni brojevi iz raspona od 100 do … su: 100 98 96 94. . …. … (I ovaj se zadatak može riješiti provjerom djeljivosti s 2!) Sanda, 2020. 18

Sanda, 2020. #include<iostream> using namespace std; int main() { int brojac, N; cout<<"Upisi zavrsnu

Sanda, 2020. #include<iostream> using namespace std; int main() { int brojac, N; cout<<"Upisi zavrsnu vrijednost raspona: "; cin>>N; cout<<endl<<"Parni brojevi iz raspona od 100 do "<<N<<" su: "<<endl; for (brojac=100; brojac>=N; brojac-=2) { cout<<brojac<<" "; } return 0; } 19

PRIMJER 46 A § Prirast može biti i negativan, tada se vrijednost kontrolne varijable

PRIMJER 46 A § Prirast može biti i negativan, tada se vrijednost kontrolne varijable smanjuje. § Ako je prirast negativan, početna vrijednost kontrolne varijable mora biti veća od završne. Sanda, 2020. 20

PRIMJER 46 A Sanda, 2020. 21

PRIMJER 46 A Sanda, 2020. 21

PRIMJER 46 A § Provjera programa: Sanda, 2020. 22

PRIMJER 46 A § Provjera programa: Sanda, 2020. 22

PRIMJER 47 § Treba ispisati brojeve iz raspona od M do N djeljive brojem

PRIMJER 47 § Treba ispisati brojeve iz raspona od M do N djeljive brojem B. Upisi pocetnu vrijednost raspona: Upisi zavrsnu vrijednost raspona: Upisi broj za provjeru djeljivosti: Brojevi djeljivi s. . . iz raspona od. . . do. . . su: . . . . Sanda, 2020. 23

Sanda, 2020. #include<iostream> using namespace std; int main() { int brojac, m, n, b;

Sanda, 2020. #include<iostream> using namespace std; int main() { int brojac, m, n, b; cout<<"Upisi pocetnu vrijednost raspona: "; cin>>m; cout<<"Upisi zavrsnu vrijednost raspona: "; cin>>n; cout<<"Upisi broj za provjeru djeljivosti: "; cin>>b; cout<<endl<<"Brojevi djeljivi sa "<<b <<" iz raspona od "<<m<<" do "<<n<<" su: "<<endl; for (brojac=m; brojac<=n; brojac++) { if(brojac%b==0) cout<<brojac<<" "; } return 0; } 24

Sanda, 2020. 25

Sanda, 2020. 25

PRIMJER 47 § Provjera programa: Sanda, 2020. 26

PRIMJER 47 § Provjera programa: Sanda, 2020. 26

PRIMJER 48 § Potrebno je ispisati sve troznamenkaste brojeve koji imaju znamenku desetice djeljivu

PRIMJER 48 § Potrebno je ispisati sve troznamenkaste brojeve koji imaju znamenku desetice djeljivu s 2, a znamenku jedinice jednaku 7. Brojevi koji zadovoljavaju uvjet su: …. . . … Sanda, 2020. 27

Sanda, 2020. #include<iostream> using namespace std; int main() { int i, d, j; cout<<endl<<"Brojevi

Sanda, 2020. #include<iostream> using namespace std; int main() { int i, d, j; cout<<endl<<"Brojevi koji zadovoljavaju uvjet su: "<<endl; for(i=100; i<=999; i++) { d=i/10%10; j=i%10; if((d%2==0)&&(j==7)) { cout<<i<<" "; } } cout<<endl; return 0; 28 }

PRIMJER 48 § Potrebno je iz troznamenkastog broja izdvojiti znamenke desetice i jedinice, a

PRIMJER 48 § Potrebno je iz troznamenkastog broja izdvojiti znamenke desetice i jedinice, a potom postaviti uvjete koji su za njih zadani: § Uvjete povezujemo I operatorom. Sanda, 2020. 29

Sanda, 2020. 30

Sanda, 2020. 30

PRIMJER 48 § Provjera programa: Sanda, 2020. 31

PRIMJER 48 § Provjera programa: Sanda, 2020. 31