OSNOVE PROGRAMIRANJA U PROGRAMSKOM JEZIKU C 4 dio

  • Slides: 43
Download presentation
OSNOVE PROGRAMIRANJA U PROGRAMSKOM JEZIKU C++ 4. dio

OSNOVE PROGRAMIRANJA U PROGRAMSKOM JEZIKU C++ 4. dio

Operatori 2 Operatori su simboli koji predstavljaju određene funkcije. Možemo ih podijeliti na: �

Operatori 2 Operatori su simboli koji predstavljaju određene funkcije. Možemo ih podijeliti na: � aritmetičke operatore, � logičke operatore, � operatore uspoređivanja i � ostali operatori.

Binarni aritmetički operatori 3 simbol funkcija + * / zbrajanje % oduzimanje množenje dijeljenje

Binarni aritmetički operatori 3 simbol funkcija + * / zbrajanje % oduzimanje množenje dijeljenje modulo (za int) cjelobrojni ostatak dijeljenja

Primjer 1. 4 � � Treba izračunati zbroj, razliku, umnožak i kvocijent dvaju realnih

Primjer 1. 4 � � Treba izračunati zbroj, razliku, umnožak i kvocijent dvaju realnih brojeva. Ispis neka bude oblika: Unesi prvi broj: unesi drugi broj: . . +. . =. . . . -. . =. . . . *. . =. . . . /. . =. .

Primjer 1 5 #include<iostream> using namespace std; int main() { float a, b, c,

Primjer 1 5 #include<iostream> using namespace std; int main() { float a, b, c, d, e, f; cout<<"Unesi prvi broj: "<<endl; cin>>a; cout<<"unesi drugi broj: "<<endl; cin>>b; c=a+b; d=a-b; e=a*b; f=a/b; cout<<a<<"+"<<b<<"="<<c<<endl; cout<<a<<"-"<<b<<"="<<d<<endl; cout<<a<<"*"<<b<<"="<<e<<endl; cout<<a<<"/"<<b<<"="<<f<<endl; return 0; }

 6 ili: #include<iostream> using namespace std; int main() { float a, b; cout<<"Unesi

6 ili: #include<iostream> using namespace std; int main() { float a, b; cout<<"Unesi prvi broj: "<<endl; cin>>a; cout<<"unesi drugi broj: "<<endl; cin>>b; cout<<a<<"+"<<b<<"="<<a+b<<endl; cout<<a<<"-"<<b<<"="<<a-b<<endl; cout<<a<<"*"<<b<<"="<<a*b<<endl; cout<<a<<"/"<<b<<"="<<a/b<<endl; return 0; }

Primjer 2. 7 � Potrebno je izračunati cjelobrojni kvocijent i cjelobrojni ostatak dijeljenja dvaju

Primjer 2. 7 � Potrebno je izračunati cjelobrojni kvocijent i cjelobrojni ostatak dijeljenja dvaju cijelih brojeva. � Ispis neka bude oblika: Upisi djeljenik: Upisi djelitelj: . . . =. . . cijelih, a ostatak je. . .

Primjer 2 8 #include<iostream> using namespace std; int main() { int a, b, ostatak,

Primjer 2 8 #include<iostream> using namespace std; int main() { int a, b, ostatak, kvoc; cout<<"Upisi djeljenik "; cin>>a; cout<<"Upisi djelitelj "; cin>>b; kvoc=a/b; ostatak=a%b; cout<<a<<": "<<b<<"="<<kvoc <<" cijelih, a ostatak je "<<ostatak; return 0; }

Primjer 3. 9 � Potrebno je izračunati srednju vrijednost po volji izabrana četiri realna

Primjer 3. 9 � Potrebno je izračunati srednju vrijednost po volji izabrana četiri realna broja. � Ispis neka bude oblika: Unesi cetiri realna broja: Srednja vrijednost brojeva: . . . . , . . i. . je. . .

Primjer 3 10 #include<iostream> using namespace std; int main() { float a, b, c,

Primjer 3 10 #include<iostream> using namespace std; int main() { float a, b, c, d, srvr; cout<<"Unesi cetiri realna broja"<<endl; cin>>a>>b>>c>>d; srvr=(a+b+c+d)/4; cout<<endl<<"Srednja vrijednost brojeva: "; cout<<endl<<a<<", "<<b<<", "<<c<<" i "<<d <<" je "<<srvr<<endl; return 0; }

Unarni aritmetički operatori 11 simb ol funkcija -a unarni minus ++a a++ --a a--

Unarni aritmetički operatori 11 simb ol funkcija -a unarni minus ++a a++ --a a-- svrha Mijenja predznak broja. operator uvećanja za 1 inkrement Uvećava sadržaj varijable, a potom vraća promijenjenu vrijednost. operator umanjenja za 1 dekrement Umanjuje sadržaj varijable, a potom vraća promijenjenu vrijednost. Vraća postojeću vrijednost, a potom uvećava sadržaj varijable. Vraća postojeću vrijednost, a potom umanjuje sadržaj varijable.

Unarni operatori prije varijable 12 Ako je operator ispred varijable (npr. ++a) tada se

Unarni operatori prije varijable 12 Ako je operator ispred varijable (npr. ++a) tada se u izrazu računa s uvećanom/umanjenom vrijednošću varijable. U primjeru: a=1; b=++a +5; po izvršenju naredbi, sadržaj varijable b=7, a=2.

Unarni operatori poslije varijable 13 Ako je operator iza varijable (npr. a++) tada se

Unarni operatori poslije varijable 13 Ako je operator iza varijable (npr. a++) tada se vrijednost varijable uveća/umanji tek nakon izračunavanja izraza. U primjeru: a=1; b=a++ +5; po izvršenju naredbi, sadržaj varijable b=6, a=2.

Primjer 4. 14 � Potrebno je unijeti cijeli broj i pohraniti ga u varijablu

Primjer 4. 14 � Potrebno je unijeti cijeli broj i pohraniti ga u varijablu A. U varijablu X pohraniti vrijednost koja se dobije kada se na varijablu A primijeni unarni operator za uvećanje: a) nakon dobave iz memorije (A++), b) prije dobave iz memorije (++A). � Ispisati sadržaj varijabli X i A.

Primjer 4. a) 15 � Ispis neka bude oblika: Unesi broj za operaciju A++:

Primjer 4. a) 15 � Ispis neka bude oblika: Unesi broj za operaciju A++: Kad operacija zavrsi X=. . . Kad operacija zavrsi A=. . .

Primjer 4. a) 16 #include<iostream> using namespace std; int main() { int X, A;

Primjer 4. a) 16 #include<iostream> using namespace std; int main() { int X, A; cout<<"Unesi broj za operaciju A++: "; cin>>A; X=A++; cout<<"Kad operacija zavrsi X= "<<X<<endl; cout<<"Kad operacija zavrsi A= "<<A<<endl; return 0; }

Primjer 4. b) 17 � Ispis neka bude oblika: Unesi broj za operaciju ++A:

Primjer 4. b) 17 � Ispis neka bude oblika: Unesi broj za operaciju ++A: Kad operacija zavrsi X=. . . Kad operacija zavrsi A=. . .

Primjer 4. b) 18 #include<iostream> using namespace std; int main() { int X, A;

Primjer 4. b) 18 #include<iostream> using namespace std; int main() { int X, A; cout<<"Unesi broj za operaciju ++A: "; cin>>A; X=++A; cout<<"Kad operacija zavrsi X= "<<X<<endl; cout<<"Kad operacija zavrsi A= "<<A<<endl; return 0; }

Zadatak za vježbu 19 � Ispisati na ekranu godine starosti, ako se unesu: godina

Zadatak za vježbu 19 � Ispisati na ekranu godine starosti, ako se unesu: godina rođenja i aktualna godina. Upisi godinu svog rodjenja > Koja je godina sada? > Sada imas. . godina.

Rješenje 20 #include<iostream> using namespace std; int main() { int god, god 1, god

Rješenje 20 #include<iostream> using namespace std; int main() { int god, god 1, god 2; cout<<"Upisi godinu svog rodjenja > "; cin>>god 1; cout<<"Koja je godina sada? > "; cin>>god 2; god=god 2 -god 1; cout<<endl<<"Sada imas "<<god<<" godina. "; return 0; }

Operatori obnavljajućeg pridruživanja 21 Omogućavaju kraći zapis nekih aritmetičkih izraza. Sastoje se od znaka

Operatori obnavljajućeg pridruživanja 21 Omogućavaju kraći zapis nekih aritmetičkih izraza. Sastoje se od znaka jednakosti i odgovarajućeg aritmetičkog operatora. Npr. izraz: a=a+8, može se zapisati kao: a+=8.

22 Operatori obnavljajućeg pridruživanja Operator Izraz Ekvivalentan izraz += a+=5 a=a+5 -= a-=5 a=a-5

22 Operatori obnavljajućeg pridruživanja Operator Izraz Ekvivalentan izraz += a+=5 a=a+5 -= a-=5 a=a-5 *= a*=5 a=a*5 /= a/=5 a=a/5 %= a%=5 a=a%5

Zadatak za vježbu 23 � Potrebno je unijeti realni broj i pridružiti ga varijabli

Zadatak za vježbu 23 � Potrebno je unijeti realni broj i pridružiti ga varijabli A. � Sadržaj varijable A prvo uvećati za 5, potom umanjiti za 8 i na kraju pomnožiti s 3. Koristiti operatore obnavljajućeg pridruživanja i varijablu A, ne uvoditi pomoćne varijable. Izgled izlaznog Upisi zeljeni broj: Sadrzaj varijable A se uvecava za 5. Sada A iznosi: . . Od trenutnog sadrzaja varijable A se oduzima 8. Sada A iznosi: . . Trenutni sadrzaj varijable A se mnozi sa 3. Sada A iznosi: . . ekrana

Rješenje 24 #include<iostream> #include<conio. h> using namespace std; int main() { float A; cout<<"Upisi

Rješenje 24 #include<iostream> #include<conio. h> using namespace std; int main() { float A; cout<<"Upisi zeljeni broj: "; cin>>A; A+=5; cout<<"Sadrzaj varijable A se uvecava za 5. Sada A iznosi " <<A<<endl; A-=8; cout<<"Od trenutnog sadrzaja varijable A se oduzima 8. Sada A iznosi " <<A<<endl; A*=3; cout<<"Trenutni sadrzaj varijable A se mnozi sa 3. Sada A iznosi “ <<A<<endl; getch(); return 0; }

Logički podaci (tip podataka – bool) 25 Mogu poprimiti samo jednu od dvije vrijednosti

Logički podaci (tip podataka – bool) 25 Mogu poprimiti samo jednu od dvije vrijednosti (true/false, istina/laž, 1/0). Varijabla koja je pogodna za pohranu logičkog podatka je tipa bool. Takva varijabla može poprimiti vrijednosti true ili false (pri ispisu se true pretvara u 1, a false u 0).

Logički operatori 26 Za rad s logičkim podacima, postoje logičke funkcije. Logičke se funkcije

Logički operatori 26 Za rad s logičkim podacima, postoje logičke funkcije. Logičke se funkcije zapisuju logičkim operatorima. simbol funkcija negacija ! (unarni operator: 1 pretvara u 0 i obratno) && logički I - AND || logički ILI – OR (Alt Gr + W)

Primjer 5. 27 � � Potrebno je unijeti dva logička podatka A i B.

Primjer 5. 27 � � Potrebno je unijeti dva logička podatka A i B. Treba ispisati: negaciju od A, vrijednost (A I B) te (A ILI B). Ispis neka bude oblika: Vrijednost logickog podatka A= Vrijednost logickog podatka B= Ako je logicki podatak A=. . . tada je suprotno od A. . Za A=. . i B=. . (A I B) =. . Za A=. . i B=. . (A ILI B)=. . .

Primjer 5. 28 #include<iostream> using namespace std; int main() { bool a, b, c,

Primjer 5. 28 #include<iostream> using namespace std; int main() { bool a, b, c, d, e; cout<<"Vrijednost logickog podatka A="; cin>>a; cout<<"Vrijednost logickog podatka B="; cin>>b; c=!a; d=a&&b; e=a||b; cout<<endl<<"Ako je logicki podatak A="<<a <<" tada je suprotno od A="<<c<<endl; cout<<"Za A="<<a<<" i B="<<b<<" (A I B)= "<<d<<endl; cout<<"Za A="<<a<<" i B="<<b<<" (A ILI B)="<<e<<endl; return 0; }

Operatori usporedbe 29 Kada se dva podatka uspoređuju, rezultat je podatak tipa bool. int

Operatori usporedbe 29 Kada se dva podatka uspoređuju, rezultat je podatak tipa bool. int a, b; bool c; c = a > b; Uspoređuje se uporabom operatora usporedbe.

Operatori usporedbe 30 simbol funkcija < manje > veće <= manje ili jednako /

Operatori usporedbe 30 simbol funkcija < manje > veće <= manje ili jednako / veće ili jednako >= veće ili jednako == jednako != različito

Primjer 6. 31 � � Potrebno je unijeti dva cijela broja. Nakon toga, treba

Primjer 6. 31 � � Potrebno je unijeti dva cijela broja. Nakon toga, treba ih usporediti pa ispisati rezultate usporedbi. Ispis neka bude oblika: Vrijednost prvog broja = Vrijednost drugog broja = Je li. . <. . odgovor: . . Je li. . >. . odgovor: . . Je li. . ==. . odgovor: . . Je li. . !=. . odgovor: . .

Primjer 6. 32 #include<iostream> #include<conio. h> using namespace std; int main() { int a,

Primjer 6. 32 #include<iostream> #include<conio. h> using namespace std; int main() { int a, b; bool c, d, e, f; cout<<"Vrijednost prvog broja="; cin>>a; cout<<"Vrijednost drugog broja="; cin>>b; c=a<b; d=a>b; e=a==b; f=a!=b; cout<<endl<<"Je li "<<a<<"<"<<b<<" odgovor: "<<c<<endl; cout<<endl<<"Je li "<<a<<">"<<b<<" odgovor: "<<d<<endl; cout<<endl<<"Je li "<<a<<"=="<<b<<" odgovor: "<<e<<endl; cout<<endl<<"Je li "<<a<<"!="<<b<<" odgovor: "<<f<<endl; getch(); return 0; }

 33 Ili kao u Primjeru 1. i ovdje je moguće algoritam zapisati i

33 Ili kao u Primjeru 1. i ovdje je moguće algoritam zapisati i korištenjem samo dvije varijable. #include<iostream> using namespace std; int main() { int a, b; cout<<"Vrijednost prvog broja="; cin>>a; cout<<"Vrijednost drugog broja="; cin>>b; cout<<endl<<"Je li "<<a<<"<"<<b<<" odgovor: "<<(a<b)<<endl; cout<<endl<<"Je li "<<a<<">"<<b<<" odgovor: "<<(a>b)<<endl; cout<<endl<<"Je li "<<a<<"=="<<b<<" odgovor: "<<(a==b)<<endl; cout<<endl<<"Je li "<<a<<"!="<<b<<" odgovor: "<<(a!=b)<<endl; return 0; } Napomena: Ako se koriste samo dvije varijable, svaki se izraz usporedbe, npr. a<b treba zapisati unutar zagrada (a<b). U protivnom ispisat će se pogreška.

Primjer 6. 34 Provjera programa s podacima za koje je unaprijed poznat krajnji rezultat.

Primjer 6. 34 Provjera programa s podacima za koje je unaprijed poznat krajnji rezultat. false (neistina) true (istina)

String 35 Za lakše baratanje znakovnim nizovima promjenjive duljine u standardnoj je biblioteci jezika

String 35 Za lakše baratanje znakovnim nizovima promjenjive duljine u standardnoj je biblioteci jezika C++ definiran tip podataka string. Tip podataka string “brine” o prostoru kojeg treba predvidjeti u memoriji, te podržava funkcije vezane uz znakovne nizove.

String 36 Za rad s podacima tipa string, potrebno je uključiti biblioteku string (sadrži

String 36 Za rad s podacima tipa string, potrebno je uključiti biblioteku string (sadrži niz funkcija za rukovanje sa znakovnim nizovima). Primjer deklariranja podatka tipa string: string a;

Zadatak za vježbu 37 � Dopuniti Zadatak za vježbu sa str. 19 tako da

Zadatak za vježbu 37 � Dopuniti Zadatak za vježbu sa str. 19 tako da se unosi i ime korisnika programa. � Ispis neka bude oblika: Upisi svoje ime > Upisi godinu rodjenja > Koja je godina sada? >. . . ima. . godina.

Rješenje 38 #include<iostream> #include<string> using namespace std; int main() { int god, god 1,

Rješenje 38 #include<iostream> #include<string> using namespace std; int main() { int god, god 1, god 2; string ime; cout<<"Upisi svoje ime: "; cin>>ime; cout<<endl<<"Upisi godinu svog rodjenja: "; cin>>god 1; cout<<endl<<"Koja je godina sada? "; cin>>god 2; god=god 2 -god 1; cout<<endl<<ime<<" ima"<<god<<"godina. "<<endl; return 0; }

Osnovne matematičke funkcije 39 C++ raspolaže sa nizom ugrađenih matematičkih funkcija. Ovdje su navedene

Osnovne matematičke funkcije 39 C++ raspolaže sa nizom ugrađenih matematičkih funkcija. Ovdje su navedene samo neke koje ćemo koristiti u našom primjerima. Da bi se koristilr potrebno je uključiti biblioteku cmath. … #include<cmath> …

Osnovne matematičke funkcije 40 funkcija opis primjer primjene sqrt() kvadratni korijen sqrt(4) Rezultat: 2

Osnovne matematičke funkcije 40 funkcija opis primjer primjene sqrt() kvadratni korijen sqrt(4) Rezultat: 2 pow() funkcija stupnjevanja pow(2, 4) Rezultat: 16 abs() apsolutna vrijednost abs(-5) Rezultat: 5 ceil() zaokruživanje na najbliži veći ceil(2. 34) cijeli broj Rezultat: 3 floor() zaokruživanje na najbliži manji cijeli broj floor(2. 34) Rezultat: 2 round() zaokruživanje round(2. 34 ) Rezultat: 2 trunc() odsijecanje decimalnog dijela broja trunc(2. 34) Rezultat: 2

Primjer 7. 41 Ilustriranje primjene matematičkih funkcija za zaokruživanje. #include<iostream> #include<cmath> using namespace std;

Primjer 7. 41 Ilustriranje primjene matematičkih funkcija za zaokruživanje. #include<iostream> #include<cmath> using namespace std; int main() { float a; cout<<"Unesi jedan realan broj "; cin>>a; cout<<"trunc(a)="<<trunc(a)<<endl<<"ceil(a)=“ <<ceil(a)<<endl<<"floor(a)="<<floor(a)<<endl <<"round(a)="<<round(a); return 0; }

Zadatak za vježbu 42 Unijeti koordinate točaka A i B, pa izračunati njihovu udaljenost

Zadatak za vježbu 42 Unijeti koordinate točaka A i B, pa izračunati njihovu udaljenost u koordinatnom sustavu. Ispis neka bude oblika: Koordinate točke A(x 1, y 1) X 1=… Y 1=… Koordinate točke B(x 2, y 2) X 2=… Y 2=… Udaljenost točaka A(…, …) i B(…, …)=…

Rješenje 43 #include<iostream> #include<conio. h> #include<cmath> using namespace std; int main() { float x

Rješenje 43 #include<iostream> #include<conio. h> #include<cmath> using namespace std; int main() { float x 1, y 1, x 2, y 2, pom, d; cout<<"Koordinate tocke A(x 1, y 1): "<<endl; cout<<"x 1= "; cin>>x 1; cout<<"y 1= "; cin>>y 1; cout<<"Koordinate tocke B(x 2, y 2): "<<endl; cout<<"x 2= "; cin>>x 2; cout<<"y 2= "; cin>>y 2; pom=pow((x 2 -x 1), 2)+pow((y 2 -y 1), 2); d=sqrt(pom); cout<<endl<<"Udaljenost tocaka A("<<x 1<<", "<<y 1<<") i B("<<x 2<<", "<<y 2<<") = "<<d; getch(); return 0; }