You are on page 1of 10

C++ : materijal za kolokvij

INT MAIN-u prvom redku se uvijek pise jer je to glavna funkcija c++-a,i izvodjenje svakog programa pocinje naradbama koje se nalaze u njoj. Medjutim treba znati da je to samo simbolicko ime koje daje do znanja prevoditelju koji se dio programa prvo treba prevoditi-ono nema nikve veze s imenom izvedbenog programa,jer ime programa uvijek odredjuje programer. Rijec INT ispred odznake glavne funkcije ukazuje na to da ce MAIN() po zavrsetku izvodjenja nardbi i funkcija sadrzanih u njoj kao rezultat tog izvodjenja vratiti cijeli broj.Iza rijeci MAIN slijedi otvorena zagrada () te unutar te zagrade trebali bi doci opisi podataka koji se iz operacionog sustava prenosi u MAIN,a to argumenti ili parametri funkcije. INCLUDE naredba koja od prevoditelja zahtjeva da se u program ukljuci zeljena biblioteka podataka. Treba naglasiti da #include nije naradeba c++ jezika vec je predprocesorska naredba. Naletjevsi na nju prevoditelj ce prekinuti postupak prevodjenja koda u tekucoj datoteci,skociti u datoteku iostream, prevesti ju, a potom se vratiti u pocetnu datoteku na redak iza naredbe include. Sve predprocesorske naredbe pocinju sa #. IOSTREAM-biblioteka u kojoj se nalazi izlazni tok i funkcije koje omogucuju ispis podataka u zaslonu. Ta biblioteka je neophodna da bi smo u prvom redku glavnog programa ispisali text poruke. To je primjer datoteke zaglavlja te u tim datotekama se nalaze dekleracije funkcija sadrzane odgovarajucim datotekama. USING NAMESPACE STD-using i namespace su kljucne rijeci jezika c++ kojima se aktivira odredjeno podrucje imena,a std je naziv imena u kojem su obuhvacene sve standardne funkcije,ukljucujuci i funkcije iz iostream biblioteke. Imenice su se prilicno kasno pojavile u jeziku c++, a uvedene su da se izbjegne kolizija istih imena funkcija ili varijabli iz razlicitih biblioteka. COUT-je naredba koja se nalazi unutar glavne funkcije,to je ime izlaznog toka definiranog u biblioteci iostream, pridruzenog zaslonu racunara. Operatorom << ( dva znaka ''manje od'' ) podatak koji slijedi upucuje se na izlazni tok,tj. na zaslon racunara. Tekst se pise unutar znakova navodnika te upucuje na to da ce se tekst ispisati doslovice. Medjutim, iza znakovnog niza ponavlja se operator za ispis, endl. ENDL je konstanta u biblioteci iostream koja prebacuje ispis u novi redak. CIN- je naredba koja sluzi za unosenje trazene vrijednosti. Kada program dodje do te naredbe on stane, ceka da korisnik unese vrijednost, zatim pritisne enter i program nastavlja sa radom sa unosenom vrijednoscu. Ova naredba se pise tako sto se poslije cin napise dvostruko vece (>>) i nakon toga oznaka za varijablu nakon koje se pise tacka-zarez. IDENTIFIKATOR- to su prozvoljna imena koja dodjeljujemo varijablama i funkcijama i one imaju 3 pravila: 1)identifikator moze biti sastavljen od kombinacija slova eng alfabeta,brojeva od 0 do 9,i znaka za podcrtavanje . 2)prvi znak mora biti slovo ili znak za podcrtavanje. 3)identifikator ne smije biti jednak nekoj kljucnoj rijeci ili nekoj od alternativnih oznaka operatora.isto tako treba izbjegavati da naziv identifikatora sadrzi dvostruke znakove podcrtavanja ili zapocinje znakom podcrtavanja i velikim slovom jer su takve oznake rezervisane za c++ implementacije i standardne bilioteke. KLJUCNE RIJECI C++ JEZIKA: asm, auto, bool, break, case, catch, char, class, const, const_cast, continue, default, delete, do, double, dynamic_cast, else, enum, exlicit, export, extern, false, float, for, friend, goto, if, inline, int, long, mutable, namespace, new, operator, private, protected, public, 1

register, reinterpret_cast, return, short, signed, sizeof, static_cast, struct, switch, template, this, throw, true, try, typedef, typeid, typename, union, unsigned, using, virtual, void, volatile, wchar_t, while. ALTERNATIVNE OZNAKE OPERATORA: and, and_eq, bitand, bitor, compl, not, not_eq, or, or_eq, xor, xor_eq. ARITMETICKI OPERATORI-strana 44 skripta. STATIC_CAST- opci oblik je static_cast<tip>(izraz), gdje se unutar znakova < i > navodi tip u koji zelimo pretvoriti izraz unuutar zagrada koje slijede. Njegovom upotrebom programer onemogucava striktnu provjeru podataka koju provodi prevoditelj, ali postoje slucajevi kada se on nemoze izbjeci: 1. Kada pokazivac tipa VOID moramo usmjeriti na pokazivac zadanog tipa. 2. Kada zelimo izbjeci standardne pretvorbe. 3. Kada nije jednoznacno odredjeno u koji ce se tip odredjeni objekt pretvoriti jer postoji mogucnost vise pretvorbi. On se koristi za promjenu tipa varijable tj. kada zelimo podjeliti dvije cijelobrojne variable, a pritom ne izgubimo decimalna mjesta. VOLATILE-opci oblik je tip ime_promjenjivice. Time se prevoditelju daje na znanje da se vrijednost varijable moze promjeniti nedokucivim nacinima te da zbog toga mora iskljuciti sve optimizacije koda prilikom pristupa. ENUM (pobrojni tip)-ponekad su varijable u programu elementi pojmovni skupova tako da je takvim skupovima i njihovim elementima zgodno pridjeliti lako pamtljiva imena. Prvom identifikatoru prevoditelj pridjeljuje vrijednost 0, osim u slucaju kada mu mi explicitno ne pridjelimo drugu vrijednost. LOGICKI OPERATORI: ?x=logicka negacija, x&&y=logicki I, x||y=logicki ILI. POREDBENI OPERATORI: x<y manje od, x<=y manje ili jednako, x>y vece od, x>=y vece ili jednako, x==y jednako, x!=y razlicito; koriste se pretezno u naredbama za granjanje toka programa gdje se ovisno o tome je li uslov zadovoljen i izvodjenje programa nastavlja u razlicitim smjerovima. POSEBNI ZNAKOVI-strana 61 skripta CHAR-je tip podataka duljine jednog bajta (8 bitova) to znaci da moze prikazati 28, tj. 256 znakova. BITOVNI OPERATORI-strana 63 skripta TYPEDEF-sluzi za promjenu tipova. Cesto se koristi prilikom dekleracija pokazivaca i referenci na objekte, pokazivaca na funkcije i kod deklaracija polja. SIZEOF-je unarni operator koji kao rezultat daje broj bajtova sto ih operant zauzima u memoriju racunara. HIRARHIJA OPERATORA-strana 77 skripta IF-omogucava uvijetno grananje toka programa ovisno o tome da li je ili nije zadovoljen uvjet naveden iza kljucne rijeci if. Najednostavniji oblik je if(logicki_izraz)//blok_naredbi. Ako je vrijednost iza rijeci if logicka istina izvodi se blok naredbi koje slijede iza izraza,u protivnom se taj blok preskace i

izvodjenje nastavlja od prve naredbe bloka. Po potrebi koristimo else i else if. Blokovi if se mogu staviti jedan u drugi. SWITCH-se koristi kada izraz uvjeta daje vise razlicitih cijelibrojnih rezultata, a za svaki od njih treba provesti razlicite odsjecke programa i tada je preglednije u odnosu na if. Kod tog granjanja se obicno izracuna neki izraz koji daje cijelobrojni rezultat. Ovisno o tom rezultatu,tok programa se preusmjerva na neku od grana unutar switch bloka naredbi. BREAK- se nalazi uvijek kod switch naredbina kraju svakoga sluaja, tj. sa njim je zakljucen svaki case. On je neophodan jer blok naredbi do naredbe break ce se izvrsavati,a kada na njega naidje izvodi se za ostale slucajeve (oznacava kraj slucaja). DEFAULT- moze biti smjesten unutar switch bloka, ali ga je preporucljivo staviti na kraj. Smije se izostaviti ali ga je zgodno imati da bi kroz njega program prosao za vrijednosti koje nisu obuhvacene case blokovima. FOR PETLJA-se koristi u programima u kojima treba ponavljati dijelove koda, kod kojih nam je poznat broj ponavljanja prije ulaska u petlju. Opceniti oblik je for(pocetni_izraz;uvjet izvodjenja;izraz prirasta). 1)pocetni izraz je pocetna vrijednost kojom ce brojac kontrolirati ponavljanje petlje. 2)uvjet izvodjenja, izraz ciji rezultat mora biti tipa bool. Ako je rezultat jednak logickoj neistini preskace se blok naredbi i program nastavlja sa naredbom iza bloka, a ako je jednak logickoj istini, izvrsava se blok naredbi. 3)izraz prirasta oznacava povecanje brojaca petlje. Ukoliko se izostavi uvjet izvodjenja podrazumijeva se da ce petlja biti beskonacna. WHILE PETLJA- se koristi za ponavljanje segmenta koda kod kojeg broj ponavljanja nije unaprijed poznat, sintaksa je: (uvjet izvodjenja)//blok naredbi. Ako je zadovoljen uvjet izvodjenja on se izracunava i izvodi se blok naredbi, a ako nije program se nastavlja od prve naredbe iza bloka. DO WHILE PETLJA-ima gotovo istu primjenu kao while ,jedino kod njega se prvo izvede neka operacija, te ovisno o njenom rezultatu se ispunjava ili ne ispunjava neki uvjet. Opci oblik je: do//blok_naredbi while (uvjet_ponavljanja); while uvjet ponavljanja mora biti zakljucen znakom tacka-zarez, za razliku od naredbe while koju je neposredno slijedio blok naredbi. BREAK-se u petljama koristi onda kada zelimo se izvodjenje naseg programa za ispis prekine upravo onda kada se ucita odredjeni uslov, npr. neki broj. CONTINUE-takodjer uzrokuje skok programa na kraj petlje, ali se potom njeno ponavljanje nastavlja. Znaci, preskacu se sve naredbe do kraja petlje ali se ponavljanje petlje dalje nastavlja kao da nista nije ni bilo. GOTO-omogucava bezuvjetni skok na neku drugu naredbu unutar iste funckije. Opci oblik je goto ime_oznake.

Primjeri zadataka :

1)

Program koji za uneenu cjelobrojnu vrijednost ispituje da je ta vrijednost djeljiva sa sumom svojim cifara.

#include<iostream> using namespace std; int main(){ int temp,broj,zbir=0; cout<<"unesi broj"<<endl; cin>>broj; temp=broj; while (temp>0){ zbir=zbir+(temp%10); temp=temp/10;} if(broj%zbir+(temp%10)==0){ cout<<"djeljivo je"<<endl;} else{ cout<<"nije djeljivo"<<endl;} system("pause"); return 1;}

2)

Program koji sabira sve parne brojeve u ontervalu od m do n.

#include<iostream> using namespace std; int main(){ int i,m,n,suma=0; cout<<"unesi m n"<<endl; cin>>m>>n; for(i=m;i<n;i++){ if(i%2==0) suma=suma+i;} cout<<"suma je "<<suma<<endl; system ("pause"); return 0; }

3)

Program koji za neki uneseni broj ispisuje taj broj obrnuto.

#include<iostream> using namespace std; int main() { int broj,temp,obr=0; cout<<"unesi broj"<<endl; 4

cin>>broj; temp=broj; while(temp>0) { obr=obr*10+(temp%10); temp=temp/10;} cout<<"obr"<<obr<<endl; system("pause"); return 0; }

4)

Program koji za neki uneseni broj ispisuje taj broj obnuto, a zatim taj broj i njegov obrnuti broj sabere, i to sve ispise na ekranu.

#include<iostream> using namespace std; int main() { int broj,temp,obr=0; cout<<"unesi broj"<<endl; cin>>broj; temp=broj; while(temp>0) { obr=obr*10+(temp%10); temp=temp/10;} cout<<"obr"<<obr<<endl; cout<<"suma je"<<obr+broj<<endl; system("pause"); return 0; }

5)

Program koji ispisuje sumu svih brojeva u intervalu od m do n, ali da su ti brojevi djeljivi sa 3 i 7.

#include<iostream> using namespace std; int main(){ int i,m,n,suma=0; cout<<"unesi m n"<<endl; cin>>m>>n; for(i=m;i<n;i++){ if((i%3==0)&&(i%7==0)) suma=suma+i;} cout<<"suma je "<<suma<<endl; system ("pause"); return 0; }

6)

Program koji rauna zadani izraz:

. 5

#include<iostream> using namespace std; int main(){ float x,y,z,izraz; cout<<"unesi x,y,z"<<endl; cin>>x>>y>>z; izraz=((((x*x)+y*2-z)/(y*y))-(((y*y)+5)/5)); cout<<"izraz je"<<izraz<<endl; system("pause"); return 0; }

7)

Program koji za dva unesena broja racuna im zbir, proizvod, razliku, kolicnik, kub prvog i korijen drugog.

#include<iostream> #include<math.h> using namespace std; int main(){ int a,b,s,r,p,kub; float kor,k; cout<<"unesi a b"<<endl; cin>>a>>b; s=a+b; p=a*b; k=a/b; r=a-b; kub=pow(a,3); kor=sqrt(b); cout<<"zbir proizvod razlika kolicnik je"<<s<<endl<<p<<endl<<r<<endl<<k<<endl; cout<<"kub korijen je"<<kub<<endl<<kor<<endl; system("pause"); return 0; }

8)

Program koji za uneseni broj sekundi racuna koliko je to dana, sati i minuta i ispisuje to na ekranu.

#include<iostream> #include<math.h> using namespace std; int main(){ int s,dan,sat,min; cout<<"unesi broj sekundi"; cin>>s; min=s/60; sat=min/60; dan=sat/24; cout<<"sati minuta i dana ima"<<min<<endl<<sat<<endl<<dan<<endl; system("pause"); 6

return 0; }

9)

Program koji za unesen broj provjerava da li je on pravi parni, tj. da li su mu sve cifre djeljive sa 2.

#include<iostream> using namespace std; int main(){ int a,temp; bool provjera=true; cout<<"unesi broj"<<endl; cin>>a; temp=a; while(temp>0) {if((temp%10)%2==1) provjera=false; temp=temp/10;} if(provjera) cout<<"pravi je"<<endl; else cout<<"nije"<<endl; system("pause"); return 1; }

10)

Ptogram koji za unesene 3 stranice prvo provjerava da li je to trougao i ako jeste ispituje o kojem je trouglu rijec, te sve to fino ispise na ekranu.

#include<iostream> #include<math.h> using namespace std; int main(){ int a,b,c; cout<<"unesi stranice trougla"<<endl; cin>>a>>b>>c; if((a+b)>c){ if((a==b)&&(a!=c)) cout<<"jednakokraki"<<endl; else if((a==b)&&(a==c)) cout<<"jednakostranicni"<<endl; else cout<<"raznostanicni"<<endl;} else cout<<"nije trougao"<<endl; system("pause"); return 1; }

11)

Program koji za unesene vrijednosti kvadratne jednacine ispitiva kakva su rjesenja te jednacine.

#include<iostream> using namespace std; int main () { int a,b,c,d; cout<<"unesi a, b i c: "<<endl; cin>>a>>b>>c; d=b*b-4*a*c; if(d>0) cout<<"rezultat je realan i razlicit."<<endl; else if(d<0) cout<<"rezultat he imaginaran."<<endl; else cout<<"rjesenja su realna i jednaka"<<endl; system("pause"); return 1; }

12)

Program koji za dvije unesene vrijednosti ispisuje zbir, razliku i kolicnik tih vrijednosti.

#include<iostream> using namespace std; int main(){ double a,b,z,r,k; cout<<"unesi a b"<<endl; cin>>a>>b; z=a+b; r=a-b; k=a/b; cout<<"rijesenja su"<<z<<endl<<r<<endl<<k<<endl; system("pause"); return 0; }

13)

Program koji ce nam na ekranu n puta ispisati tacku.

#include<iostream> using namespace std; int main(){ int a,i; cout<<"unesi a"<<endl; cin>>a; for(i=1;i<=a;i++) cout<<"."; system("pause"); return 0; }

14)

Program koji ce sabrati dva vektora i ispisati njihov rezultujuci vektor.

#include<iostream> using namespace std; int main(){ int j,k,i,a,b,c,d,e,f; cout<<"unesi komponente prvog"<<endl; cin>>i>>j>>k; cout<<"unesi komponente drugog"<<endl; cin>>a>>b>>c; d=a+i; e=j+b; f=k+c; cout<<"zbir je"<<d<<"I "<<e<<"J "<<f<<"K "<<endl; system("pause"); return 0; }

15)

Program koji ce ispisati sve trocifrene brojeve kod kojih je zadnja cifra 2 puta veca od prve cifre, i na kraju ce sabrati sve takve cifre.

#include<iostream> using namespace std; int main(){ int i,suma=0; for(i=100;i<=999;i++) {if((i%10)==(i/100)*2) cout<<i<<endl; suma=suma+i;} cout<<"suma je"<<suma<<endl; system("pause"); #include<iostream> using namespace std; int main(){ int r1,r2,z; cout<<"unesi otpornike"<<endl; cin>>r1>>r2; z=(r1*r2)/(r1+r2); cout<<"otpor je"<<z<<endl; system("pause"); return 0; }

16)

Program koji ce za tri unesene vrijednosti te vrijednosti ispisati po redu, pocevsi od najvece.

#include<iostream> using namespace std; int main(){ int a,c,b; cout<<"unesi a b c"<<endl; cin>>a>>b>>c; if((a>b)&&(b>c)&&(c<a)) cout<<a<<b<<c<<endl; else if((b>a)&&(b>c)&&(a>c)) cout<<b<<a<<c<<endl; else if((a>b)&&(b<c)&&(a>c)) cout<<a<<c<<b<<endl; else if((b>a)&&(b<c)&&(a<c)) cout<<c<<b<<a<<endl; else if((b>a)&&(b>c)&&(c>a)) cout<<b<<c<<a; else cout<<c<<a<<b<<endl; system("pause"); return 0; }

10

You might also like