You are on page 1of 228

Zadaci:Dev C++

PROGRAMIRANJE za POČETNIKE

Sretno sa programiranjem,
Primjer 1:
Tradicionalni program svih programera početnika je vrlo jednostavan. Naime radi se o
tome da na monitoru ispiše jedna poruka «Hello world»(ili nešto na tu temu). Ali na ovom
primjeru se vrlo dobro može naučiti kako se iz programa komunicira sa izlaznim uređajima. U
našem slučaju radi se o monitoru. Program se neće naknadno pojašnjavati jer jer je uredno
izkomentarisan. (Komentari u programu su linije koje se ne izvršavaju, nisu instrukcije, već
služe za pojašnjenje programa.).
RJEŠENJE:
/* Prvi program u C++*/

#include <iostream> using

namespace std;

/*Predprocesorka direktiva koja se izvrsava prije samog kompajliranja*/

int main() /*Funkcijom main() pocinje svaki program u C++*/


{

/*Sa viticastom zagradom pocinje izvrsni dio u kodu*/ cout << "Moj

prvi program u C++"<<endl; cout <<

"*********************"«endl'
/*Naredbom cout znakom redirekcije << se postize komunikacija sa monitorom tj.
omogucava nam slanje poruka na ekran, primjetite da se parametar <<endl koji kompajleru
kaze da nakon poruke automatski predje u novi red*/

return 0;

}
EKRAN:

Moj prvi program u C++

Primjer 2:
Jednostavan program koji već ima unaprijed definisane brojne vrijednosti u obliku
varijabli
i nad njima vrši jednostavne operacije množenja i sabiranja.
RJEŠENJE:

/* Program koji vec ima definisane vrijednosti varijabli i vrsi jednostavne operacije
sabiranja i mnozenja*/

#include <iostream>

using namespace std;

int main()
{

int x=5; int y=9;

cout << "Program *Zbir i proizvod*"; cout <<endl;

cout << "Zbir je... "<< x+y <<endl; cout<<"Proizvodje...

"<< x * y<<endl; return 0;


}

EKRAN:

Program *Zbir i proizvod*

Zbir je... 14 Proizvod je... 45 Primjer 3:


Program koji od korisnika traži da se unesu dva cijela broja i nad njima se vrše osnovne
matematičke operacije.

RJEŠENJE:

/*Program koji vrsi jednostavne matematicke operacije*/

#include <iostream>

using namespace std;

int main()
{ int a, b, c, d, e;

/*Deklarisanje varijabli*/

cout << "Program *Osnovne računske operacije*"«endl; cout << "

Unesite dva cijela broja: "«endl; cin > > a; cin >> b;

/*Naredba koja ucitava vrijednosti koje su unesene od strane korisnika*/

c=(a*b);

/*Racunska operacija, ali izvrsena u memoriji racunara, jos uvijek nije

vidljiva na monitoru*/

cout << "Proizvodje... " << c<<endl;

/*Ispis varijable c na monitor*/ d=(a+b);

cout << "Zbirje... " << d<<endl; e=(a-b);

cout << "Razlika je... " << e<<endl; cout << "Kraj..."«endl; return 0;
}

EKRAN:

Program *Osnovne racunske operacije*

Unesite dva cijela broja:

12

Proizvod je... 36 Zbir je... 15 Razlika je... 9 Kraj...

Primjer 4:
Napisati program koji na osnovu unosa poluprečnika „r“ od strane korisnika računa
Obim(obujam) i Površinu (oplošje) kruga.

RJEŠENJE:

/* Program za računanje Obima i Povrsine kruga*/

/* Formula za Obim kruga je O=2*r*PI*/

/* Formula za Povrsinu je P=r2*PI*/

#include <iostream>

3
using namespace std;

int main()
{

float Poluprecnik, Obim, Povrsina; // Dvije varijable realnog tipa constfloat

Pi=3.14; //Deklarisanje konstante PI cou<<" Program povrsina i obim kruga"«

endl; cou<<" Unesite poluprecnik kruga r = :"<<endl; cin>>Poluprecnik;

//Očitavanje unesene vrijednosti Obim=2*Poluprecnik*Pi; //Izračunavanje obima

Povrsina=Poluprecnik *Poluprecnik *Pi; cou<<"Obim kruga je... "«Obim«endl;

//Ispis rezultata cou<< "Povrsina kruga je... "< <Povrsina< < endl; cout <<

"Kraj..."<<endl;
return 0;
Program *povrsina i obim kruga*
EKRAN:
Unesite poluprecnik kruga r = :

Obim kruga je... 6.28 Povrsina kruga je...3.14 Kraj...

Primjer 5:
Napisati program koji ispisuje DRUGI korijen upisanog broja.

RJEŠENJE:

#include < iostream >

#include<cmath>

using namespace std;

int main ()
{

int x;

cou<< " Upisi broj :"<<endl;

cout<<"x = ";

cin>>x;

cou<<"Drugi korijen je : "<<sqrt(x)<<endl; getchar ();

return 0;
}
EKRAN:
Upisi broj : x = 345
Drugi korijen je : 18.5742 Primjer 6:
Napisati program dijelenje(količnik) dva broja.

RJEŠENJE:
#include < iostream >
#include<cmath> using namespace std; int main ()
{
float x,y;
cou<< “Dijeljenje dva broja“<<endl; cou<< “ Upisi
prvi broj :“<<endl; cou<< “x = „ ; cin>>x;
cout<< “ Upisi drugi broj : “<<endl; cout<< “y = „ ;
cin>>y; float a=x/y;

cout<< “Kolicnik je „ <<a<<endl; cout <<

”Kraj...”<<endl;

return 0;}

EKRAN:

Dijeljenje dva

broja Upisi prvi broj

: x = 123

Upisi drugi broj:

Y = 15

Kolicnik je ... 8.2 Kraj...

Primjer 7:
Program koji računa zapreminu(volumen) i površinu(oplošje) valjka-cilindra ,ako je poznata
visina „H“ i poluprecnik baze „r“.
RJEŠENJE:

/* Program za računanje Zapremine i površine Valjka*/ /* Formula za Zapreminu je


V=r2*Pi*H*/

/*Formula za površinu je P=(2*B)+M*/

/*Povrsina baze je B=r2*Pi*/

/*Oplosje omotača je M=2*r*Pi*H*/

#include <iostream>
#include <cmath> using namespace std;

int main()
{

float r, Visina, Zapremina,B,M,P; const

float Pi=3.14;

cout<< "Program *Zapremina ipovrsina valjka*"« endl;

cout<< " Unesite poluprecnik osnove valjka r = "; cin>>r;

cout<< "Unesite visinu cilindra H = "; cin>>Visina;

B=r*r*Pi;

Zapremina=B *Visina;

M=2*r *Pi *Visina;

P=(2*B)+M;

cout<<"Zapreminaje V = "<<Zapremina<<endl; cout«

"Povrsina je P = "<<P<<endl; cout << "Kraj..."<<endl;

return 0;

}
EKRAN:

Program *Zapremina i površina valjka*

Unesite poluprecnik osnove valjka r =

1 Unasite visinu cilindra H = 3

Zapremina je V = 9.42 Povrsina je P =

25.12 Kraj...

PRIMJER 8:

Napisati program koji računa zbir, razliku, umnožak i kvocijent dva realna broja. RJEŠENJE:

#include < iostream

> using namespace

std; int main()


{

float a,b;

cout<<"Unesiprvi 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;

}
EKRAN:

Unesi prvi broj :

Unasi drugi broj :

5+7=12 5-7=-2

5*7=35

5/7=0.714286

PRIMJER 9:
Napisati program koji će izračunati cjelobrojni kvocijent i ostatak dijeljenja dva cijela broja.

RJEŠENJE:

#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<<endl;
return 0;

EKRAN:

Upisi djeljenik: 34 Upisi djelitelj: 7 34:7=4 cijelih, a ostatak je 6 PRIMJER 10:

Napisati program koji će izračunati srednju vrijednost po volji izabrana četiri realna broja.

RJEŠENJE: include <

iostream > using

namespace std; int

main() {

float a,b,c,d,srvr;

cout<< "Unesi cetiri realna broja,"<<endl;

cout<< "odvoji ih prazninama."« endl;

cin>>a>>b>>c>>d; srvr=(a+b+c+d)/4;

cout<<endl<< "Srednja vrijednost brojeva: "<<endl; cout<<a<<",

"<<b<<", "<<c<<" i "<<d<<" je " <<srvr<<endl; return 0;


}

EKRAN:

Unesi cetiri realna broja,

Odvoji ih prazninama.
2345
Srednja vrijednost brojeva:

2, 3, 4 i 5 je 3.5 PRIMJER

11:

Potrebno je unijeti cijeli broj, a zatim mu unarnim operatorom promijeniti predznak

RJEŠENJE:

#include < iostream

> using namespace

std; int main()


{

int a;

cout<<"Unesi broj:"; cin>>a;

cout<<endl<<"Kada se broju "<<a

<<" promijeni predznak, on postaje "<<-a<<endl;

return 0;
}

EKRAN:

Unesi broj:12

Kada se broju 12 promijeni predznak,on postaje -12 PRIMJER 12:


Potrebno je unijeti cijeli broj i pohraniti ga u varijablu A, a zatim na taj broj primijeniti unarni
operator za uvećavanje nakon dobave iz memorije (A++).

RJEŠENJE:
#include <iostream> #include <conio.h>
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; getch(); return 0;


}

EKRAN:

Unesi broj za operaciju A++:34

Kad operacija zavrsi X= 34

Kad operacija zavrsi A= 35

PRIMJER 13:
Potrebno je unijeti cijeli broj i pohraniti ga u varijablu A, a zatim na taj broj primijeniti unarni
operator za uvećavanje prije dobave iz memorije (++A).

RJEŠENJE:

#include <iostream>

#include <conio.h>

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; getch(); return 0;


}

EKRAN:

Unesi broj za operaciju ++ A: 34 Kad operacija zavrsi X= 35 Kad operacija zavrsi

A= 35 Primjer 14:
Program koji računa zapreminu(volumen) i površinu(oplošje) pravilne četverostrane piramide
,ako je poznata visina „H“ i stranica baze „a“.

RJEŠENJE:

/* Program za racunanje Zapremine i povrsine Pravilnecetverostrane piramide */

/* Formula za Zapreminu je V=B*H/3 */

/*Formula za povrsinu je P=B+M*/

/*Povrsina baze je B=a2 */

/*Oplosje omotacajeM=4*(a*h/2)*/

/*Visina stranice piramide h =sqrt((H*H) + ((a/2)*(a/2))) */ int main()


{

float a, Visina,h,Zapremina,B,M,P;
cout<<"Program *Zapremina ipovrsinapiramide*"<<endl;
cout<<" Unesite stranicu osnove(baze) piramide a = ";

cin>>a;

cout<< "Unesite visinu piramide H = "; cin>>Visina;

B=a*a;

Zapremina=B *Visina/3; h=sqrt((Visina*Visina) +

((a/2)*(a/2)));

M=2*a*h;

P=B+M;

cout<<"Zapreminaje V = "<<Zapremina<<endl;

cout<<"Povrsinaje P = "<<P<<endl; cout << "Kraj..."<<endl;

return 0;
}

EKRAN:

Program *Zapremina i povrsina piramide*

Unesite stranicu osnove(baze) piramide a = 6 Unasite visinu

piramide H = 4 Zapremina je V = 48 Povrsina je P = 96 Kraj...

Primjer 15:
Napisati program koji će od korisnika tražiti da unese podatak o godini rođenja, a na izlazu
daje ukupno proživljenih godina plus mjeseci.
RJEŠENJE:

/* Program koji racuna koliko imate godina i mjeseci zivota*/ #include < iostream >
using namespace std;
int main()

int GodRodjenja, Starost, Mjeseci; int TrenutnaGodina; int Mjesec=12;

cout<<"\nKoje ste godine rodjeni? "<<endl; cin> > GodRodjenja;

cout<<"\nKoja je trenutna godina? "«endl; cin> > TrenutnaGodina;

Starost=TrenutnaGodina-GodRodjenja;

Mjeseci=Starost *Mjesec;

cout« "Trenutno imate "<< Starost <<"godina "«endl;

cout<< ",a to je pretvoreno u mjesece "<< Mjeseci <<" (mjeseci)"« endl;

cout << "Kraj..."«endl;

return 0;
}

EKRAN:

Koje ste godine rodjeni?

1982

Koja je trenutna godina?

2009

Trenutno imate 27 godina

,a to je pretvoreno u mjesece 324 (mjeseci)


Kraj...
Primjer 16:
Napisati program koji će od korisnika tražiti da unese svoje ime i podatak o godini rođenja, a
na izlazu daje ime ukupan broj proživljenih godina.
RJEŠENJE:

#include < iostream >

#include <conio.h>

#include<string>

using namespace std;

int main()

{ int god, godi, god2;

string ime;

cout<<"Upisi svoje ime:"; cin>>ime;

cout<<endl<<"Upisi godinu svogrodjenja:"; cin>>godi;

cout<<endl<< "Koja je godina sada? ";

cin>>god2;

god=god2-godi;

cout<<endl<<ime<< " ima "<<god<< " godina."<<endl;

getch();

return 0;
}

EKRAN:

Upisi svoje ime:DELILA Upisi godinu svog rodjenja:1996 Koja je sada godina? 2009
DELILA ima 13 godina.
PRIMJER 17:

Treba izračunati kvocijent dva broja od kojih je jedan cijeli, a drugi realan. Rezultat spremiti
u cjelobrojnu varijablu.

RJEŠENJE:

#include < iostream >

using namespace std;

int main()
{

int a, kvocijent; float b;

cout<<"Unesiprvi broj a = "; cin>>a;

cout<<"unesi drugi broj b = "; cin>>b;

cout<<"Vrijednost izraza a/b= "<<a/b<<endl;

kvocijent=a/b;

cout<<"Sadržaj varijable kvocijent iznosi:"

< <kvocijent<<endl;

return 0;
}

EKRAN:

Unesi prvi broj a = 152 unesi drugi broj b = 37 Vrijednost izraza a/b = 4.10811 Sadrzaj

varijable kvocijent iznosi :4


PRIMJER 18:
Potrebno je unijeti realni broj i pridružiti ga varijabli A. Sadržaj varijable A prvo treba
uvećati za 5, pa umanjiti za 8, na kraju pomnožiti sa 3. Koristiti operatore obnavljajućeg
pridruživanja

RJEŠENJE:

#include < iostream >

#include <conio.h>

using namespace std;

int main()
{

float A;

cout<<"Upisi željeni broj:"; cin>>A;

cout<< "Sadržaj varijable A se uvecava za 5. Sada A \

iznosi:" <<(A+=5)<<endl;

cout<< " Od trenutnog sadrzaja varijable A se oduzima 8.\

Sada A iznosi:"<<(A-=8)<<endl;

cout<< " Trenutni sadrzaj varijable A se mnozi sa 3.\

Sada A iznosi:"<<(A *=3)<<endl; cout <<

"Kraj..."<<endl; return 0;
}

EKRAN:

Upisi zeljeni broj:23

Sadrzaj varijable A se uvecava za 5.Sada A iznosi:28 Od trenutnog sadrzaja varijable A se

oduzima 8.Sada A iznosi:20 Trenutni sadrzaj varijable A se mnozi sa 3. Sada A iznosi:60


Kraj...

PRIMJER 19:
Potrebno je unijeti dva logička podatka A i B. Ispisuje se negacija od A, vrijednost (A I B) te
(A ILI B).

RJEŠENJE:

#include < iostream >

#include <conio.h>

using namespace std;

int main()

{ bool a,b;

cout<< "Vrijednost logickogpodatka A =

"; cin>>a;

cout<< "Vrijednost logickog podatka B=";

cin>>b;

cout<<endl<<"Akoje logickipodatakA = "<<a

<<" tada je suprotno od A = "<<!a<<endl;

cout<<"Za A = "<<a<<" i B="<<b<< " (A IB) =

"<<(a&&b)<<endl; cout< < "Za A = "< <a< <" i B="<<b<<" (A

ILI B) = "<<(a\\b)< <endl; getch(); return 0;


}

EKRAN:

Vrijednost logickog podatka A=0

Vrijednost logickog podatka B=1

Ako je logicki podatak A=0 tada je suprotno A=1

Za A=0 i B=1 (A I B)=0


Za A=0 i B=1 (A ILI B)=1

PRIMJER 20:
Potrebno je unijeti dva cijela broja. Nakon toga se ti brojevi uspoređuju (<, >, ==, !=) i
ispisuje se rezultat usporedbe.

RJEŠENJE:

include < iostream >

#include <conio.h>

using namespace std;

int main()
{

int a,b;

cout<< "Vrijednostprvog 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; getch(); return 0;


}

EKRAN:

Vrijednost prvog broja = 5 Vrijednost drugog broja =12 Je li 5<12 odgovor: 1


Je li 5>12 odgovor: 0 Je li 5==12

odgovor: 0 Je li 5!=12 odgovor: 1

PRIMJER 21:

Potrebno je sabrati(zbrojiti) sve prirodne troznamenkaste(trocifrene) brojeve.

RJEŠENJE:

#include < iostream > using namespace std; int main()


{

int brojac,zbroj;

cout<< "Program zbraja sve prirodne trocifrene

brojeve."<<endl; zbroj=0;

for(brojac=100;brojac< =999;brojac+ ++)


{
zbroj=zbroj+brojac;

}
cout<<"Suma(zbroj) svih prirodnih troznamenkastih(trocifrenih) brojeva je "
< <zbroj< <endl;

return 0;
}

EKRAN:
Program zbraja sve trocifrene brojeve.

Suma(zbroj) svih prirodnih troznamenkastih(trocifrenih)brojeva je 494550

PRIMJER 22: Potrebno je sabrati ( zbrojiti) N odabranih prirodnih brojeva.

include < iostream > using

namespace std; int main()


{
RJEŠENJE:

int broj,brojac,zbroj,N; zbroj=0;

cout<< "Upisi koliko brojeva zelis sabrati:

"; cin>>N;

for (brojac=1;brojac< =N;brojac+ +)


{

cout<<"Upisi broj: ";

cin>>broj;

zbroj=zbroj+broj;
}

cout<<"Zbroj (suma) unesenih brojeva je

"<<zbroj<<endl; return 0;
}

EKRAN:

Upisi koliko brojeva zelis sabrati: 4

Upisi broj: 34 Upisi broj: 5 Upisi

broj: 103 Upisi broj: 22

Zbroj(suma) unesenih brojeva je 164


PRIMJER 23:
Potrebno je ispisati prvih N neparnih brojeva.

RJEŠENJE:

#include < iostream

> using namespace

std; int main()


{

cout<< "Program ispisuje prvih N neparnih brojeva."« endl;

int n,i,br;

cout<< "Upisi željeni broj neparnih brojeva: "; cin>>n;

for(i=1;i< =n;i+ +)
{

br=(2*i-1);

cout<<br<<" ";
}

cout<<endl; return 0;
}

EKRAN:

Program ispisuje prvih N neparnih brojeva.

Upisi željeni broj neparnih brojeva: 5 1 3 579

PRIMJER 24:

Potrebno je prebrojiti i sabrati sve parne prirodne brojeve iz raspona od 1 do N .

#include < iostream

> using namespace

std; int main()


{

int broj,brojac,zbroj,N;

cout<< "Program prebrojava i zbraja sve parne prirodne


RJEŠENJE:

\ brojeve iz raspona od 1 do N. "<<endl; broj=0; zbroj=0;

cout<< "Upisi gornju granicu raspona: "; cin>>N;

for(brojac=1;brojac< =N;brojac++)
{
if(brojac %2==0)

{
zbroj=zbroj+brojac;
broj=broj+1;

cout<<"Uintervalu od 1 do "<<N<<" ima "<<broj <<" brojeva \

djeljivih sa 2. Njihov zbroj je "<<zbroj<<endl; return 0;


}

EKRAN:

Program prebrojava i zbraja sve parne prirodne brojeve iz raspona od 1 do N .

Upisi gornju granicu raspona: 23

U intervalu od 1 do 23 ima 11 brojeva djeljivih sa 2.Njihov zbroj je 132

PRIMJER 25:
Treba unijeti dva realna broja pa izračunati i ispisati njihov cjelobrojni kvocijent i ostatak
dijeljenja. Potrebno je načiniti i provjeru. Ako je djelitelj 0, treba ispisati poruku:

RJEŠENJE:

include < iostream >

#include<cmath >

using namespace std;

int main()
{

float a,b,ost,rez; cout<<

"Upisi djeljenik:";
cin>>a;

cout<< "Upisi djelitelj:

"; cin>>b;
if (b==0)
cout<<"Ne moze se dijeliti sa 0."<<endl

else

rez=a/b;

rez=floor(rez);

ost=fmod(a,b);

cout<<endl<<a<< "/"<<b<< "= "<<rez<< " cijelih i "


<<ost<<" ostatka."<<endl;

cout<<endl<<"Provjera: "<<rez<<"*"<<b<<"+

"<<ost <<"= "<<rez*b+ost<<endl;


}
return 0;
}

EKRAN:

Upisi djeljenik: 29 Upisi

djrlitelj: 3 29/3=9 cijelih i

2 ostatka.

Provjera: 9*3+2=29

PRIMJER 26:
Napisati program koji za unijeti broj ispisuje da li je pozitivan ili negativan te njegovu
apsolutnu vrijednost.Ako je upisana 0 „Pogresan unos!.Ponovi!“.

RJEŠENJE:

#include < iostream >

using namespace std;

int main()
{
int a;
upis:cout<< "Upisi broj različit od 0:";cin>>a;
if(a
==0)

cout<< "Pogresan unos.

Ponovi!"<<endl; goto upis;


}
{

cout<<"Broj "<<a<<" je negativan. Njegova

apsolutna\ vrijednost je "<<-a<<endl;


}
if(a<0)

else

cout<<"Broj "<<a<<" je pozitivan. Njegova apsolutna\

vrijednost je "<<a<<endl;
}
return 0;
}

EKRAN:

Upisi broj različit oa 0 : -37

Broj -37 je negativan.Njegova apsolutna vrijednost je 37 PRIMJER 27:

Napisati program koji stepene Celzija pratvara u stepene Reaumur i Fahrenheit.

RJEŠENJE:

/*Program pretvara stepene Celzija u Reaumur-ove i Fahrenheit-ove*/

#include <iostream>

#include <cmath> using namespace std; int main (){ int C,R,F;

cout<<"Upisi stepene CELZIJ-a: ";


cin>>C;

R=4*C/5;

F=(9*C/5)+32;

cout<<"Reaumur = "<<R<<endl; cout<<"Fahrenheit =

"<<F<<endl; return 0;
}

EKRAN:

Upisi stepene CELZIJ-a : 40 Reaumur = 32 Fahrenheit = 104

PRIMJER 28:

Napisati program koji za unijeti broj ispisuje njegove djelitelje.

RJEŠENJE:

#include < iostream

> using namespace

std; int main()


{

int brojac,N;

cout<<"Program ispisuje djelitelje odabranog

\ prirodnog broja." <<endl; upis:cout<<"Upisiprirodni

broj: "; cin>>N; if (N<=0)


goto upis;
cout<< "Djelitelji broja "<<N<<"su: ";

for (brojac=1;brojac< =N;brojac+ +)

{
if(N%brojac==0)
cout<<brojac<<" ";

cout<<endl; return 0;
}

EKRAN:

Program ispisuje djelitelje odabranog prirodnog broja.

Upisi prirodni broj: 123 Djelitelji broja 123 su: 1 3 41 123 PRIMJER 29:

Napisati program koji ispisuje sve trocifrene brojeve čiji je zbir cifara 5.

RJEŠENJE:

include < iostream >

using namespace std;

int main()
{

int i,pom,j,d,s;

cout<<"Program ispisuje sve trocifrene brojeve

\ ciji je zbir cifri 5."<<endl;

cout<< "Brojevi ciji je zbir cifri 5 su: "<<endl;


for(i=100;i< =999;i+ +)

pom=i;

j=pom%10;

d=(pom/10)%10;

s=pom/100;

if(j+d+s==5)

cout< <i<<endl;
}
return 0;
}

EKRAN:

Program ispisuje sve trocifrene brojeve ciji je zbir cifri 5.

Brojevi ciji je zbir cifri 5 su:

104

113

122

131

140

203

212

221

230

302

311
320

401

410

500

PRIMJER 30:
Napisati program koji ispisuje na ekranu da li je unijeti broj prost ili ne.Broj je prost ako je
djeljiv samo sa 1 i samim sobom.

RJEŠENJE:

#include < iostream >

using namespace std;

int main()
{

int brojac,N;

cout<< "Program ispituje je li odabrani prirodni broj

prost."; upis:cout<<endl<<"Upisiprirodni broj: "; cin>>N; if (N<=0)


goto upis;

for (brojac=2;brojac<=(N-1);brojac+ +)

{
if(N%brojac==0)

cout<<"Broj "<<N<<" nije

prost."<<endl; goto kraj;


}

}
cout<<"Broj "<<N<<"jeprost."<<endl;

kraj:return 0;
}

EKRAN:

Program ispituje je li odabrani broj prost.

Upisi prirodni broj : 151 Broj 151 je prost.:

PRIMJER 31:
Ispisuje sve savršene prirodne brojeve iz raspona od 1 do 10000. Broj je savešen ako je
jednak sumi(zbiru) svojih djelitelja npr: 28 = 1 + 2 +4 +7 + 14.

RJEŠENJE:

#include < iostream >

using namespace std;

int main()
{
int br,brojac,zbroj;
cout<< "Program ispisuje sve savrseneprirodne brojeve iz \ raspona od 1 do
10000."<<endl;

cout<<"Savrseni brojevi su: ";


for(br=1;br<=10000;br+ +)

{
zbroj=0;
for (brojac=1;brojac<=(br-1);brojac++)

{
if(br%brojac==0)
zbroj=zbroj+brojac;
}
if(zbroj==br)
cout<<br<<" ";

}
return 0;
}

EKRAN:

Program ispisuje sve savrsene prirodne brojeve iz raspona od 1 do 10000.

Savršeni brojevi su: 6 28 496 8128 PRIMJER 32:


Napisati program koji ispituje da li je upisani prirodni broj savršen.Broj je savešen ako je
jednak sumi (zbiru) svojih djelitelja npr: 6 = 1 + 2 +3.

RJEŠENJE:

#include < iostream >

using namespace std;

int main()
{

int brojac,zbroj,N;

cout<< "Program ispituje da li je odabrani prirodni broj savrsen.";

upis:cout<<endl<< "Upisiprirodni broj: "; cin>>N; zbroj=0;

if (N<=0)

goto upis;

for (brojac=1;brojac<=(N-1);brojac+ ++)


{

if(N%brojac==0)

{
zbroj=zbroj+brojac;

}
if(zbro
j==N)

cout<<”Broj ”<<N<<”je savrsen.”<<endl;

else

cout<<”Broj ”<<N<<” nije savrsen.”<<endl;


return 0;
}

EKRAN:

Program ispituje da li je odabrani prirodni broj savrsen.

Upisi prirodni broj: 8128 Broj 8128 je savrsen

PRIMJER 33:
Napisati program koji ispituje da li je upisani prirodni broj armstrongov. Armstrongov broj je
broj koji je jednak sumi kubova svoji cifara npr. 153 = 13+53+33 = 1+125+27.

RJEŠENJE:

#include <iostream>

#include <cmath>

using namespace std;

int main ()
{

int num,r,sum=0,temp;

printf("\nUnesi broj N = : ");


scanf("%d",&num);
temp=num;
while(num!=0)

r=num%10;

num=num/10;

sum=sum+(r*r*r);
}

if(sum==temp)

printf("\nBroj %d jeste armstrongov broj.",temp);

else

printf("\nOvaj broj %d nije armstrongov


broj.",temp); return 0;
}

PRIMJER 34:
Program koji ispisuje armstrongove brojeve iz intervala 1-500.( Armstrongov broj je broj koji
je jednak sumi kubova svoji cifara npr. 407 = 43+03+73 = 64+0+3 43 ).

RJEŠENJE:
#include<stdio.h>
#include<conio.h>
main(void)
{

int i,j,k,suma;
printf(”\n-Armstrongovi brojevi iz intervala 1-500jesu:-\n”); for(i=1;i<=500;i++)
{

j=i;
suma=0;
while(j!=0)
{

k=j%10;
suma+=(k*k*k);
j/=i0;
}
if(suma==i)
printf(” %d”,i);
}

getch();
}

EKRAN:

-Armstrongovi brojevi iz intervala 1-500 jesu:-

1 153 370 407 PRIMJER 35:

Program provjerava je li upisani broj veći ili manji od 100, te je li paran ili neparan.

RJEŠENJE:

#include < iostream > using namespace std; int main()


{
int a;

cout<< "Upisi broj različit od

0:”;cin>>a; if (a==100)
{
cout<<”Unesen je broj 100, on je paran”« endl;
else if (a<100)
{

cout«''Uneseni broj je manji od 100 i ”;


if (a%2==0)
cout«" paran je."«endl;
else

cout<<" neparan je."<<endl;

}
else

cout<<"Uneseni broj je veci od 100 i

"; if (a%2==0)
cout<<" paran je."<<endl;
else
cout<<" neparan je."<<endl;
}

return 0;

EKRAN:

Upisi broj različit od 0: 236 Uneseni

broj je veci od 100 i paran je.

PRIMJER 36:
Program provjerava je li upisani broj >= 0. Ako je, računa se kvadratni korijen tog broja, a
ako nije ispisuje se poruka: Broj je manji od 0, ponovi upis. i ponavlja se unos broja.

RJEŠENJE:

#include < iostream >

#include<cmath>

using namespace std;

int main()

float broj,rez;

upis:cout<<"Upisi broj:";
{

cin>>broj;
if (bro
j<0)

cout<<"Broj je manji od 0, ponovi upis"<<endl; goto upis;


}
else

{
rez=sqrt(broj);
cout<<"Kvadratni korijen od "<<broj<<" je "<<rez<<endl;

}
return 0;
}

EKRAN:

Upisi broj:578

Kvadratni korij en od 578je24.0416

PRIMJER 37:
Treba unijeti cijeli broj pa provjeriti je li paran. Ako je paran, treba izračunati i ispisati
njegovu treću potenciju, a ako nije, apsolutnu vrijednost.

RJEŠENJE:

#include <iostream>

#include <cmath> using namespace std;


{
int i,rez1,rez2;
cout<<"Unesi broj:";

cin>>i; if (i%2==0)
{
rez1=i*i*i;
cout<<"Broj "<<i<<" je paran, a njegova \
int main ()

trecapotencija iznosi "<<rez1<<endl;

}
else

{
rez2=abs(i);
cout<<"Broj "<<i<<" je neparan, a njegova \

apsolutna vrijednost iznosi "<<rez2<<endl;

}
return 0;
}

EKRAN:

Unesi broj:6

Broj 6 je paran, a njegova treca potencija iznosi 216

PRIMJER 38:

Napisati program koji od tri upisana broja na ekranu ispisuje najmanji..

RJEŠENJE:
#include < iostream >

using namespace std;

int main()
{

float a,b,c,min;

cout<<"Upisiprvi broj:";

cin>>a;

cout<<"Upisi drugi

broj:"; cin>>b;

cout<<"Upisi treci broj:";

cin>>c;

mm=a;

if (b<min)

{min=b;}

if (c<min)

{min=c;}

cout<<"Ako se upisu brojevi: "<<a<<", "<<b<<" i "<<c

<<" najmanji od njih je "<<min<<endl;

return 0;
}

EKRAN:

Upisi prvi broj:154

Upisi drugii broj :28

Upisi treci broj:375


Ako se upisu brojevi: 154, 28, i 375 najmanji od njih je 28 PRIMJER 39:

Potrebno je prebrojiti sve prirodne brojeve djeljive sa 3 iz raspona od 1 do 9999.

RJEŠENJE:

#include < iostream

> using namespace

std; int main()


{

int broj,brojac;

cout<< "Program prebrojava sve prirodne brojeve djeljive sa \

3 iz raspona od 1 do 9999."<<endl; broj=0;

for(brojac=1;brojac< =9999;brojac+ +)
{
if(brojac %3==0)
broj=broj+1;

cout<< "U intervalu od 1 do 9999 ima "<<broj <<" brojeva

djeljivih sa 3."<<endl;

return 0;
}

EKRAN:

Program

Prebrojava sve prirodne brojeve djeljive sa 3 iz raspona od 1 do 9999.

U intervalu od 1 do 9999 ima 3333 brojeva djeljivih sa 3.


PRIMJER 40:

Potrebno je ispisati tekst *** u obliku slova V.

RJEŠENJE:

#include<iostream>

#include<iomanip> using namespace std; int

main()
{

int i,s,p;

s=10;

p=40;

for(i=1;i<=10;i++)
{

cout<

<setw(s)<<"***"<<setw(p)<<"***"<<e

ndl; s=s+2; p=p-4;


}

return 0;

} // Uključivanje bibilioteke u program

#include <iostream> using namespace std;

// Definisanje glavne funkcije programa int

main(){

// Definisanje varijabli int dots;


// Ispis odgovarajuće poruke na ekranu cout << "Koliko tackica

zelite: ";

// Beskonačna for petlja, prekinut ćemo je sa funkcijom break...


for
(;;) {

// Unos broja... cin >> dots;

// Ukoliko je unesena vrijednost broj izlazi se iz for petlje // u

suprotnom se ispisuje odgovarajuca poruka, brise ulazni bufer // i

znakovi upisani u bufer i ponovo se unosi broj... if(cin) break;

cout << "Ne zafrkajite se :P, unesite broj: " << endl; cin.clear();

cin.ignore(10000, '\n');
}

// Nakon sto se unese ispravan broj, ispis poruke na ekran... cout <<

dots << " tackica, samo za vas :) --> " << endl;

//1 nakon poruke, jos ispis tackica...

for(int brojac=0;brojac<dots;brojac++) cout << ".";

// Brisanje ulaznog bufera i kraj programa... cin.ignore(1000, '\n');

getchar(); return 0;
}

PRIMJER 41:
Napisati program koji upisani broj rastavlja na proste faktore.
RJEŠENJE:

#include <iostream>

using namespace std;

int main()
{

int br, prbr;

cout<< "Rastavljanje broja na proste faktore"<<endl;

unos:cout<< "Upisi broj veci od 0:"; cin>>br;


if(br
<=0)

cout<< "Treba unijeti broj veci od 0"<<endl;

goto unos;
}
else

prbr=2;

cou<<br<<" = 1"; dj2:if(br==1)


{
goto kraj;

}
else

{
dj1:if(br%prbr==0)
{

cout<<" * "<<prbr;

br=br/prbr; goto dj2;

else
{

prbr=prbr+1;

goto djl;
}

}
kraj:cout< < endl;
return 0;
}

EKRAN:

Rastavljanje broja na proste faktore

Upisi broj veci od 0:24

24=1*2*2*2*3

II-i dio
PRIMJER 42:
Za upisane stranice b i a po našem izboru računa P i O kvadrata i
pravougaunika(pravokutnika).

RJEŠENJE:

#include<iostream>

using namespace std;

int main()
{

int a,b,k;

cout<<"Upisi stranice:"<<endl;

cout<<"a = ";

cin>>a;

cout<<"b = ";

cin>>b;

cout<<"Za kvadrat upisi 1 "<<",a za pravougaonik 2 : "<<endl; cin>>k;

if(k==1)
{
cout<<"Pavrsina kvadrata je P = "<<a*a<<" ,a obim O = " <<4*a<<endl;

}
if(k==2)
{
cout<<"Pavrsina pravougaonika je P = "<<a*b<<" ,a obim O = " <<2*(a+b)<<endl;

}
return 0;
}

EKRAN:

Upisi stranice:

a=2

b=4

Za kvadrat upisi 1 ,a za pravougaonik 2:

Površina pravougaonika je P = 8 ,a obim O = 12 PRIMJER 43:

Za upisane a ,b,c, i r po našem izboru računa P i V kocke, kvadra ili lopte(kugle).

RJEŠENJE:

#include < iostream >

#include<cmath> using namespace std; int main()


{

float

a,b,c,r,k,pi; pi=3.14;

cout<<"Program ispisuje (P) i (V) kocke ili kvadra ili

lopte(kugle):"<<endl; cout<<"Upisi stranice:"« endl; cout<<"a =

"; cin>>a; cout<<"b = "; cin>>b; cout<<"c = ";


cin>>c;

cout<<"r =

"; cin>>r;

cout<<"Kocka (1)"<<endl; cout<< "Kvadar (2) "<<endl;


cout<<"Lopta-kugla (3) "<<endl; cin>>k;

if(k==1)
{
cout<<"Pavrsina kocke je P = "<<6*a*a<<", a zapremina V = "
<<a*a*a< <endl;

}
if(k==2)

{
cou<<"Pavrsina kvadra je P = "<<2*((a*b) + (a*c) + (b*c))<<", a volumen V = "
<<a*b*c<<endl;

}
if(k==3)

{
cout<<"Pavrsina lopte je P = "<<4*r*r*pi<<", a volumen V = "
<<4*r*r*r *pi/3< <endl;

}
return 0;

PRIMJER 44:

Napisati program koji dekadni broj ispisuje kao hexadecimalni i oktalni broj.

RJEŠENJE:
#include <iostream>
#include <cmath> using namespace std; int main() { int broj;

cout<<" Unesi broj : "; cin >> broj;


cout << "Hexadekadno = "<< hex << broj << endl; //ispisuje upisani broj u
hexadekadskom obliku

cout << "Oktalno = "<<oct << broj << endl; //ispisuje upisani broj u oktalnom obliku
cout << "Dekadno = "<<dec << broj << endl; //vraca bazu ispisa u dekadski sustav (inace
bi se nastavilo u oktalnomcout << sin << broj << endl;

return 0;

}
EKRAN:

Unesi broj : 60 Hexadekadno = 3c Oktalno = 74 Dekadno = 60 PRIMJER 45:

Napisati program koji dekadni broj ispisuje kao binarni.

RJEŠENJE:

#include <iostream> using namespace std; int main() {


int broj, i=0; // i nam je index kojim označavamo poziciju u polju, odmah ga postavimo na
0 jer je prvi element polja 0.

int binarni[11];
cout<<"Unesi brojN = ";

cin >> broj; cout<<

"Binarno je :"; do {

binarni[i+ +]=broj%2; // stavi rezultat dijeljenja na i-to mjesto u polju i uvecaj i za 1

broj/=2; //podijeli broj s 2


}

while (broj); // i to ponavljaj sve dok je rezultat razlicit od nule

do {

cout << binarni[--i]; // umanji i za 1 i ispisi i-ti element polja

} while (i); // i to ponavljaj sve dok je i razlicit od nule return 0;


}

EKRAN:

Unesi broj N = 234 Binarno je :11101010 PRIMJER 46:

Napisati program za stepenovanje broja (ako je poznata baza i eksponent).

RJEŠENJE:

#include <iostream>

using namespace std;

double Stepen (int

baza, int eksponent)


{
double rezultat = 1;
for (int i = 0; i < eksponent; ++i)
rezultat *= baza;
return rezultat;

}
main ()

int a,b;

cout << "Unesi bazu:";

cin > > a;

cout << "\nUnesi eksponent:";

cin >> b;

cout << a<<"A" <<b<<" = " << Stepen(a,b) << '\n';

system ("PA USE ");


}

EKRAN:

Unesi bazu : 3 Unesi eksponent : 5 3A5 = 243

PRIMJER 47:

Napisati program za izbor matematske radnje za upisana dva broja.

RJEŠENJE:

#include <cstdlib>

#include <iostream>

using namespace std;

int main()
{
float a,b,c,d,e,f,g,h;

int i;

printf ("Unesi brojeve : "); scanf ("%f %f,&a,&b); printf ("\n1 -

zbrajanje"); printf ("\n2 - oduzimanje"); printf ("\n3 -

mnozenje");

printf ("\n4 - dijelenje");printf("\nMorate odabrati 1,2,3 ili 4");

printf ("\n Tvoj izbor : "); scanf ("%i", &i); switch(i)


{

case 1:

printf("\n Zbir je %f\a+b);

break;

case 2:

printf ("\n Razlika je %f\a-b);

break;

case 3:

printf ("\nProizvodje %of',a*b);

break;

case 4:

printf ("\nKvocjent je %f\a/b);


if (b=0)

break;

default:

printf("\n Morate odabrati 1,2,3 ili 4");

break;
printf("\nNije moguce dijeliti s nulom");

system ("PAUSE"); return 0;


}

EKRAN:

Unesi brojeve : 23 7

1 - zbrajanje

2 - oduzimanje

3 - množenje

4 - dijelenje

Morate odabrati 1,2,3 ili 4

Tvoj izbor : 4 Kvocijent je

3.285714 PRIMJER 48:

Isti primjer uz upotrebu naredbe if.

RJEŠENJE:
#include<iostream>
#include<cmath>

using namespace std;

int main ()
{

float a,b,k;

cout<<"Unesite dva broja :"<<endl;

cout<<" a = ";

cin>>a;

cout<<" b = "; cin>>b;

cout<<"Morate odabrati 1,2,3 ili 4 :"<<endl;

cout<<" 1 - Sabiranje "<<endl; cout<<" 2 -

Oduzimanje "<<endl; cout<<" 3 - Množenje

"<<endl; cout<<" 4 - Dijelenje "<<endl; cout<<"

Tvoj izbor je : "; cin>>k; cout<<endl; if(k==1)


{
cout<<"Zbir je : "<<a+b<<endl;

}
if(k==2)

{
cout<<"Razlika je : "<<a-b<<endl;
}
if(k==3)

cout<<"Proizvod je : "<<a*b<<endl;

if(k==4)

cout<<"Kolicnik je : "<<a/b<<endl; }
return 0;
}

PRIMJER 49:

Napisati program koji ispisuje pozdrav koliko puta želimo.

RJEŠENJE:
/* program koji pozdravlja korisnika */
#include <iostream> using namespace std; int main (){ int broj;
cout<< "Koliko puta vas treba pozdraviti:";
cin>>broj;
while(broj>0){
cout<< "Zdravo\n";
broj=broj-l;
}
cout<< "To je sve...\n"; system("Pause "); return 0;
}

PRIMJER 50:

Napisati program koji upisano vrijeme u sekundama pretvara u sate.

RJEŠENJE:
#include<stdio.h>

#include<coni o.h> main(void)


{

int sec;

float sat;

do

{ printf("\nUpisi vrijeme u sekundama:");

scanf("%d",&sec);

sat=sec/3600.;

printf("\n%d sekundi je %f sati",sec,sat);


}
while(sec!=0);

}
PRIMJER 51:
Napisati program koji za upisane parametre kvadratne jednačine oblika ax2+bx+c=0 ispisuje
na ekranu rješenja jednačine ako postoje ,a ako nisu moguća ispiše da nema rješenja.

RJEŠENJE:
#include < iostream >
#include<cmath> using namespace std; int main ()
{
float a,b,c;
cout<< “Unesi koeficijente kvadratne jednačine : “<<endl;
cout<< “a = „;
cin>>a;
cout<< “b =„;
cin>>b;
cout<< “c = „;
cin>>c;
float diskr=(b*b)-(4*a*c);
cout<< “Jednacina ima „;
if(diskr==0)
cout<< “dvostruki realni korijen,rjesenje je: X1 = X2 = „ <<(-b/(2*a))<<endl;
else if(diskr>0)
cout<< “dva realna rjesenja,rjesenja su: XI = „ <<(-b+sqrt(diskr))/(2*a)<< “ iX2 = „<<(-
b-sqrt(diskr))/(2*a)<<endl;
else
cout<< “dva kompleksna korjena „ <<endl; getchar (); return 0;
}

Primjer 52:
Željeznička kompanija naplaćuje karte na sljedeći način:
a) Djeca (ispod 16 godina) - besplatno
b) Odrasli (16 godina i stariji) - puna cijena
c) Penzioneri (60 godina i stariji) - pola cijene
Napisati program koji na ulazu prihvata godine starosti putnika, a na izlazu daje informaiju u
koju kategoriju putnik pripada.
RJEŠENJE:
// Sljedeći program na ulazu trazi godine putnika, dok na izlazu, // na osnovu njegovih godina
daje koliki iznos cijene karte placa .
#include < iostream
> using namespace
std; int main()
{

int Starost;
cout<< "Unesite godine putnika: "«endl;
cin>>Starost;
if (Starost < 16)
cout<< "Ovaj putnik putuje besplatno"« endl;
if (Starost >= 16) if (Starost < = 59)
cout<< "Ovaj putnik placa puni iznos cijene karte "«endl;
if (Starost >= 60)
cout<< "Ovaj putnik placa pola iznosa cijene karte "«endl; return 0;
}

PRIMJER 53:
Napisati program za pogađanje slučajno generisanog broj a rasponu 1 do 1000.Program
ispisuje „MANJE“ ,“VISE“,a kada se pogodi ispisuje „BINGOOO...“.

RJEŠENJE:
//pogađanje broja

#include <iostream>

#include <cstdlib>

#include <ctime> #include <conio.h>

using namespace std; int main() { int raspon=1000;

srand( static_cast<unsigned>( time(0) ) );

int trazeniBroj = rand() % raspon + 1;

int mojBroj;
int brojPokusa=0;

cout << "POGODITE SLUČAJNO GENERIRAN BROJ IZMEDJU1 i 1000"

<< endl << endl; do{

cout<< ++brojPokusa<<". pokusaj: "; cin >> mojBroj;

if(mojBroj > trazeniBroj)

cout<< " Manje.\n"; else if

(mojBroj < trazeniBroj) cout<

< " VISE.\n";

} while(mojBroj != trazeniBroj); cout << endl << " B I N G O O O ...\n";

return 0;
}

PRIMJER 54:
Poznata Moievrova teorema za kompleksne brojeve tvrdi da je za ma kakve realne brojeve x i
n: (cos x + i sin x) n = cos n x + i sin n x .Napisati program koji ce za realne brojeve x i n
unesene sa tastature izračunati lijevu i desnu stranu ovog izraza i ispisati ih na ekranu,
koristeći kompleksni tip podataka. Na nekoliko primjera provjeriti da li se zaista dobijaju
jednake vrijednosti.
RJEŠENJE:
# include <iostream>
# include <cmath>
# include <complex>
using namespace std;
int main() {
// Definisanje i unos dva realna broja double
x, n;
cout << "Unesi realan broj \ "x\": ";
cin > > x;
cout << "Unesi realan broj \ "n\": ";
cin > > n;
// Racunanje prvog dijela (prvidio je rezultat)
complex<double> prvidio(cos(x), sin(x)); prvidio
=pow (prvidio,n);
// Racunanje drugog dijela (drugidio je rezultat)
complex<double> drugidio(cos(n*x), sin(n*x));
// Ispis rezultata
cout << "Lijeva strana jednacine je: " << prvidio << " a desna: " << drugidio
<< endl; getchar(); return 0;
}

PRIMJER 55:

Napisati program koji ucitani tekst štampa naopako. Tekstse ucitava s tastature sve do znaka
za novi red.
RJEŠENJE:
#include<iostream>
#include<cstring>
using namespace std;
int main(){
// Ispis poruke "Unesite tekst"...
cout << "Unesite tekst: ";
// Definisanje i unos teksta koristeci funkciju getc() iz biblioteke "cstring"
char tekst[100];
gets(tekst);
// Pridruzivanje duzine teksta varijabli "duzina", pomocu funkcije strlen()... int
duzina=strlen(tekst);
// Ispis teksta "slovo po slovo" krenuvsi sa kraja niza tekst[]...
for(int i=duzina-1;i>=0;i--) cout << tekst[i];
// Kraj programa
getchar();
return 0;
}
PRIMJER 56:
Napišite program koji traži od korisnika da unese niz recenica, pri cemu se broj rečenica
prethodno unosi sa tastature.Za svaku unesenu recenicu dinamicki alocirajte prostor, uz
vođenje evidencije o adresi svake alocirane recenice u dinamickom nizu pokazivaca na
pocetke svake od recenica. Nakon toga, trebaispisati unesene recenice sortirane u abecedni
poredak (odnosno u
poredak po ASCII kodovima). Sortiranje obavite rucno, bilo kojim postupkom koji Vam je
poznat (drugim rijecima, nemojte koristiti gotove funkcije za sortiranje, poput funkcije "sort"
iz biblioteke "algorithm".
RJEŠENJE:
#include <iostream>
#include <string> using namespace std; int main(){
// Unos broja recenica int broj_rec;
cout << "Unesite broj recenica: "; cin >> broj_rec;
cin.ignore(10000, '\n'); // Ignorisanje nepotrebih znakova iz bufera
char **recenice = new char*[broj_rec]; // Definisanje dvostrukog pokazivaca
for(int i=0; i<broj_rec; i++) { // For petlja u kojoj se unosi n recenica
// Definisanje pomocnog niza pom i unos recenice u njega
char pom[1000];
cout << i+1 << ": ";
cin.getline(pom, 1000);
// Definisanje niza na niz (matrica, i to grbava) (pomocu pokazivaca) recenice[i] = new
char[strlen(pom) + 1];
// Upisivanje recenice iz pom na i-to mjesto u nizu strcpy(recenice[i], pom);
}

// Pomocni stringovi, uveo sam ih zbog efikasnije provjere operacija < > string poml, pom2;
// Proces sortiranja, metodom nalazenja najveceg i stavljanje na vrh
for (int i=0;i<broj_rec-1;i++) for (int j=i+1;j<broj_rec;j++){
pom1=recenice[i];
pom2=recenice[j];
if (pom1>pom2){
char pomocna[1000];
strcpy(pomocna, recenice[i]);
strcpy(recenice[i], recenice[j]);
strcpy(recenice[j], pomocna);
}}
// Ispis sortiranog niza
cout << endl << "Sortirano: " << endl;
for(int k = 0; k < broj_rec; k++) cout << k+1 << ": " << recenice[k] << endl;
// Kraj programa
getchar(); return
0;
}
PRIMJER 57:
Napišite program koji prvo traži da se sa tastature unese rečenica, a zatim ispisuje svaku riječ
te rečenice u posebnom redu, kao i informaciju koliko ta rečenica ima slova (ne računajuci
interpunkcijske znakove) i riječi. Obratite pažnju da riječi rečenice mogu biti razdvojene sa
više od jednog razmaka,kao i da se na samom početku i na samom kraju rečenice mogu
također nalaziti razmaci. Za realizaciju koristite tip “string” i odgovarajuće manipulacije sa
stringovima.
RJEŠENJE:
# include <iostream>
# include <string> using namespace std; int main(){
// Unos recenice
cout << "Unesi recenicu: " << endl; string recenica; getline(cin, recenica);
// Ispis rijeci
cout << endl << "Rijeci iz recenice: " << endl << endl; bool istina=false; int br=0, br1=0;
for (int i=0; i<=recenica.length(); i++) { if (((recenica[i]>-a')&&(recenica[i]<-z'))||
((recenica[i]>-A')&&(recenica[i]<-Z')))
{ cout << recenica[i]; br++; istina=true; continue; } if (istina) {cout << endl; istina=false;
br1++; }
}

// Ispis broja slova


cout << endl << "Recenica ima " << br << " slova i " << br1 << " rijeci!";
// Kraj programa return 0;
}

PRIMJER 58:
Napisati program koji učitani tekst štampa naopako. Tekstse ucitava s tastature sve do znaka
za novi red.
RJEŠENJE:
#include<iostream>
#include<cstring> using namespace std; int main(){
// Ispis poruke "Unesite tekst"... cout << "Unesite tekst: ";
// Definisanje i unos teksta koristeci funkciju getc() iz biblioteke "cstring" char tekst[100];
gets(tekst);
// Pridruzivanje duzine teksta varijabli "duzina", pomocu funkcije strlen()... int
duzina=strlen(tekst);
// Ispis teksta "slovo po slovo" krenuvsi sa kraja niza tekst[]... for(int i=duzina-1;i>=0;i--) cout
<< tekst[i];
// Kraj programa getchar(); return 0;
}

PRIMJER 59:
Napisati program koji racuna sumu trocifrenih prirodnih brojeva, kojima je zadnja cifra 2 puta
veca od prve cifre.Rezultat ispisati na ekran.
RJEŠENJE:
#include <iostream>
using namespace std;
main(){
// Ispis poruke "Brojim..." :) cout << "Brojim... :)" << endl;
// Definisanje varijable "suma" tipa int... int suma=0;
/* Trostruka petlja, i se vrti od 0 do 9 i predstavlja cifru stotica, j se isto vrti od 0 do 9 i
predstavlja cifru desetica, a k predstavlja cifru jedinica. Kada je uslov u trecoj for petlji
zadovoljen tada se "suma" uvecava za taj broj, ako nije zadovoljen prelazi se na iduci broj. */
for (int i=1;i< 10;i++)
for (int j=0;j<10;j++)
for (int k=0;k<10;k++) {
if ((k>2*i)) suma=suma+(i*100+j*10+k);
}

// Ispis sume na ekranu...


cout << "Suma je:" << suma << endl;
getchar();
return 0;
}

PRIMJER 60:
Napisati program koji ce ispisati na ekranu zeljeni broj tackica, broj tackica se unosi na
ulazu...
RJEŠENJE:
// Ukljucivanje bibilioteke u program #include <iostream> using namespace std;
// Definisanje glavne funkcije programa int main(){
// Definisanje varijabli int dots;
// Ispis odgovarajuce poruke na ekranu cout << "Koliko tackica zelite: ";
// Beskonacna for petlja, prekinut cemo je sa funkcijom break...
for(;;) {
// Unos broja... cin >> dots;
// Ukoliko je unesena vrijednost broj izlazi se iz for petlje // u
suprotnom se ispisuje odgovarajuca poruka, brise ulazni bufer // i
znakovi upisani u bufer i ponovo se unosi broj... if(cin) break;
cout << "Ne zafrkajite se :P, unesite broj: " << endl; cin.clear();
cin.ignore(10000, '\n');
}

// Nakon sto se unese ispravan broj, ispis poruke na ekran... cout <<
dots << " tackica, samo za vas :) -->" << endl;
// I nakon poruke, jos ispis tackica...
for(int brojac=0;brojac<dots;brojac++) cout << ".";
// Brisanje ulaznog bufera i kraj programa... cin.ignore(1000, '\n');
getchar(); return 0;
}

PRIMJER 61:

Program provjerava je li upisani broj >= 0. Ako je, računa se kvadratni korijen tog broja, a
ako nije ispisuje se poruka: Broj je manji od 0, ponovi upis. i ponavlja se unos broja.

RJEŠENJE:

#include < iostream >

#include<cmath>

using namespace std;

int main()
{
float broj,rez;

upis:cout<<"Upisi broj:";

cin>>broj;
if br
( qj<0) {
cout<<"Broj je manji od 0, ponovi upis"<<endl;

goto upis;
}

else

{
rez=sqrt(broj);
cout<<"Kvadratni korijen od "<<broj<<" je "<<rez<<endl;

}
return 0;
}

PRIMJER 62:
Treba unijeti cijeli broj pa provjeriti je li paran. Ako je paran, treba izračunati i ispisati
njegovu treću potenciju, a ako nije, apsolutnu vrijednost.

RJEŠENJE:

#include <iostream>

#include <cmath>

using namespace std;

int main ()
{

int i,rez1,rez2;

cout<<"Unesi broj:"; cin>>i if

(i%2==0)
{

rez1=pow(i,3);

cout<<"Broj "<<<<" je paran, a njegova\ trecapotencija

iznosi "<<rez1<<endl;
}
{

rez2=abs(i);

cout<<"Broj "<<i<<"je neparan, a njegova \

apsolutna vrijednost iznosi "<<rez2<<endl;


else

}
return 0;
}

PRIMJER 63:
Treba unijeti koordinate dvije tačke A i B, pa izračunati njihovu udaljenost u koordinatnom
sustavu-sistemu.

RJEŠENJE:

#include < iostream >

#include<cmath>

using namespace std;

int main()
{

float x1,y1,x2,y2,pom,d;

cout<< "Koordinate tocke A:"<<endl;

cout<<"x1= ";

cin>>x1;

cout<<"y1= ";

cin>>y1;

cout<<"Koordinate tocke

B:"<<endl; cout<<"x2= ";


cin>>x2;
cout<<"y2= ";

cin> >y2;pom =pow ((x2-x1),2)+pow ((y2-y1),2); d=sqrt(pom);

cout< < "Udaljenost tocaka A ("< <x1< < ","< <y1 < < ") i B( "<<x2

<<","<<y2<<")je "<<d<<endl;

return 0;
}

PRIMJER 64:

Potrebno je sabrati(zbrojiti) N članova niza:

(1 + 1/2 + 1/3 + 1/4 + 1/5 +....+ 1/N)

RJEŠENJE:

#include <iostream>

using namespace std;

int main()
{

cout<< "Program zbraja niz (1 + 1/2 + 1/3 + 1/4 + 1/5 +....+ 1/N)"; float

zbroj,brojac,N; cout<<endl<< "Upisi željeni broj članova niza: "; cin>>N;

zbroj=0;

for(brojac=1;brojac< =N;brojac++)
{
zbroj=zbroj+ 1/brojac;

}
cout<< "Zbroj "<<N<< " članova ovog niza iznosi "<<zbroj<<endl;
return 0;
using namespace std;
int main()

PRIMJER 65:

Potrebno je prebrojiti sve prirodne brojeve djeljive sa 8 iz raspona od 1 do 9999.

RJEŠENJE:

#include < iostream

> using namespace

std; int main()


{

int broj,brojac;

cout<<"Program prebrojava sve prirodne brojevedjeljive sa \

8 iz raspona od 1 do 9999."<<endl; broj=0;

for(brojac=1;brojac< =9999;brojac+ +)
{
if(brojac %8==0)
broj=broj+1;

cout<< "U intervalu od 1 do 9999 ima "<<broj <<" brojeva

djeljivih sa 8."<<endl;

return 0;
}

PRIMJER 66:

Potrebno je ispisati djelitelje upisanog prirodnog broja.

RJEŠENJE:
#include < iostream >
{

int brojac,N;

cout<<"Program ispisuje djelitelje odabranog

\ prirodnog broja."<<endl; upis:cout<< "Upisiprirodni


}

broj: ";

cin>>N; if (N<=0)
goto upis;
cout<< "Djelitelji broja "<<N<<" su: ";

for (brojac=1;brojac< =N;brojac+ +)

{
if(N%brojac==0)

cout<<brojac<<" ";

cout<<endl; return 0;
}

PRIMJER 14:
Ispisuje sve troznamenkaste(trocifrene) brojeve koji su djeljivi sa 7, a zadnja im je cifra
(znamenka)7.

RJEŠENJE:
#include < iostream >

using namespace

std; int main()


{

int i;

cout<<"Program ispisuje sve troznamenkaste brojeve

\ koji su djeljivi sa 7, a zadnja im je znamenka 7."<<endl;

cout<< "Brojevi koji zadovoljavaju uvjet su: "<<endl

for(i=100;i< =999;i+

+) {

if(i%10= =

7) {
if(i%7==0)
{
cout< <i<<endl;
}
}

return 0;}

PRIMJER 67:

Potrebno je ispisati znakove i njihove ASCII vrijednosti.

RJEŠENJE:

#include < iostream > #include<iomanip>


int main()

cout<< "Program ispisuje znakove i njihove ASCII \ vrijednosti."« endl;

int znak,red,stupac;

// Podesavanjepocetnog ASCII znaka od kojeg se zeli prikaz

znak=32;

// Podesavanje broja redaka

for(red=1;red< =45;red+ +)
{

// Podesavanje broja podataka u jednom

redu for(stupac=1;stupac< =5;stupac+ ++)


{

cout<<setw(10)<<znak<<" =

"<<char(znak); znak=znak+1;
}
cout<<endl;

}
return 0;}

PRIMJER 68:

Program računa ukupni otpor otpornika spojenih paralelno.

RJEŠENJE:

#include < iostream > using namespace std;

cout<< "Program racuna ukupni otpor N otpora spojenih u

paralelu" <<endl;

float R,br,Ruk1,Ruk;
using namespace std;
int main()

cout<<"Nakonposljednje vrijednosti otpora unijeti 0"<<endl; br=0;

Ruk1=0;

upis:cout<< "Upisi vrijednost otpora u omima:

"; cin>>R; if(R<0)


{

cout<< "Vrijednost otpora mora biti

>0."<<endl; goto upis;


}

while(R>0)

br=br+1;

Ruk1=Ruk1+1/R;

cout<<"Upisi vrijednost otpora u omima: ";

cin>>R;
}
Ruk=1/Ruk1;
cout<< "Ukupni otpor "<<br<<" otpora spojenih u paralelu je "

<<Ruk<<"

oma."<<endl; return 0;}

PRIMJER 69:
Treba unijeti koeficijente kvadratne jednadžbe, pa ovisno o njihovim vrijednostima izračunati
i ispisati rješenja.

Važno je provjeriti vrijednost koeficijenta a, ako je a = 0, jednadžba nije kvadratna.Treba


provjeriti predznak diskriminante jer on određuje hoće li rješenja kvadratne jednadžbe ax2 +
bx +c = 0 bit realni ili kompleksni brojevi.

RJEŠENJE:

#include < iostream >

#include<cmath>

using namespace std;

int main()
{

float a,b,c,x1,x2,pom 1,xR, xi;


cout<< "Upisi koeficijent a:";
cin>>a;
cout<<"Upisi koeficijent b:";
cin>>b;
cout<< "Upisi koeficijent c:";
cin>>c;

if (a! 0)
=

{
pom 1=b*b-4*a*c;
if (pom1>=0)
x1=(-b+sqrt(pom1))/(2*a);
x2=(-b-sqrt(pom 1))/(2*a);
cout<< "Rješenja su realni brojevi x1 = "
<<x1<<" i x2="<<x2<<endl;

}
else

xR=-b/(2*a);

xi=sqrt(-pom1)/(2*a);

cout<< "Rješenja su kompleksni brojevi:";


cout<<endl<< "z1 = "<<xR<< "+ "<<xi<< "i, z2=" <
<xR< < "- "< <xi<< "i "<<endl;

}
else

cout<<"Ako je koeficijent a=0, jednadžba

nije\ kvadratna"< <endl;


}
return 0;}

PRIMJER 70:
Treba izračunati jakost struje, napon ili otpor prema odabiru korisnika. Za računanje jakosti
struje treba birati 1, za napon 2, a za otpor 3. Ovisno o tome što se želi računati treba unijeti
odgovarajuće podatke.

RJEŠENJE:

case 2:
#include <iostream>
{

using namespace std;

int main ()
{

cout<< "Ohmov zakon"<<endl; cout<<

"Za računanje jakosti struje upisi 1,\ za računanje

napona upisi 2, a za otpor 3: "; int i;

float U,I,R; cin>>i;

switch (i)
{
case 1:

cout<<"U (V) = "; cin>>U;

cout<<"R (om) = "; cin>>R;

I=U/R;

<<" oma, jakost struje iznosi "<<I<< "


A."<<endl;

cout<<"Akoje napon "<<U<<" V, a otpor "<<R

break;
cout<< "I (A) = ";

cin>>I;

cout<<"R (om) = ”; cin>>R;

U=I*R;

cout<<”Ako je jakost struje "<<I<<" A, a otpor "<<R


<<" oma, napon iznosi "<<U<<" V."<<endl;

break;

case 3:

cout<<"U (V) = "; cin>>U; cout<< "I (A) = ";


cin>>I;

R=U/I;

cout<<"Ako je napon "<<U<<" V, a jakost struje


iznosi <<I<<" A, otpor iznosi "<<R<<" oma."<<endl;

break;

default:

cout<<"Pogresan unos. Treba upisati 1, 2 ili 3."<<endl;

return 0;}

PRIMJER 71:

Program na osnovu unesenog rednog broja mjeseca ispisuje koliko taj mjesec ima dana. U
slučaju unosa broja koji nije iz raspona od 1 do 12 treba ispisati upozorenje.
RJEŠENJE:
case 9:
#include < iostream

> using namespace

std; int main()


{

int i;

cout<< " Program na osnovu unesenog rednog broja mjeseca

\ ispisuje koliko taj mjesec ima dana"<<endl;

cout<< "Upisi redni broj mjeseca: ";

cin>>i;

switch (i)
{

case 1: case 3: case 5: case 7: case 8: case 10: case

12:

cout<<i<<". mjesec ima 31 dan."<<endl;

break; case 2:

case 4:
case 11:

cout<<i<< ". mjesec ima 30


dana."<<endl;

break;
default:

cout<<"Pogresan unos. Redni broj mjeseca moze

biti\ iz raspona od 1 do 12."<<endl;


}
return 0;}
PRIMJER 72:
Program na temelju unesenih vrijednosti stranica trokuta računa opseg ili površinu, ovisno o
želji korisnika. Za izračunavanje obima( opsega) upisuje se 1, a za površinu (oplošje) 2.

RJEŠENJE:

#include < iostream >

#include<cmath>

using namespace std;

int main()
{

cout<< "Program na osnovu unesenih vrijednosti stranica

trokuta\ racuna opseg ilipovrsinu, ovisno o zelji korisnika"<<endl; float

a,b,c,o,p,p1,pov; int i;

cout<< "Za izracun opsega upisi 1, a za povrsinu 2: ";


c
in>>i;

ft .
cout<<"a

case 6:
cin>>a;

cout<<"b = "; cin>>b; cout<<"c

= "; cin>>c;

if((a<=0)\\(b<=0)\\(c<=0))
{

cout<<"Vrijednost stranice trokuta ne moze biti

<=0"<<endl; goto kraj;


}
if((a+b<=c)\\(b+c<=a)\\(c+a<=b))

cout« "Unesene vrijednosti nisu stranice trokuta"« endl; goto

kraj;
}
switch(i)

case 1:

o=a+b+c;

cout<<"Opseg trokuta je O= "<<o<<endl; break;

case 2:

cout<<"Povrsina se racunapoHeronovojformuli"«endl;

p=(a+b+c)/2;

p1=p*((p-a)*(p-b)*(p-c));
goto upis;
pov=sqrt(p1);

cout<<"Povrsina trokuta je P= "<<pov<<endl;

break;

default:

cout<<"Pogresan unos. Valja unijeti 1 ili 2!"<<endl;


}
return 0;}
PRIMJER 73:
Program računa ukupni otpor N otpora spojenih paralelno. Nakon posljednje vrijednosti
otpora unosi se 0.

RJEŠENJE:

include < iostream >

using namespace std;

int main()
{

cout<< "Program racuna ukupni otpor N otpora spojenih u

paralelu" <<endl;

float R,br,Ruk1,Ruk;

cout<<"Nakonposljednje vrijednosti otpora unijeti 0"<<endl; br=0;

Ruk1=0;

upis:cout<< "Upisi vrijednost otpora u omima: "; cin>>R; if(R<0)


{
cout<<"Vrijednost otpora mora biti >0."<<endl;
}

while(R>0)

br=br+1;

Ruk1=Ruk1+1/R;

cout<<"Upisi vrijednost otpora u omima:

"; cin>>R;
}

Ruk=1/Ruk1;

cout<< "Ukupni otpor "<<br<<" otpora spojenih u paralelu je "

<<Ruk<<" oma."<<endl; return 0;}

PRIMJER 74:
Treba izračunati ukupni otpor za otpore R1 i R2 ovisno o tome jesu li spojeni serijski ili
paralelno.

RJEŠENJE:

#include < iostream >

using namespace std;

int main()
{

float R, R1,R2; int i;

cout<<"Otpor R1 (u omima):";
cin>>R1;
goto upis;
cout<<"Otpor R2 (u

omima):"; cin>>R2;

cout<< "Za spoj otpora u seriju upisi 1, a za paralelu

2:"; cin>>i;
switch (i)

case 1:

R=R1+R2;

cout<<"Ako se otpori od "<<R1<< " oma i

"<<R2 <<" oma spoje u seriju ukupni je otpor "

<<R<<" oma."<<endl;

break;

case

2:

R=(R1*R2)/(R1+R2);

cout<<"Ako se otpori od "<<R1<< " oma i

"<<R2 <<" oma spoje u paralelu ukupni je otpor

" <<R<<" oma."<<endl;

break;
default:
cout<<"Pogresan unos. Unesi 1 ili 2"<<endl;

}
return 0;}
PRIMJER 75:

Treba izračunati otpor bakrene žice za koju su uneseni duljina l [m] i promjer r[mm].

RJEŠENJE:
#include < iostream >

using namespace std;

int main()
{

float promjer,l,r,s,otpor;

const float PI=3.14;

const float ro=0.0175;

cout<<"Upisipromjer zice (u mm):";

cin>>promjer;

cout<<endl<<"Upisi duljinu zice (u m):";

cin>>l;

//Računanje poprečnog presjeka zice.

r=promjer/2; s=r*r*PI;

//Racunanje otpora otpor=ro*l/s;

cout<<endl<< "Bakrena zica duljine "<<l

<<" m ipresjeka"<<s<<" mm2 ima otpor "<<otpor

<<" oma."<<endl; return 0;}

PRIMJER 76:
Tijelu mase m[kilograma] promijeni se za t [sekundi] brzina sa v1 na v2 [metara/sekundi].
Treba izračunati silu koja je djelovala na tijelo.
Napomene:
Potrebno je izračunati akceleraciju tijela (a=Av/At).
Vrijednost sile računa se po formuli drugog Newtonovog zakona.
F=m•a

RJEŠENJE:

# include < iostream

> using namespace

std; int main()


{

float m,t,v1,v2,a,F;

cout<<"Upisi masu tijela (u kg):";

cin>>m;

cout<<"Upisi vrijeme (u

s):"; cin>>t;

cout<<"Upisipočetnu brzinu (u m/s):";

cin>>v1;

cout<<"Upisi konačnu brzinu (u

m/s):"; cin>>v2;

//Računanje akceleracije.

a=(v2-v1)/t;

//Računanje sile F=m *a;

cout<<endl<< "Na tijelo je djelovala sila od " <<F<< " N. "<<endl;

return 0;}

PRIMJER 77:

Tijelo mase m [kg], pada sa visine h [m] brzinom v [ m/s]. Kolika je ukupna energija tijela?

RJEŠENJE:
#include < iostream >
using namespace std;

int main()
{

const float g=9.81;

float m,h,v,Ep,Ek,Euk;

cout<<"Upisi masu tijela (u kg):";

cin>>m;

cout<<"Upisi visinu (u m):";

cin>>h;

cout<<"Upisi brzinu (u m/s):";

cin>>v;

//Računanje potencijalne energije.

Ep=m*g*h;

//Računanje kinetičke energije

Ek=m *v*v/2;

//Računanje ukupne energije

Euk=Ep+Ek;

cout<<endl<<"Tijelo ima "<<Ek

<<" Jkinetičke energije i "<<Ep

<<" J potencijalne energije, sto daje ukupnu\ energiju od "<<Euk<<"

J."<<endl;

return 0;}

PRIMJER 78:
Na izvor napona U su priključena tri serijski spojena otpornika (R1, R2 i R3). Potrebno je
izračunati ukupni otpor (R), jakost struje (I) i pojedine padove napona na otporima (U1, U2 i
U3).

RJEŠENJE:
#include < iostream >
using namespace std; int
main()
{
float U,R1,R2,R3,R,I;
cout<<"U (V)= "; cin>>U;
cout<<endl<<"R1 (om)=
"; cin>>R1;
cout<<endl<<"R2 (om)=
"; cin>>R2;
cout<<endl<<"R3 (om)=
"; cin>>R3;
R=R1+R2+R3;
I=U/R;
cout<<endl<< "Ukupni otpor R iznosi "<<R<< "
oma."<<endl; cout<<endl<< "Jakost struje I iznosi "<<I<<"
A."<<endl; cout<<endl<<"Padnapona U1 je "<<I*R1<<"
V."<<endl; cout<<"Padnapona U2je "<<I*R2<<"
V."<<endl; cout<<"Padnapona U3je "<<I*R3<<"
V."<<endl; return 0;}

PRIMJER 79:

Na stolici mase Mskilograma sjedi čovjek mase Mckilograma. Koliki je tlak na pod
ako stolica ima četiri noge. Presjek svake od noga je kvadrat sa stranicama X
centimetara.

Napomene:
Potrebno je izračunati težinu stolice i čovjeka

(G = m • g) ; potrebno je deklarirati akceleraciju slobodnog pada kao konstantu (g =


2
9.81 m/s ).
Ukupna površina na koju djeluje sila dobije se zbrajanjem površina poprečnih
presjeka noga stolice.
Površinu izraženu u cm2 treba preračunati u m2.

RJEŠENJE:

#include < iostream

> using namespace

std; int main()


{
float Mc,Ms,Gs, Gc,X,F,S,s1,p;

constfloat g=9.81; //konstanta je izrazena u m/s2

using namespace std;


cout<<"Upisi masu stolice u kg:";

cin>>Ms;

cout<<"Upisi masu covjekau kg:"; cin>>Mc;

cout<<"Unesi vrijednost stranice kvadrata u cm:";

cin>>X;

//Računa se tezina čovjeka i stolice

Gs=Ms*g;

Gc=Mc*g;

F=Gs+Gc; //ukupna sila koja djeluje na pod //Racuna

se povrsina

s1=X*X; //povrsina presjeka jedne noge stolice

S=4*s1; //ukupnapovrsina na koju djeluje sila

S=S/10000; //pretvorba cm2 u m2

p=F/S; //tlak upaskalima

cout<<"Tlak kojim čovjek mase "<<Mc

<<" kg, koji sjedi na stolici mase "<<Ms

<< " kg, djeluje na pod je "<<p<< " paskala"<<endl;

return 0;}

PRIMJER 80:
Poluprečnik(polumjer) Zemlje je 6370 [ km]. Za koje će vrijeme avion obletjeti Zemlju ako
leti na visini odh kilometara brzinom v [ km/h].

RJEŠENJE:

#include < iostream >


int main()

float h,v, Ruk,O,vrijeme;

const float R=6370; //konstanta je izrazena u km

const float PI=3.14;

cout<<"Upisi visinu na kojoj leti avion (u km):";

cin>>h;

cout<<"Upisi brzinu kojom leti avion (u km/h):";

cin>>v;

//Računanje puta (opseg kruga)

Ruk=R+h; //zbroj polumjera Zemlje i visine

O=2*Ruk*PI;

vrijeme=O/v; //t=s/v, jednoliko gibanje cout<<"Avion

koji leti brzinom "<<v <<"km/h, na visini od "<<h

<<" km obletjet ce Zemlju za "«vrijeme <<"

sati."<<endl; return 0;}

PRIMJER 81:

Treba izračunati snagu P koju mora imati električno kuhalo koje za t[ minuta] može vodu
mase m[grama] zagrijati od temperature temp1 do temperature temp2[°C]).

RJEŠENJE:

#include < iostream >


{

float tmin,m,temp1,temp2,ts,DT,M,Q,P;
const float c=4186; //konstanta je izrazena u J/(kg*K)

using namespace std;


cout<<"Upisi vrijeme (u min):"; cin>>tmin;

cout<<"Upisi masu vode (ugr):";


cin>>m;

cout<<"Upisipočetnu temperaturu (u °C):";

cin>>temp1;

cout<<"Upisi konačnu temperaturu (u °C):";

cin>>temp2;

DT=temp2-temp1;

ts=tmin*60; //vrijeme treba pretvoriti u sekunde

M=m/1000; //masu treba pretvoriti u kg

Q=M*c*DT; //računa se toplinska energija

P=Q/ts; //računa se snaga

cout<< "Električno kuhalo koje za "<<tmin

<<" min moze "<<m<< "grama vode zagrijati sa "


<<temp1<< "°C na "<<temp2<< "°C ima snagu od “ <<P<< " vata."<<endl;
return 0;}
PRIMJER 82:
Treba izračunati koliko bi vremena bilo potrebno zvuku da prevali razmak između dva mjesta
ako taj isti razmak svjetlost prevali za t sekundi.
Napomene:
Potrebno je deklarirati brzinu svjetlosti c=3e+8 [m/s ] i brzinu zvuka v=340 [m/s]
kao konstante.
Put je isti,a kretanje(gibanje) je jednoliko.
RJEŠENJE:
int main()
#include < iostream
> using namespace
std; int main()
{

float t,s,tz;
const float c=3e+8; //brzina svjetlosti izrazena u m/s
const float v=340; //brzina zvuka izrazena u m/s
cout<<"Upisi vrijeme (u sek):"; cin>>t;
//racunanje
puta
s=c*t;
tz=s/v;
cout<<"Svjetlostprevali razmak izmedju dva mjesta\
za "<<t<< " s, a zvuk je sporiji pa mu za isti\ razmak treba
"<<tz<< " sekundi."« endl; return 0;}

Nizovi
NIZOVI
Pprimjeri C++ , III-i dio

Sretno sa programiranjem,

Primjer 1:Napisati program koji ispisuje članove niza.

RJEŠENJE:

//Ispisuje na ekran članove niza #include <cstdlib>

#include <iostream>

using namespace

std; int main()


{
int i,N;
int X[100]; /*deklaracija niza od 100 cijelih brojeva*/
cout<<"Unesi članove 0<N<100 = "; /*broj N mora biti manji od 100 jer je deklariran niz
od maksimalno 100 članova*/
cin >>N;

for (i=0;i<N;i++) /*upis članova niza*/


{

cin>>X[i]; /*upis i-tog člana niza*/

}
cout<<" Unijli ste ove članove :"<<endl;
for (i=0;i<N;i++) /*ispis članova niza for petljom*/
{

cout << X[i]; /*ispis i- tog člana niza*/

cout <<endl; /*ispis praznog retka (end line)*/


}

return 0;
}

EKRAN:

Unesi članove 0<N<100 =5

12 3

76

45

Unijli ste ove članove :

12

76
45

Primjer 2:Napisati program koji ispisuje unijete znakove i duljinu(broj) znakova.

RJEŠENJE:

#include <cstdlib>

#include <iostream>

#include <string>

using namespace

std; int main()


{

char a[80]; int i=0;

printf("Upisite niz znakova: ");

gets(a);

while (a[i+1]!='\0')
i++;

printf("Upisali ste niz: ");

puts(a);

printf("Duljina mu je %d znakova",i+1);

return 0;
}

EKRAN:

Upisite niz znakova: zt3 J65re 98d

Upisali ste niz: zt3 J65re 98d


Duljina mu je 13 znakova

Primjer 3:Napisati program koji ispisuje najmanji član unijetog niza.

RJEŠENJE:

#inčlude <čstdlib>

#inčlude <iostream>

using namespače std;

int main()
{

int polje[100]; int N,i, j, min;

čout<<"Unesi broj članova N:"; čin>>N;

for(i = 0; i < N; i++){

čout<< "\nUnesite polje[" << i << "] = ";

čin>> polj e[i];


}

min=polje[0];

// traženje najmanjeg for(i = 0; i < N; i++) if(polje [i] < min){ min =

polje[i];
}

čout<< "\n Najmanji član niza je: "<<min;

return 0;
}

EKRAN:

Unesi broj članova N:5

Unesite polje[0] = 45

Unesite polje[1] = 3

Unesite polje[2] = 12

Unesite polje[3] = 7

Unesite polje[4] = 98

Najmanji član niza je : 3

Primjer ¥:Napisati program koji ispisuje neparne članove ,a u drugi red parne članove
unijetog niza.

RJEŠENJE:

// Ispisuje prvo parne, a u naredni red neparne brojeve za N unesenih, par_nep.čpp

#inčlude <iostream> using namespače std; int main()


{

int niz[100],N; čout<<"Unesi N : "; čin>>N;

for(int i=0; i<N; i++) čin>>niz[i];

čout<<“Parni članovi : „; for(int i=0; i<N; i++)


{
// ispisuje prvo parne

if(niz[i]%2==0)

čout<<niz[i]<<" ";
}

čout<<endl; // pomjeramo kursor u naredni red

čout<<“ Neparni članovi : „; for(int i=0; i<N;

i++)
{

// sada ispisujemo neparne if(niz[i]%2!=0)

čout<<niz[i]<<" ";
}

čout<<endl; system("pause"); return 0;


}

EKRAN:

Unesi N :7

2 35 6 8 7

11
Parni članovi : 2 6 8
Neparni članovi : 35 7 9 11

Primjer 5:Napisati program koji ispisuje svaki P-i (i-i) član niza.

RJEŠENJE:

// Ispisuje svaki P-i broj #inčlude <iostream> using namespače std;

int main()
{

int niz[100],N,P;

čout<<"Upisi broj članova N = : "; čin>>N;

čout<<"Zelim ispisati svaki P = : "; čin>>P;

čout<<"Sada upisi članove : "<<endl;

for(int i=0; i<N; i++)

čin>>niz[i];

čout<<"Svaki "<< P << "-i član je : "<<endl; for(int i=P-1; i<N;

i=i+P) čout<<niz[i]<<" "; čout<<endl; return 0;


}
EKRAN:
Upisi broj članova N :7
Zelim ispisati svaki P = : 3

Sada upisi članove :

13

55

123

17

20

Svaki 3-i član je : 55 17

Primjer 6:Napisati program koji ispisuje članove djeljive sa 5,a u drugi red članove djeljive
sa 3.

RJEŠENJE:

// Ispisuje članove djeljive sa 5, a u naredni red djeljive sa 3 #inčlude <iostream> using

namespače std; int main()


{

int niz[100],N; čout<<"Unesi N : "; čin>>N;

for(int i=0; i<N; i++) čin>>niz[i];

čout<<"Clanovi djeljivi sa 5 : ";


for(int i=0; i<N; i++)
{

// ispisuje članove djeljive sa 5

if(niz[i]%5==0) čout<<niz[i]<<" ";


}

čout<<endl; // pomjeramo kursor u naredni red

čout<<" Članovi djeljivi sa 3 : "; for(int i=0;

i<N; i++)
{

// sada ispisujemo članove djeljive sa 3

if(niz[i]%3==0)

čout<<niz[i]<<" ";
}

čout<<endl; system("pause"); return 0;


}

EKRAN:

Unesi N: 8

24

35

68

11
15 100
87

Članovi djeljivi sa 5 : 35 15 100

Članovi djeljivi sa 3 : 24 9 15 87

Primjer 7:Napisati program koji ispisuje članove N djeljive sa P .

RJEŠENJE:

//Ispisuje članove N koji su djeljivi sa P.

#inčlude <iostream>

using namespače std;

int main()
{

int polje[100]; int N,i, j, P;

čout<<"Unesi broj članova N:"; čin>>N;

for(i = 0; i <N; i++){

čout<< "\nUnesite polje[" << i << "] = ";

čin>> polj e[i];


}

čout<<endl;

čout<< "\nUnesite djelilač :"; čin>>P;

čout<<"Cllanovi djeljivi sa "<<P<<" .... ";


for(i = 0; i < N; i++)
{

if

(polje[i]%P==0)

čout<<polje[i]<<" ";
}
return 0;
}

EKRAN:

Unesi broj članova N: 7

Unesite polje[0] = 5

Unesite polje[1] = 12

Unesite polje[2] = 33

Unesite polje[3] = 59

Unesite polje[4] = 28

Unesite polje[5] = 105

Unesite polje[6] = 16

Unesite djelilač : 4

Članovi djeljivi sa 4 .... 12 28 16

Primjer S:Napisati program koji ispisuje sumu (zbir) svakog P-g (i-g ) člana niza.

RJEŠENJE:

// Ispisuje svaki P-i broj

#inčlude <iostream>

using namespače std;


int main()
{

int niz[100],N,P,s=0; cout<<"Upisi

broj članova N = : "; cin>>N;

cout<<"Zelim sabrati svaki P = : "; cin>>P;

cout<<"Sada upisi članove : "<<endl; for(int

i=0; i<N; i++) cin>>niz[i];

cout<<"Zbir svakog "<< P << "-g člana je : ";

for(int i=P-1; i<N; i=i+P)


}

{s=s+niz[i];} cout<<s<<" "; return 0;

EKRAN:

Upisi broj članova N :10 Zelim ispisati svaki

P = : 3 Sada upisi članove :

36

14

12

20
14 100

53

Zbir svakog 3-g člana je : 121

Primjer 9:Napisati program koji ispisuje sumu članova N djeljivi sa P .

RJEŠENJE:

//Ispisuje sumu članova N koji su djeljivi sa P.

#inčlude <iostream>

using namespače

std; int main()


{

int polje[100]; int N,i, j,s=0, P;

čout<<"Unesi broj članova N:"; čin>>N;

for(i = 0; i <N; i++){

čout<< "\nUnesite polje[" << i << "] = ";

čin>> polje[i];
}

čout<<endl;

čout<< "\nUnesite djelilač :"; čin>>P;

for(i = 0; i < N; i++) {


if (polje[i]%P==0) s=s+polje[i];

}
čout<<" Suma djeljivih sa "<<P<<" ..... "<<s;
return 0;
}

EKRAN:

Unesi broj članova N: 6

Unesite polje[0] = 2

Unesite polje[1] = 3

Unesite polje[2] = 6

Unesite polje[3] = 7

Unesite polje[4] = 40

Unesite polje[5] = 12

Unesite djelilač : 3 Suma

djeljivih sa 3 ............. 21

Primjer 70:Napisati program koji ispisuje aritmetičku sredinu susjednih članova niza.

RJEŠENJE:

// Aritmetička sredina susjeda,

aritmetička.čpp #inčlude <iostream> using

namespače std; int main()


{

float niz[100],N;
cout<<"Unesi N: ";

cin>>N;

for(int i=0; i<N; i++)

cin>>niz[i];

for(int i=0; i<N-1; i++)

cout<<((niz[i]+niz[i+1]))/2<<" ";

cout<<endl;

return 0;
}

EKRAN:

Unesi N: 6 8 2 11 6 15 25

5 6.5 8.5 10.5 20

Primjer 77:Napisati program koji ispisuje kumulativnu sumu članova niza.

RJEŠENJE:

// Kumulativna suma, suma.čpp #inčlude<čstdlib>

#inčlude <iostream> using namespace std;


int main()

int i,N,X[100]; int

suma = 0;

cout<<"Unesi N:

"; cin>>N;

for( i=0; i<N; i++)

cin>>X[i];

cout<<"Kumulativna suma : ";

for(int i=0; i<N; i++)


{

suma = suma + X[i];

cout<<suma<<" ";
}

cout<<endl; return 0;
}

EKRAN:

Unesi N:6

2 12 7 19

22
Kumulativna suma : 3 7 19 26 45 67

Primjer 72:Napisati program koji ispisuje kvadrate članova niza.

RJEŠENJE:

// Ispisuje kvadrate za N unesenih brojeva, kvadrati.cpp #include

<iostream> using namespace std; int main()


{

int niz[100],N; cout<<"Unesi N: "; cin>>N;

for(int i=0; i<N; i++) cin>>niz[i];

cout<<"Kvadrati članova :"<<endl; for(int i=0; i<N; i++)

cout<<niz[i]*niz[i]<<" "; cout<<endl; return 0;


}

EKRAN:

Unesi N: 5 2 3

6
12

Kvadrati članova :

4 9 36 144 25

Primjer 13: Napisati program koji ispisuje kvadrate za svaki treći član niza.

RJEŠENJE:

// Ispisuje kvadrate za svaki treći uneseni broj #include <iostream> using

namespace std; int main()


{

int niz[100],N; cout<<"Unesi N: "; cin>>N;

for(int i=1; i<N+1; i++) cin>>niz[i];

for(int i=1; i<N+1; i++) if (i%3==0)

cout<<niz[i]*niz[i]<<" "; cout<<endl; system("pause"); return 0;


}

EKRAN:
Unesi N: 9

7 36 81

Primjer 14: Napisati program koji ispisuje sumu članova niza.

RJEŠENJE:

// Ispisuje sumu članova niza, zbir brojeva.cpp

#include <iostream> using namespace std; int

main()
{

int niz[100],i,N,s=0;

cout<<"Unesi N: ";

cin>>N;

for(int i=1; i<N+1; i++)

cin>>niz[i];

for(int i=1; i<N+1; i++)


s=s+niz[i];

cout<<" Suma svih članova je S = "<<s<<endl;

return 0;
}

EKRAN:

Unesi N: 5 12 4 7 18 2

Suma svih članova je S = 43

Primjer 15: Napisati program koji ispisuje sumu članova N koji su djeljivi sa P.

RJEŠENJE:

//Ispisuje sumu članova N koji su djeljivi sa P.

#inčlude <iostream>

using namespače std;

int main()
{

int polje[100]; int N,i, j,s=0, P;

čout<<"Unesi broj članova N:"; čin>>N;

for(i = 0; i <N; i++){

cout<< "\nUnesite polje[M << i << "] =

"; cin>> polj e[i];


}

cout<<endl;

cout<< "\nUnesite djelilac :"; cin>>P;

for(i = 0; i < N; i++)


{

if (polje[i]%P==0)

s=s+polje[i];
}

cout<<" Suma djeljivih sa "<<P<<" ..... "<<s;


return 0;
}

EKRAN:

Unesi broj članova

N:6 Unesite polje[0]

=23 Unesite polje[1]

=8 Unesite polje[2] =3

Unesite polje[3] =45

Unesite polje[4] =122

Unesite polje[5] =16

Unesite dj elilac :4
Suma djeljivih sa 4 .... 24
Primjer 16: Napisati program koji Ispisuje sumu kvadrata članova N koji su djeljivi sa P.

RJEŠENJE:

//Ispisuje sumu kvadrata članova N koji su djeljivi sa P.

#include <iostream>

using namespace

std; int main()


{

int polje[100]; int N,i, j,s=0, P;

cout<<"Unesi broj clanova N:"; cin>>N;

for(i = 0; i <N; i++){

cout<< "\nUnesite polje[" << i << "] = ";

cin>> polje[i];
}

cout<<endl;

cout<< "\nUnesite djelilac :"; cin>>P;

for(i = 0; i < N; i++)


{

if (polje[i]%P==0)

s=s+polje[i]*polje[i]

;
}

cout<<" Suma kvadrata djeljivih sa "<<P<< <<s;


return 0;

EKRAN:

Unesi broj clanova N:6

Unesite polje[0] = 29

Unesite polje[1] = 3

Unesite polje[2] = 55

Unesite polje[3] = 200

Unesite polje[4] = 12

Unesite polje[5] = 91

Unesite djelilac :3

Suma kvadrata djeljivih sa 3 .... 153

Primjer 17:Napisati program koji saopštava parnost članova niza

unatraške. RJEŠENJE:

// Saopstava parnost unatraske, parnost.cpp

#include <iostream> using namespace std;

int main()
{

int niz[100],i,N; cout<<"Unesi N: ";

cin>>N;

for(int i=0; i<N; i++) cin>>niz[i];

cout<<"Parnost unatrag :"<<endl; for(int i=N-1;

i>=0; i--)
{

if(niz[i]%2==0) cout<<"par "; else


cout<<"nep ";
}

cout<<endl; return 0;
}

EKRAN:

Unesi N:5 12 8 5

37

24

Parnost unatrag : par nep nep par par

Primjer 18: Napisati program koji provjerava mijenjanje vrijednosti članniza


(pada/raste/isto).

RJEŠENJE:
// Provjerava mijenjanje vrijednosti, mijenjanje. cpp #include <iostream>
using namespace std; int main()
{

int niz[100],N,i;

cout<<"Unesi brojeve 0<N<100: "; cin>>N;

for(int i=0; i<N; i++) cin>>niz[i];

for(int i=N-1; i>0; i--) // provjeravamo unatraske


{

if(niz[i]<niz[i-1]) cout<<"raste "; else

if(niz[i]==niz[i-1]) cout<<"isto "; else

cout<<"pada ";
}

/* ovdje je [i-1] jer provjeravamo unatraske izmedju clana [i] i onog prije njega [i-1]. */

return 0;
}

EKRAN:

Unesi brojeve 0<N<100: 6

7 12
9

26

pada raste raste pada pada

Primjer 79:Napisati program koji sortira unijeti niz članova u opadajući niz.

RJEŠENJE:

#include <iostream>

using namespace std;

int main ()
{

// DEKLARACIJA int x[100]; int y[100]; int i, j, N;

// UNOŠENJE

cout << "Unesite broj članova polja 0<N<100: "; cin >> N;

for (i = 0; i < N; i++)


{

cout << "Unesite član br. " << i << ": "; cin >> x[i]; y[i] = x[i];
} // SORTIRANJE
for (i = 0; i < N-1; i++)

{
for (j = i+1; j < N; j++)
{

if ( [i]
y < yU]) swap(y[i],y[j]);

// ŠTAMPANJE

cout << "x:" << '\t' << "y:" <<

endl; for (i = 0; i < N; i++)


{

cout << x[i] << '\t' << y[i] << endl;


}

EKRAN:

Unesite broj članova polja 0<N<100: 5

Unesite član br. 0: 4 Unesite član br. 1:

12 Unesite član br. 2: 3 Unesite član

br. 3: 19 Unesite član br. 4: 46 X:

y:

4 46

12 19
3 12
19 4
46 3

RJEŠENJE:
Primjer 20:Unesi niz od N cijelih brojeva te ispiši sortiran niz od najmanjeg(min) do
najvećeg(max).
#include
<cstdlib>
#include <iostream>
using namespace std;
int main()
{
int A[100]; int N,i, j,
temp; cout<<"Unesi
N:"; cin>>N;
for(i = 0; i < N; i++){
cout<< "\nUnesite polje[" << i << "] = ";
cin>> A[i];
}
// sortiranje niza (od najmanjeg do najvećeg)
for(i = 0; i < N-1; i++)
for(j = i+1; j < N; j++)
if(A [i] > A[j]){
temp = A[i];
A[i] = A[j];
A[j] = temp;
}

for(i = 0; i<N; i++)


cout<< A[i] << "\n";
system ("PAUSE");
return 0;
}

EKRAN:

Unesi N : 6 Unesite

polje[0] = 12 Unesite

polje[1] = 3 Unesite

polje[2] = 165 Unesite

polje[3] = 53 Unesite

polje[4] = 7
Unesite polje[5] = 25

12

25

53

165

Primjer 21: Ispisuje proizvod članova na parnim i proizvod članova na nepernim mjestima
tj.svakog trećeg člana niza (prvi*treći,drugi*četvrti,treći*peti...)

RJEŠENJE:

#include <iostream>

using namespace std;

int main()
{

int niz[100],N; cout<<"Unesi N : "; cin>>N;

for(int i=0; i<N; i++)

cin>>niz[i];

for(int i=0; i<N-2; i++)

cout<<niz[i+2]*niz[i]<<" ";

cout<<endl;

return 0;
}

EKRAN:

5 11 2
Unesi N: 7

3 15

18 55 12 44 30

Primjer 22: Ispisuje proizvod susjednih članova niza.

RJEŠENJE:

//Ispisuje proizvod susjednih članova niza #include

<iostream> using namespace std; int main()


{

int niz[100],N; cout<<"Unesi N : "; cin>>N;

for(int i=0; i<N; i++) cin>>niz[i];

cout<<"Proizvod susjednih članova :"<<endl; for(int

i=0; i<N-1; i++)


{
cout<<(niz[i]*niz[i+1])<<" ";

cout<<endl; return 0;
}

EKRAN:
Unesi N : 6 2

12

Proizvod susjednih clanova :

10 15 36 48 24

Primjer 23: Ispisuje sumu-zbir članova niza.

RJEŠENJE:

#include <cstdlib>

#include <iostream>

using namespace std;

int main()
{

int i,N, broj,s=0;


cout <<"Unesi N : ";
cin>>N;

i=1; /*postavljanje varijable i na vrijednost 1 */

while (i<=N) /* petlja se vrti dok je varijabla i<=N */


{
cout <<"\n Unesi "<<i<<". broj = ";

cin >> broj; /* unos broja */

s=s+broj; /* pribrajanje unesenog broja varijabli s(suma)*/


i=i+1; /*povećavanje kontrolne varijable za 1 te vraćanje na ispitivanje
uvjeta u while*/

}
cout<<"\n Zbir unesenih brojeva je "<<s<<"\n";

return 0;
}

EKRAN:

Unesi N : 4

Unesi 1. broj = 34

Unesi 2. broj = 12

Unesi 3. broj = 8

Unesi 4. broj = 23

Zbir unesenih brojeva je 77

Primjer 24: Napisati program koji Ispisuje sumu i aritmetičku sredinu članova niza.

RJEŠENJE:

//Ispisuje sumu i aritmetičku sredinu unijetih članova niza.


#include <iostream>
using namespace std;

int main () {

int broj,N,suma=0;

float asred; cout<<"

Upisi N : "; cin>>N;

for (int i=1;i<=N;i++){

cout<<i<< ".broj:";

cin>>broj;

suma+=broj;
};

asred=(float)suma/N;

cout<<"suma="<<suma<<endl;

cout<<"a.sredina="<<asred<<endl

; return 0;
}

EKRAN:

Upisi N : 6

1. broj:12

2. broj:7

3. broj:23

4. broj:9

5. broj:4

6. broj:35

suma=90
a.sredina=15

Primjer 25: Napisati program koji Ispisuje članove niza N koji su djeljivi sa P.

RJEŠENJE:

#include <cstdlib>

#include <iostream>

using namespace

std; int main()


{

int polje[100]; int N,i, j, P;

cout<<"Unesi broj članova N:"; cin>>N;

for(i = 0; i <N; i++){

cout<< "\nUnesite polje[" << i << "] = ";

cin>> polj e[i];


}

cout<<endl;

cout<< "\nUnesite djelilac :"; cin>>P;

for(i = 0; i < N; i++)


{

if (polje[i]%P==0)
cout<<"\n Članovi djeljivi sa "<<P<<" ..... " <<polje[i];
}
return 0;

}
EKRAN:
Unesi broj i N:6
članova
Unesite polje[0] = 23

Unesite polje[1] = 12

Unesite polje[2] = 70

Unesite polje[3] = 47

Unesite polje42] = 135

Unesite polje[3] = 91

Unesite djelilac :5

Clanovi djeljivi sa 5 .... 70

Clanovi djeljivi sa 5 .... 135

Primjer 26: Napisati program koji Ispisuje najmanji (min) i najveći (max) član niza.

RJEŠENJE:

#include <cstdlib>

#include <iostream>

using namespace std;

int main()
{

int polje[100]; int N,i, j, min,max; cout<<"Unesi broj članova N:";

cin>>N;
for(i = 0; i < N; i++){

cout<< "\nUnesite polje[M << i << "] = ";

cin>> polj e[i];


}

min=polje[0];

// traženje najmanjeg for(i = 0; i < N;

i++) if(polje [i] < min){ min = polje[i];


}

max=polje[0];

// traženje najvećeg for(i = 0; i < N; i++)


if( olje [i]
p > max){ max = polj e[i];
}

cout<< "\n Najmanji clan je: "<<min;

cout<< "\n Najveći clan je: "<<max;

return 0;
}

EKRAN:

Unesi broj članova N:6 Unesite polje[0]

= 23 Unesite polje[1] = 2
Unesite polje[2] = 55
Unesite polje[3] = 47

Unesite polje[4] = 194

Unesite polje[5] = 8

Najmanji clan je: 2

Najveći član je: 194

Primjer 27: Napisati program koji Ispisuje najveći (max) član niza i njegovu poziciju(redni
broj) u nizu.

RJEŠENJE:

#include <iostream>

using namespace std;

int main () {

int n=0, a[100];

char dn;

do {

cout << "Unesite " << n+1 << "-ti broj: ";

cin >> a[n++];

cout << "Zelite li unijeti jos brojeva (d/n)? ";

cin >> dn;

} while (dn=='d'); int

max=a[0],pmax=0; for

(int i=1;i<n;i++)

if (a[i]>max) {

max=a[i];

pmax=i;
}
cout << "Najveci broj u polju je broj " << max << " na poziciji " << pmax+1 <<
endl;
return 0;
}

EKRAN:

Unesite 1-i broj: 23

Zelite li unijeti jos brojeva (d/n)? d

Unesite 2-i broj: 7

Zelite li unijeti jos brojeva (d/n)? d

Unesite 3-i broj: 264

Zelite li unijeti jos brojeva (d/n)? d

Unesite 4-i broj: 105

Zelite li unijeti jos brojeva (d/n)? n

Najveci broj u polju je broj 264 na poziciji 3

Primjer 28: Napisati program koji sortira polja.

RJEŠENJE:

//Jednostavno sortiranje polja:

#include <iostream>

using namespace std;

int main () {

int n=0, a[100],pom; char dn; do {

cout << "Unesite " << n+1 << "-i broj: ";

cin >> a[n++];


cout << "Zelite li unijeti jos brojeva (d/n)?

"; cin >> dn;

} while (dn=='d'); for

(int i=0;i<n-1;i++)

for (int j=i+1;j<n;j++)

if (a[i]>a[j])

pom=a[i];

a[i]=a[j];

a[j]=pom;
}

for (int i=0;i<n;i++) cout << a[i] <<

endl; return 0;
}

Primjer 29: Napisati program za ispis članova matrice.

RJEŠENJE:

#include <iostream>

using namespace std;

int main() {

int i, j, x, y, **matrica; // definirajmo brojače, veličinu polja, i matricu

cout << "x: "; //upisimo dimenzije cin > > x; cout << "y: "; cin >>

y;

matrica=new int*[y]; // napravimo polje dimenzije y...

for (i=0; i<y; i++) {// i onda u svakom njegovom elementu


matrica[i]=new int[x]; // napravimo polje dimenzije x for

(j=0; j<x; j++) {// i mozemo upisati element tog polja cout

<< "[" << i << "][" << j << "]: "; cin >> matrica[i][j]; //

upisati vrijednost
}

return 0;

Primjer 30: Napisati program koji ispisuje najveći(max) član upisane matrice.

RJEŠENJE:

//Ispisuje najveći član poznate matrice

#include <iostream>

using namespace std;

const int redovi = 3;

const int kolone = 4;

int godDobTemp[redovi][kolone] = {

{26, 34, 22, 17},

{24, 32, 49, 13},

{28, 38, 25, 20}


};
int najvecaTemp (int temp[redovi][kolone])
{
int najveca = 0;
for (int i = 0; i < redovi; ++i)

for (int j = 0; j < kolone; ++j) if (temp[i][j] >

najveca) najveca = temp[i][j]; return najveca;


}
main ()

Cout<<“Najveci(max) clan je .... „;

cout << najvecaTemp(godDobTemp) << "\n";

return 0;
}

EKRAN:
Najveci(max) clan je .... 49

Primjer 31: Napisati program koji ispisuje najveći(max) član matrice.

RJEŠENJE:

#include <iostream>

#define dim 10 using namespace std; main()


{

int n,a[dim][dim],max=0;
cout << "Unesi broj kolona i redova N = ";

cin >> n;
for (int i=1; i<=n; i++) for (int j=1;j<=n;

j++)
{

cout <<"a["<<i<<M,"<<j<<"]="; cin

>>a[i][j]; if (a[i][j]>max) max=a[i][j];


}

cout<<MNajveci clan je :

"<<max<<endl; system ("pause"); return

0;
}

Primjer 32: Napisati program koji ispisuje članove pomnožene sa najvećim članom upisane
matrice.

RJEŠENJE:

#include <iostream>

#define dim 10

using namespace std;

main()
{

int n,a[dim][dim],b[dim][dim],max=0;

cout << "Unesi redova i kolona N =";

cin >> n;

for (int i=1; i<=n; i++) for (int j=1;j<=n;

j++)
{
cout <<"a["<<i<<","<<j<<"]="; cin

>>a[i][j]; if (a[i][j]>max) max=a[i][j];

b[i][j]=max*a[i][j];
}

cout<<" Matrica ciji su članovi pomnoženi sa max = : "<<max<<endl;

for (int i=1; i<=n; i++) for (int j=1;j<=n; j++)

cout

<<"b["<<i<<","<<j<<"]="<<max*a[i][j]<<endl;

system ("pause"); return 0;


}

Primjer 33: Napisati program koji ispisuje sumu(zbir)članova u redu ,a zatim proizvod
članova u koloni upisane matrice.

RJEŠENJE:

#include <iostream.h>

#define max 10

main ()
{

int matrica[max][max], suma[max], proizvod[max]; int n,s=0,p=1;

cout << "Unesi br.kolona i redova n=";

cin >> n;
for (int i=1; i<=max; i++)
{

suma[i]=0;
proizvod[i]=1;
}

for (int i=1; i<=n; i++) for (int j=1; j<=n;

j++)
{

cout <<"Mat["<<i<<","<<j<<"]="; cin >>

matrica[i][j]; suma[j]+=matrica[i][j];

proizvod[i]*=matrica[i][j ];
}

cout<<" Suma reda matrice :";

cout<<endl;

for (int i=1; i<=n; i++)

cout<<"Suma["<<i<<"]="<<suma[i]<<endl;

cout<<" Proizvod kolone matrice :";

cout<<endl;

for (int i=1; i<=n; i++)

cout<<"Proizvod["<<i<<"]="<<proizvod[i]<<endl;

return 0;
}

Primjer 34: Napisati program za unos dvije matrice i ispis matrice koja je jednaka njihovom
zbiru(sumi) .
RJEŠENJE: #include <iostream>

#define dim 10 using

namespace std; main()


{

int n,a[dim][dim],b[dim][dim],c[dim][dim];

cout << "Unesi broj redova i kolona N = ";

cin >> n;

cout<<" Unesi clanove matrice A: "<<endl;

for (int i=1; i<=n; i++) for (int j=1;j<=n;

j++)
{

cout <<"a["<<i<<","<<j<<"]="; cin >>a[i][j];

cout<<" Sada unesi clanove matrice B: "<<endl;

for (int i=1; i<=n; i++) for (int j=1;j<=n; j++)

cout <<"b["<<i<<","<<j<<"]=";

cin >>b[i][j];
c[i][j]=a[i][j]+b[i][j];
}

cout<<" Zbir ove dvije matrice je matrica C: "<<endl;

for (int i=1; i<=n; i++) for (int j=1;j<=n; j++)

cout

<<"c["<<i<<","<<j<<"]="<<a[i][j]+b[i][j]<<endl;

system ("pause"); return 0;


}

Primjer 35: Napisati program za ispis članova matrice koji su proizvod istoimenih članova
dvije matrice (c[1,0]=a[1,0]*b[1,0]... ).

RJEŠENJE:

#include <iostream>

#define dim 10

using namespace std;

main()
{

int n,a[dim][dim],b[dim][dim],c[dim][dim]; cout <<

"Unesi broj redova i kolona N = "; cin >> n;

cout<<" Unesi clanove matrice A: "<<endl; for (int

i=1; i<=n; i++) for (int j=1;j<=n; j++)


{

cout <<"a["<<i<<","<<j<<"]=";
cin >>a[i][j];

cout<<" Sada unesi clanove matrice B: "<<endl;

for (int i=1; i<=n; i++) for (int j=1;j<=n; j++)

cout <<"b["<<i<<","<<j<<"]="; cin >>b[i][j];

c[i][j]=a[i][j]*b[i][j];
}

cout<<" Proizvod istoimenih clanova je matrica C: "<<endl;

for (int i=1; i<=n; i++) for (int j=1;j<=n; j++)

cout

<<"c["<<i<<","<<j<<"]="<<a[i][j]*b[i][j]<<endl;

system ("pause"); return 0;


}

Primjer 36: Napisati program za množenje matrice

vektorom. RJEŠENJE:

//Množenje matrice vektorom.

#include <iostream>
using namespace std;

int main () {

// Unos

int m,n, a[30][30], x[30], b[30];

cout << "Unesite broj kolona u matrici: ";

cin >> m;

cout << "Unesite broj redova matrice: ";

cin >> n;

for (int i=0; i<n; i++)

for (int j=0; j<m; j++) {

cout << "Unesite a(" << i << "," << j << "):

"; cin >> a[i][j];


}

cout << endl;

for (int i=0; i<m; i++) {

cout << "Unesite x(" << i <<

")"; cin >> x[i];


}

// Racunanje

for (int i=0; i<n; i++) b[i]=0; for (int

i=0;i<n; i++)

for (int j=0; j<m; j++)

b[i]+=a[i][j];

// Ispis cout << endl;


for (int i=0;i<n;i++)

cout << b[i] << endl;

return 0;
}

Primjer 37: Napisati program za sumu (zbir) tri matrice.

RJEŠENJE:

#include <iostream>

#define dim 10 using namespace std; main()


{

int

n,a[dim][dim],b[dim][dim],c[dim][dim],d[dim][dim];

cout << "Unesi broj redova i kolona N = "; cin >> n;

cout<<" Unesi clanove matrice A: "<<endl; for (int i=1;

i<=n; i++) for (int j=1;j<=n; j++)


{

cout <<"a["<<i<<","<<j<<"]="; cin >>a[i][j];

cout<<" Unesi clanove matrice B: "<<endl;


for (int i=1; i<=n; i++)
for (int j=1;j<=n; j++)
{

cout <<"b["<<i<<","<<j<<"]=";

cin >>b[i][j];

cout<<" Unesi clanove matrice C: "<<endl;

for (int i=1; i<=n; i++) for (int j=1;j<=n;

j++)

cout <<"c["<<i<<","<<j<<"]="; cin >>c[i][j];

d[i][j]=a[i][j]+b[i][j]+c[i][j];
}

cout<<" Suma ove tri matrice je matrica D: "<<endl;

for (int i=1; i<=n; i++) for (int j=1;j<=n; j++)

cout

<<"d["<<i<<","<<j<<"]="<<a[i][j]+b[i][j]+c[i][j]<<endl;

system ("pause"); return 0;

}
Primjer 38: Napisati program za unos imena i prezimena.

RJEŠENJE:

//Unos imena i prezimena:

#include <iostream>

using namespace

std; int main () {

char ime[40], adresa [50]; int

starost;

cout << "Upisite ime i prezime: ";

cin.getline(ime,sizeof(ime));

cout << "Upisite svoju starost: ";

cin >> starost;

cout << "Upisite adresu: ";

cin.getline(adresa,sizeof(adresa));

cin.getline(adresa,sizeof(adresa));

cout << endl << ime << endl << starost << " godina" << endl << adresa << endl;

return 0;
!

Matrice
Primjer 1:

Napisati program za ispis članova kvadratne NxN matrice.

RJEŠENJE:
#define dim 10

#include <iostream>
using namespace std; int main()
{

int n,i,a[dim][dim];

cout << " Upisi br.redova i kolona matrice nxn = ";

cin >> n;

cout<<endl;

cout<<"Unesi clanove :"<<endl; for (int

i=1;i<=n;i++) for (int j=1;j<=n; j++)


{

cout <<" a["<<i<<","<<j<<"]="; cin >>a[i][j];


}

cout<<endl;

cout<<" Upisana matrica je : "<<endl; for(int i=1;

i<=n; i++)
{

for (int j=1; j<=n; j++) cout <<a[i][j]<<" \t ";

cout<<endl;
}

return 0;
EKRAN:

Upisi br.redova i kolona matrice nxn = 3

Unesi clanove : a[1,1]=12 a[1,2]=3

a[1,3]=962 a[2,1]=23 a[2,2]=7

a[2,3]=18 a[3,1]=156 a[3,2]=77

a[3,3]=3471 Upisana matrica je :

12 3 962

23 7 18

156 77 3471
}
Primjer 2:

Napisati program za ispis članova pravougaone matrice MxN.

RJEŠENJE:

#include <iostream>

#define brr 10 #define brk 10 using namespace std; int main()


{
int n,i,j,m,a[brr][brk];

cout << " Upisi br.redova m = ";

cin >> n;

cout << " Upisi br.kolona n = ";

cin>>m;

cout<<endl;

cout<<"Unesi članove :"<<endl; for

(int i=1;i<=n;i++) for (int j=1;j<=m;

j++)
{

cout <<" a["<<i<<","<<j<<"]="; cin

>>a[i][j];
}

cout<<endl;

cout<<" Upisana matrica je : "<<endl;

for(int i=1; i<=n; i++)


{

for (int j=1; j<=m; j++) cout

<<a[i][j]<<" \t "; cout<<endl;


}

return 0;
}

EKRAN:
Upisi br.redova m = 2
Upisi br.kolona n = 3

Unesi članove :

a[1,1]=2

a[1,2]=13

a[1,3]=155

7 a[2,1]=34

a[2,2]=921

a[2,3]=45

Upisana matrica je :

2 13 1527

34 921 45

Primjer 3 :

Napisati program koji ispisuje najveći(max) član upisane matrice.

RJEŠENJE:

//Ispisuje najveći član poznate matrice

#include <iostream>

using namespace std;

const int redovi = 3;

const int kolone = 4;

int godDobTemp[redovi][kolone] = {

{26, 34, 22, 17},

{24, 32, 49, 13},

{28, 38, 25, 20}


};

int najvecaTemp (int temp[redovi][kolone])


{

int najveća = 0; for (int i = 0; i < redovi; ++i)

for (int j = 0; j < kolone; ++j) if (temp[i][j] >

najveća) najveća = temp[i][j]; return najveća;


}
main ()
{

Cout<<“Najveci(max) clan je .... „;

cout << najvecaTemp(godDobTemp) << "\n";

return 0;
}

EKRAN:

Najveci(max) clan je .... 49 Primjer 4:

Napisati program koji ispisuje najveći(max) član kvadratne matrice NxN.

RJEŠENJE:

#include <iostream>

#define dim 10 using namespace std; main()


{

int n,a[dim][dim],max=0;
cout << "Unesi broj kolona i redova N = ";

cin >> n;

for (int i=1; i<=n; i++)

for (int j=1;j <=n; j++)


{

cout <<"a["<<i<<","<<j<<"]="; cin

>>a[i][j]; if (a[i][j]>max) max=a[i][j];


}

cout<<"Najveci clan je : "<<max<<endl;

system ("pause"); return 0;


}

EKRAN:

Unesi broj kolona i redova N = 3

a[1,1]=312 a[1,2]=73 a[1,3]=92

a[2,1]=235 a[2,2]=7 a[2,3]=1398

a[3,1]=156 a[3,2]=717 a[3,3]=471


Najveći clan je : 1398 Primjer 5:

Napisati program koji ispisuje najveći(max) član pravougaone matrice MxN.

RJEŠENJE:

//Ispisuje najveći clan matrice MxN #include <iostream>

#define brr 10 #define brk 10 using namespace std; int main()


{

int n,m,a[brr][brk],max=0; cout << "Unesi broj redova m = "; cin >> m;

cout << "Unesi broj kolona n = ";

cin >> n;

cout<<endl;

cout<<"Upisi clanove matrice :"<<endl; for (int i=1; i<=m; i++) for (int

j=1;j<=n; j++)
{

cout <<" a["<<i<<","<<j<<"]="; cin >>a[i][j]; if (a[i][j]>max) max=a[i][j];


}

cout<<endl;

cout<<" Upisana matrica je : ";

for(int i=1; i<=m; i++)


{

cout << endl;

for (int j=1; j<=n; j++)

cout <<a[i][j]<<" \t ";


}

cout<<endl;

cout<<endl;

cout<<"Najveci clan je : "<<max<<endl;

return 0;
}

EKRAN:

Unesi broj redova m =

3 Unesi broj kolona n =

4 Upisi clanove matrice :

a[1,1]=23 a[1,2]=12

a[1,3]=56 a[1,4]=123

a[2,1]=4 a[2,2]=987
a[2,3]=15
a[2,4]=3163

a[3,1]=439

a[3,2]=2987

a[3,3]=152

a[3,4]=88

Upisana matrica je :
23 12 56 123
316
4 921 15 3
439 2987 152 82

Najveci clan je : 3163

Primjer 6:
Napisati program koji ispisuje članove pomnožene sa najvećim članom upisane kvadratne
matrice NxN .

RJEŠENJE:

//Ispisuje najveći(max)clan matrice i matricu pomnoženu sa max.clanom #include

<iostream>

#define dim 10 using namespace std; int main()


{

int

n,i,a[dim][dim],b[dim][dim],max=0;

cout << "Unesi br.redova i kolona n=";

cin >> n;

for (int i=1;i<=n;i++) for (int j=1;j<=n; j++) {


cout <<" a["<<i<<","<<j<<"]=";

cin >>a[i][j];

if (a[i][j]>max)

max=a[i][j];

b[i][j]=max*a[i][j];
}

cout<<endl;

cout<<"Najveci clan matrice je : "<<max<<endl;

cout<<endl;

cout<<" Clanovi matrice pomnoženih sa... "<<max<< " su: "<<endl;

for (int i=1;i<=n;i++) for (int j=1;j<=n; j++)


{

cout <<" a["<<i<<","<<j<<"]="<<max*a[i][j]<<endl;

b[i][j]=max*a[i][j];
}

cout<<endl;

cout<<"Dobivena matrica je : "<<endl; for(int i=1; i<=n; i++)


{

for (int j=1; j<=n;

j++) cout

<<b[i][j]<<" \t ";

cout<<endl;
}
return 0;
}

EKRAN:

Unesi br.redova i kolona n = 3

a[1,1]=2 a[1,2]=8 a[1,3]=11

a[2,1]=1 a[2,2]=4 a[2,3]=21

a[3,1]=12 a[3,2]=33

a[3,3]=5

Najveći clan matrice je : 33 Članovi

matrice pomnoženih sa... 33 su: a[1,1]=66

a[1,2]=264 a[1,3]=363 a[2,1]=33

a[2,2]=132 a[2,3]=693 a[3,1]=396

a[3,2]=1089 a[3,3]=165 Dobivena matrica

je :

66 264 363
33 132 693

396 1089 165

Primjer 7:
Napisati program koji ispisuje pravougaonu matricu MxN i matricu A sortiranu po redovima
min...max.

RJEŠENJE:

//Ispisuje matricu mxn i matricu A sortiranu po redovima

#include <cstdlib>

#include <iostream>

using namespace std;

unsigned int m,n; int

ij,k;

float A['m']['n']; int

main()
{

cout<<"Unesite broj redova m = "; cin>>m;

cout<<"Unesite broj kolona n = "; cin>>n;

cout<<"Upisi clanove matrice A :"<<endl;

// Unos elemenata matrice po redovima (za unos po kolonama zamijeniti mjesta indeksima)

for(i=0; i<m; i++){ for(j=0; j<n; j++){

cout<<"A["<<i<<"]["<<j<<"] = "; cin>>A[i][j];


}}
cout<<endl;
cout<<"Upisana je matrica A:"<<endl;
// Ispis elemenata matrice
for(i=0; i<m; i++){

for(j=0; j<n; j++){

cout<<A[i][j]<<"\t";
}
cout<<"\n";

// Sortirati matricu A['m']['n'] po redovima od najmanjeg do najveceg elemnta

for(i=0; i<m; i++){ for(j=0; j<n-1; j++){ for(k=j+1; k<n; k++){

if(A[i][k]<A[i][j]){ float pom=A[i][j];

A[i][j]=A[i][k];

A[i][k]=pom;}
}}}

// Ispis elemenata matrice

cout<<"\nMatrica A sortirana po redovima

je:\n"; for(i=0; i<m; i++){ for(j=0; j<n; j++){

cout<<A[i][j]<<"\t";
}
cout<<"\n";

} system("PAUSE");
return 0;

EKRAN:

Unesite broj redova m =

3 Unesite broj kolona n = 4

Upisi članove matrice A :

a[0,0]=231 a[0,1]=1284

a[0,2]=56 a[0,3]=123
a[1,0]=477 a[1,1]=79

a[1,2]=15 a[1,3]=3163

a[2,0]=639 a[2,1]=2987

a[2,2]=152

a[2,3]=82

Upisana matrica je :
231 1284 56 123
316
477 79 15 3
639 2987 152 82

Matrica A sortirana po redovima je


128
56 123 231 4
15 79 477 3163
82 152 639 2987

Primjer 8:

Napisati program koji ispisuje pravougaonu matricu MxN i max.clanove po redovima


upisane matrice.

RJEŠENJE:

#include <cstdlib>

#include <iostream>

using namespace std;

unsigned int m,n;

int i,j,k;

float A['m']['n'],R['m']; int main()


{

cout<<MUnesite broj redova m = "; cin>>m;

cout<<MUnesite broj kolona n = "; cin>>n;

cout<<"Unesi elemente matrice A :"<<endl;

// Unos elemenata matrice po redovima (za unos po kolonama zamijeniti mjesta indeksima)

for(i=0; i<m; i++){ for(j=0; j<n; j++){

cout<<" A["<<i<<"]["<<j<<"] = "; cin>>A[i][j];


}}

cout<<endl;

cout<<"Upisana je matrica A:"<<endl;

// Ispis elemenata matrice

for(i=0; i<m; i++){

for(j=0; j<n; j++){


cout<<A[i][j]<<"\t";

}
cout<<"\n";

// Traženje najvećeg elementa matrice A

unsigned int i_max=0,j_max=0; //pretpostavljamo da je prvi elemnt

najveći for(i=0; i<m; i++){ for(j=0; j<n; j++){

if(A[i][j]>A[i_max][j_max]){ i_max=i; j_max=j;


}}}

// Naći najveći element svakog reda matrice i pridružiti ga odgovarajućem

// elementu niza R['m'] for(i=0; i<m; i++){ j_max=0; for(j=1; j<n; j++){

if(A[i][j ]>A[i][j_max]) j_max=j;


}
R[i]=A[i][j_max];

ćout<<"Najveći elementi redova matriće A su:\n"; for(i=0; i<m;

i++){ćout<<R[i]<<" ";} ćout<<"\n"; system("PAUSE");


return 0;

EKRAN:

Unesite broj redova m = 3

Unesite broj kolona n = 4

Unesi elemente matrice A :

a[0,0]=2 a[0,1]=584

a[0,2]=26 a[0,3]=123

a[1,0]=847 a[1,1]=79

a[1,2]=5 a[1,3]=7163

a[2,0]=639 a[2,1]=2987

a[2,2]=211 a[2,3]=38

Upisana matrica je :
2 584 26 123

847 79 5 7163
Najveći elementi redova matriće A su:
639 2987 211 38

584 7163 2987


Primjer 9:

Napisati program koji ispisuje matricu A,sumu(zbir)elemenata i srednju vrijednost članova.

RJEŠENJE:

//Ispisuje sumu (zbir) i srednju vrijednost članova pravougaone matrice A #include <cstdlib>

#include <iostream> using namespace std; unsigned int m,n; int ij,k;

float A['m']['n']; int main()


{

cout<<"Unesite broj redova m = "; cin>>m;

cout<<MUnesite broj kolona n = "; cin>>n;

cout<<"Upisi clanove matrice A :"<<endl;

for(i=0; i<m; i++){ for(j=0; j<n; j++){

cout<<" A["<<i<<"]["<<j<<"] = "; cin>>A[i][j];


}}

cout<<endl;

cout<<"Upisana je matrica A:"<<endl;

// Ispis elemenata matrice for(i=0; i<m; i++){ for(j=0; j<n; j++){ cout<<A[i][j]<<"\t";
cout<<"\n";

// Suma i srednja vrijednost elemenata matrice

float suma=0; for(i=0; i<m; i++){ for(j=0;

j<n; j++){

suma+=A[i][j]; // suma=suma+A[i][j];
}}

cout<<endl;

cout<<"Suma svih elemenata matrice je "<<suma

<<", a srednja vrijednost je "<<suma/(m*n)<<".\n";


}

system("PAUSE"); return 0;
}

EKRAN:

Unesite broj redova m = 3

Unesite broj kolona n = 4

Upisi clanove matrice A :

a[0,0]=24 a[0,1]=5

a[0,2]=11 a[0,3]=53

a[1,0]=8
a[1,1]=90 a[1,2]=15

a[1,3]=3

a[2,0]=392

a[2,1]=28

a[2,2]=2

a[2,3]=86

Upisana je matrica A :
24 5 11 53

8 90 15 3

392 28 2 86

Suma svih elemenata matrice je 717, a srednja vrijednost je 59.75.


Primjer 10:
Napisati program koji ispisuje kvadratnu matricu A,sumu elemenata reda i zbir članova
kolone.

RJEŠENJE:

//Ispisuje matricu,sumu cl.kolone i sumu cl.reda #include <iostream.h>

#define max 10 main ()


{

int matrica[max][max], sk[max], sr[max]; int n,s=0,p=1;

cout << " Unesi br.redova i kolona matrice nxn = "; cin >> n;

for (int i=1; i<=max; i++) {

sk[i]=0;
sr[i]=0;

for (int i=1; i<=n; i++) for

(int j=1; j<=n; j++)


{

cout <<"polje["«i«","<<j«"]="; cin >>


matrica[i][j]; sk[j]+=matrica[i][j];

sr[i]+=matrica[i][j];
}

cout<<endl;

cout<<" Upisana matrica je : "<<endl;

for(int i=1; i<=n; i++)


{

cout << endl;

for (int j=1; j<=n; j++)

cout <<matrica[i][j]<<" \t ";


}

cout<<endl;

for (int i=1; i<=n; i++)

cout<<" Suma kolone ["<<i<<"] = "<<sk[i]<<endl;

cout<<endl;
for (int i=1; i<=n; i++)

cout<<"Suma reda ["<<i<<"] = "<<sr[i]<<endl;

return 0;
}

EKRAN:

Unesi br.redova i kolona matrice nxn = 3

polje[1,1]=12 polje[1,2]=378 polje[1,3]=4

polje[2,1]=98 polje[2,2]=11 polje[2,3]=2

polje[3,1]=61 polje[3,2]=9 polje[3,3]=20

Upisana matrica je :
12 378 4

98 111 2

61 9 20
Suma kolone [1] = 171

Suma kolone [2] = 498

Suma kolone [3] = 26

Suma reda [1] = 394 Suma

reda [2] = 211 Suma reda

[1] = 90
Primjer 11:
Napisati program koji ispisuje pravugaonu matricu MxN, proizvod clanova kolone i sumu
elemenata reda upisane matrice .

RJEŠENJE:

//Ispisuje matricu,proizvod cl.kolone i sumu cl.reda

#include <iostream>

#define brr 10 #define brk 10 using namespace std;

int main ()
{

int matrica[brr][brk], pk[brk], sr[brr]; int n,m;

cout << " Unesi br.redova : "; cin >> n;

cout << " Unesi br.kolona : ";

cin>>m;

cout<<endl;

cout<<"Unesi clanove :"<<endl; for (int i=1;

i<=brr; i++) for (int j=1; i<=brk; i++)


{

pk[i]=1;
sr[i]=0;

for (int i=1; i<=n; i++) for (int j=1; j<=m; j++)
{

cout <<"polje["<<i<<","<<j<<"]="; cin >> matrica[i][j];

pk[j]*=matrica[i][j]; sr[i]+=matrica[i][j];
}

cout<<endl;

cout<<" Upisana matrica je : "; for(int i=1; i<=n; i++)


{

cout << endl;

for (int j=1; j<=m; j++)

cout <<matrica[i][j]<<" \t ";


}

cout<<endl;

for (int i=1; i<=m; i++)

cout<<" Proizvod kolone ["<<i<<"] = "<<pk[i]<<endl;

cout<<endl;

for (int i=1; i<=n; i++)

cout<<"Suma reda ["<<i<<"] = "<<sr[i]<<endl; return

0;
}

EKRAN:
Unesi br.redova m = 3
Unesi br.kolopna n = 4
polje[1,1]=12

polje[1,2]=378

polje[1,3]=4

polje[1,4]=214

polje[2,1]=98

polje[2,2]=11

polje[2,3]=2

polje[2,4]=43

polje[3,1]=61

polje[3,2]=9

polje[3,3]=20

polje[3,4]=742

Upisana matrica je :
12 378 4 21
4
98 111 2 43
74
61 9 20 2
Proizvod kolone [1] = 71736

Proizvod kolone [2] = 37422

Proizvod kolone [3] = 16 0

Proizvod kolone [4] = 6827884

Suma reda [1] = 608 Suma reda [2]

= 244 Suma reda [1] = 832 Primjer

12:

Napisati program koji ispisuje pravugaonu matricu MxN,proizvod elemenata reda i


proizvod clanova kolone.
RJEŠENJE:

//Ispisuje pravougaonu matricu,proizvod cl.kolone i proizvod cl.reda

#include <iostream>

#define brr 10 #define brk 10 using namespace std; int main ()


{

int matrica[brr][brk], pk[brk], pr[brr]; int n,m;

cout << " Unesi br.redova : "; cin >> n;

cout << " Unesi br.kolona : ";

cin>>m;

cout<<endl;

cout<<"Unesi clanove :"<<endl; for (int i=1; i<=brr; i++) for (int

j=1; i<=brk; i++)


{

pk[i]=1;

pr[i]=1;
}

for (int i=1; i<=n; i++) for (int j=1; j<=m; j++)
{

cout <<"polje["<<i<<","<<j<<"]="; cin >> matrica[i][j];

pk[j]*=matrica[i][j]; pr[i]*=matrica[i][j ] ;
}

cout<<endl;

cout<<" Upisana matrica je : "; for(int i=1; i<=n; i++)


{

cout << endl;

for (int j=1; j<=m; j++)

cout <<matrica[i][j]<<" \t ";


}

cout<<endl;
for (int i=1; i<=m; i++)

cout<<" Proizvod kolone ["<<i<<"] = "<<pk[i]<<endl;

cout<<endl;

for (int i=1; i<=n; i++)

cout<<"Proizvod reda ["<<i<<"] = "<<pr[i]<<endl;

return 0;
}

EKRAN:

Unesi br.redova m = 2 Unesi br.kolopna n = 3


polje[1,1]=2

polje[1,2]=4

polje[1,3]=11

polje[2,1]=3

polje[2,2]=6

polje[2,3]=22

Upisana matrica je
:
2 4 11
3 6 22

Proizvod kolone [1] = 6

Proizvod kolone [2] = 24

Proizvod kolone [3] = 232

Proizvod reda [1] = 88

Proizvod reda [2] = 396

Primjer 13:
Napisati program koji ispisuje proizvod članova u koloni ,sumu(zbir)članova u redu upisane
matrice a zatim matricu ciji su članovi pomnozeni sa 2.
RJEŠENJE:

#include <iostream>

#define brr 10

#define brk 10

using namespace std;

int main ()
{
int matrica[brr][brk], sk[brk], pr[brr];
int n,m;
cout << " Unesi br.redova : ";

cin >> n;

cout << " Unesi br.kolona : ";

cin>>m;

cout<<endl;

cout<<"Unesi članove :"<<endl; for

(int i=1; i<=brr; i++) for (int j=1;

i<=brk; i++)
{
sk[i]=0;

pr[i]=1;

for (int i=1; i<=n; i++) for (int j=1;

j<=m; j++)
{

cout <<"polje["<<i<<","<<j<<"]=";

cin >> matrica[i][j];

sk[j]+=matrica[i][j];

pr[i]*=matrica[i][j ];
}

cout<<endl;

cout<<" Upisana matrica je : ";

for(int i=1; i<=n; i++)


{

cout << endl;


for (int j=1; j<=m; j++) cout <<matrica[i][j]<<" \t ";
}

cout<<endl;

for (int i=1; i<=m; i++)

cout<<" Suma kolone ["<<i<<"] = "<<sk[i]<<endl;

cout<<endl;

for (int i=1; i<=n; i++)

cout<<"Proicvod reda ["<<i<<"] = "<<pr[i]<<endl;

cout<<endl;

cout<<" Matrica sa clanovima pomnoženi sa 2 je : ";

for(int i=1; i<=n; i++)


{

cout << endl;

for (int j=1; j<=m; j++)

cout <<matrica[i][j]*2<<" \t ";


}

return 0;
}

EKRAN:

Unesi br.redova m = 3 Unesi br.kolopna n = 4

polje[1,1]=2 polje[1,2]=1 polje[1,3]=3

polje[1,4]=23

polje[2,1]=11

polje[2,2]=6

polje[2,3]=5

polje[2,4]=33

polje[3,1]=100
polje[3,2]=20

polje[3,3]=15

polje[3,4]=9

Upisana matrica je :
2 1 3 2
3
3
11 6 5 3
1 00 20 15 9

Suma kolone [1] = 113

Suma kolone [2] = 27 Suma kolone

[3] = 23 Suma kolone [4] = 65 Proizvod

reda [1] = 138 Proizvod reda [2] = 10890

Proizvod reda [1] = 270000 Matrica sa

članovima pomnoženi sa 2 je :
4 2 6 4
6
6
22 12 10 6
1
2 00 40 30 8
Primjer 14:
Napisati program za unos matrice A , ispis zbira(sume) članova i ispis sume(zbira) elementa
koji su djeljivi sa 2.

RJEŠENJE:

//suma članova djeljivih sa 2 #include <iostream>

#define dim 10 using namespace std; int main()


{

int n,i,a[dim][dim],zbir;

cout << " Upisi br.redova i kolona matrice nxn = ";

cin >> n;

cout<<endl;

cout<<"Unesi članove :"<<endl; for (int i=1;i<=n;i++) for (int j=1;j<=n; j++)
{

cout <<" a["<<i<<","<<j<<"]="; cin >>a[i][j];


}
zbir=0;

for(int i=1;i<=n;i++)
{

for(int j=1;j <=n;j ++) {


if(a[i][j]%2==0)
zbir=zbir+a[i][j];
}

cout<<endl;

cout<<" Upisana matrica je : "<<endl;

for(int i=1; i<=n; i++)


{

for (int j=1; j<=n;

j++) cout <<a[i][j]<<"

\t "; cout<<endl;
}

cout<<"Suma clanova djeljivih sa 2 je : "<<zbir<<endl;

return 0;
}

EKRAN:

Unesi br.redova i kolona matrice nxn =

3 Unesi clanove : a[1,1]=1 a[1,2]=2

a[1,3]=3 a[2,1]=4 a[2,2]=5 a[2,3]=6

a[3,1]=7
a[3,2]=8

a[3,3]=10

Upisana matrica je :
1 2 3

4 5 6

7 8 10

Suma članova djeljivih sa 2 je : 30

Primjer 15:
Napisati program za unos matrice A , ispis broja članova koji su djeljivi sa 3 i broj članova
djeljivih sa 2 .

RJEŠENJE:

//Ispisuje matricu,broj članova djeljivih sa 3 i broj članova djeljivih sa 2 #include <iostream>

#define max 10 using namespače std; int main ()


{

int matriča[max][max]; int n,s,s1;

čout << " Unesi br.redova i kolona matriče nxn = "; čin >> n;

for (int i=1; i<=max; i++)


{

s=0;
s1=0;

}
for (int i=1; i<=n; i++) for

(int j=1; j<=n; j++)


{

cout <<"polje[M<<i<<M,"<<j<<M]=";

cin >> matrica[i][j];

s+=matrica[i][j]%3==0;

s1+=matrica[i][j]%2==0;
}

cout<<endl;

cout<<" Upisana matrica je : "<<endl;

for(int i=1; i<=n; i++)


{

cout << endl;

for (int j=1; j<=n; j++)

cout <<matrica[i][j]<<" \t ";


}

cout<<endl;

cout<<endl;

cout<<"Broj clanova djeljivih sa 3 je : "<<s<<endl;

cout<<" ,a djeljivi sa 2 je : "<<s1<<" "<<endl;

return 0;
}

EKRAN:
Unesi br.redova i kolona matrice nxn = 3

a[1,1]=1
a[1,2]=2

a[1,3]=3

a[2,1]=4

a[2,2]=5

a[2,3]=6

a[3,1]=7

a[3,2]=8

a[3,3]=9

Upisana matrica je :

1 2 3

4 5 6

7 8 9

Broj članova djeljivih sa 3 je : 3

, a djeljivih sa 2 je : 4 Primjer

16:

Napisati program za unos matrice A , ispis članova djeljivih sa „p“ i njihovu sumu.

RJEŠENJE:

//Ispis članova djeljivih sa "p" i njihov zbir(suma)

#include <iostream>

#define dim 10 using

namespace std; int

main()
{
int n,i,a[dim][dim],zbir,p;
cout << " Upisi br.redova i kolona matrice nxn = ";
cin >> n;

cout<<endl;

cout<< "Unesi članove :"<<endl;

for (int i=1;i<=n;i++)


for (int
j=1;j<=n; j++)

cout << " a["<<i<< ","<<j<< "]=

"; cin >>a[i][j];


}

cout<< "Upisi djelilac P = ";

cin>>p;

cout<<endl;

zbir=0;

for(int i=1;i<=n;i++)
{

for(int
j=1;j<=n;j++)
{

if(a[i][ ]
j %P==0) zbir=zbir+a[i][j];
}

cout<<endl;

cou<<" Upisana matrica je : "<<endl;

for(int i=1; i<=n; i++)


{

for (int
j=1; j<=n; j++)

cout <<a[i][j]<<" \t ";

cout<<endl;
}

cout<<endl;

cout<< "Članovi djeljivih sa "<<p<< " su : "<<endl; for(int i=1;

i<=n; i++)
{

for (int
j=1; j< =n; j+ +) if(a[i][j]%P==0) cout <<a[i][j]<<" \t ";

cout<<endl;
}

cou<<"Suma clanova djeljivih sa "<<p<<"je : "<<zbir<<endl;

return 0;
}

EKRAN:

Upisi br.redova i kolona matrice nxn =

3 Unesi clanove : a[1,1]=12 a[1,2]=2

a[1,3]=3 a[2,1]=4

a[2,2]=5
a[2,3]=44

a[3,1]=7

a[3,2]=200

a[3,3]=10 Upisi

djelilac P = 4

Upisana matrica je

:
12 2 3

4 5 44

7 200 10

Clanovi djeljivi sa 4 su :

12

4 44

200

Suma clanova djeljivih sa 4 je : 260

Primjer 17:
Napisati program za unos matrice A , ispis zbira(sume) clanova i ispis matrice B ciji su
elementi uvecani za ovu sumu.

RJEŠENJE:
//Ispisuje sumu (zbir) clanova matrice A i matricu B ciji su clanovi uvecani za sumu upisanih
clanova

#include <cstdlib>

#include <iostream> using namespace std; unsigned int m,n; int i,j,k;
float A['m']['n'];
int main()

cout<<"Unesite broj redova m = "; cin>>m;

cout<<"Unesite broj kolona n = "; cin>>n;

cout<<"Upisi članove matrice A :"<<endl;

for(i=0; i<m; i++){ for(j=0; j<n; j++){

cout<<" A["<<i<<"]["<<j<<"] = "; cin>>A[i][j];


}}

cout<<endl;

cout<<"Upisana je matrica A:"<<endl;

// Ispis elemenata matrice

for(i=0; i<m; i++){

for(j=0; j<n; j++){

cout<<A[i][j]<<"\t";
}
cout<<"\n";

// Suma elemenata matrice

float suma=0; for(i=0;

i<m; i++){ for(j=0; j<n;

j++){

suma+=A[i][j]; // suma=suma+A[i][j];
}}
cout<<endl;

cout<<"Suma svih elemenata matrice A je

"<<suma<<".\n"; cout<<endl;

cout<<" Matrica B,elementi uvecani za..."<<suma<<endl;

// Ispis elemenata matrice for(i=0;

i<m; i++){ for(j=0; j<n; j++){

cout<<A[i][j ]+int(suma)<<"\t";
}
cout<<"\n";

system("PAUSE"); return 0;
}

EKRAN:

Unesite broj redova m = 3

Unesite broj kolona n = 4

Upisi clanove matrice A :

a[0,0]=9 a[0,1]=8

a[0,2]=7 a[0,3]=6

a[1,0]=5 a[1,1]=4

a[1,2]=3
a[1,3]=2 a[2,0]=1

a[2,1]=23

a[2,2]=4

a[2,3]=5

Upisana je matrica A :
9 8 7 6
5 4 3 2

1 23 4 5
Sum svih elemenata matrice A je
a
Matrica B,elementi uvećani za...77

86 85 84 83

82 81 80 79

78 100 81 82

Primjer 18:
Napisati program za unos matrice A , ispis max.clanova po redovima i ispis matrice B ciji su
elementi sortirani po redovima od min...max.

RJEŠENJE:

#include <cstdlib>

#include <iostream>

using namespace std;

unsigned int m,n;

int ij,k;

float A['m']['n'],R['m'],K['n']; int main()


{
cout<<"Unesite broj redova m = "; cin>>m;

cout<<"Unesite broj kolona n = "; cin>>n;

cout<<"Unesi elemente matrice A

:"<<endl; for(i=0; i<m; i++){ for(j=0; j<n;

j++){

cout<<" A["<<i<<"]["<<j<<"] = "; cin>>A[i][j];


}}

cout<<endl;

cout<<"Upisana je matrica A:"<<endl;

// Ispis elemenata matrice for(i=0; i<m;

i++){ for(j=0; j<n; j++){

cout<<A[i][j]<<"\t";
}
cout<<"\n";

// Traženje najvećeg elementa matrice A

unsigned int i_max=0,j_max=0; //pretpostavljamo da je prvi elemnt

najveci for(i=0; i<m; i++){ for(j=0; j<n; j++){

if(A[i][j]>A[i_max][j_max]){ i_max=i; j_max=j;


}}}
// Naci najveci element svakog reda matrice i pridružiti ga odgovarajucem

// elementu niza R['m'] for(i=0; i<m; i++){ j_max=0; for(j=1; j<n; j++){

if(A[i][j ]>A[i][j_max]) j_max=j;


}

R[i]=A[i][j_max];

cout<<"Najveci elementi redova matrice A

su:\n"; for(i=0; i<m; i++){cout<<R[i]<<" ";}

cout<<"\n";

// Sortirati matricu A['m']['n'] po redovima od najmanjeg do najveceg elemnta

for(i=0; i<m; i++){ for(j=0; j<n-1; j++){ for(k=j+1; k<n; k++){

if(A[i][k]<A[i][j]){ float pom=A[i][j];

A[i][j]=A[i][k];

A[i][k]=pom;}
}}}

// Ispis elemenata matrice

cout<<"\nMatrica A sortirana po redovima je:\n";


for(i=0; i<m; i++){
for(j=0; j<n; j++){
cout<<A[i][j]<<"\t";

}
cout<<"\n";

}
system("PAUSE");
return 0;
}

EKRAN:

Unesite broj redova m = 3

Unesite broj kolona n = 4

Uneisi članove matrice A :

a[0,0]=12 a[0,1]=54

a[0,2]=3 a[0,3]=2

a[1,0]=7 a[1,1]=89

a[1,2]=123 a[1,3]=4

a[2,0]=6 a[2,1]=337

a[2,2]=100 a[2,3]=32

Upisana je matrica A :

12 54 3 2
7 89 123 4

6 337 100 32

Najveći elementi redova matrice A su :

54 123 337

Matrica A sortirana po redovima je :


2 3 12 54

4 7 89 123

6 32 100 337

Primjer 19:

Napisati program za unos matrice A i ispis članova glavne dijagonale.

RJEŠENJE:

//Ispisuje elemente glavne dijagonale matrice A

#include <cstdlib>

#include <iostream>

using namespace std;

unsigned int m,n; int

ij,k;

float A['m']['n']; int

main()
{

cout<<"Unesite broj redova i kolona m = "; cin>>m;

cout<<"Upisi članove matrice A :"<<endl; for(i=0;

i<m; i++){ for(j=0; j<m; j++){


cout<<" A["<<i<<"]["<<j<<"] = "; cin>>A[i][j];
}} cout<<"Upisana je matrica A:"<<endl;

// Ispis elemenata matrice


cout<<endl;
for(i=0; i<m; i++){

for(j=0; j<m; j++){

cout<<A[i][j]<<"\t";
}
cout<<"\n";

cout<<endl;

// Ispis elemenata glavne dijagonale matrice

cout<<"Elementi glavne dijagonale

su:\n"; for(i=0; i<m;

i++){cout<<A[i][i]<<" ";} cout<<endl;

return 0;
}

EKRAN:

Unesite broj redova i kolona m = 3 Upisi

clanove matrice A : a[0,0]=12 a[0,1]=54

a[0,2]=3 a[1,0]=7 a[1,1]=89


a[1,2]=123

a[2,0]=6

a[2,1]=337

a[2,2]=100

Upisana je matrica A :
12 54 3

7 89 123

6 337 100

Elementi glavne dijagonale

12 89 100

Primjer 20:

Napisati program za unos matrice A i ispis članova glavne i sporedne dijagonale.

RJEŠENJE:

//Ispisuje elemente glavne i sporedne dijagonale matrice A #include <cstdlib>

#include <iostream> using namespace std; unsigned int m,n; int i,j,k;

float A['m']['n']; int main()


{

cout<<"Unesite broj redova i kolona m = "; cin>>m;

cout<<"Upisi clanove matrice A :"<<endl;


for(i=0; i<m; i++){
for(j=0; j<m; j++){

cout<<" A["<<i<<"]["<<j<<"] = "; cin>>A[i][j];

}}

cout<<endl;

cout<<"Upisana je matrica A:"<<endl;

// Ispis elemenata matrice

for(i=0; i<m; i++){

for(j=0; j<m; j++){

cout<<A[i][j]<<"\t";
}
cout<<"\n";

cout<<endl;

// Ispis elemenata glavne i sporedne dijagonale matrice

cout<<"Elementi glavne dijagonale su:\n"; if(m<n) k=m; //broj

elemenata glavne odn. sporedne dijagonale else k=m;

//odgovara broju manje dimenzije matrice for(i=0; i<k;

i++){cout<<A[i][i]<<" ";} cout<<endl;

cout<<"\nElementi sporedne dijagonale

su:\n"; for(i=0; i<k; i++){cout<<A[i][m-1-

i]<<" ";} cout<<endl; return 0;


}

EKRAN:
Unesite broj redova i kolona m = 3

Upisi članove matrice A :

A[0,0]=1

A[0,1]=2

A[0,2]=3

A[1,0]=4

A[1,1]=5

A[1,2]=6

A[2,0]=7

A[2,1]=8

A[2,2]=9

Upisana je matrica A :

1 2 3

4 5 6

7 8 9

Elementi glavne dijagonale su :

1 5 9

Elementi sporedne dijagonale su :

3 5 7

Primjer 21:

Napisati program za unos matrice A i ispis članova glavne i njihovu sumu(zbir).

RJEŠENJE:

//Ispisuje članove glavne dijagonali i njihov zbir

#include <iostream>
#define dim 10
using namespace std; int main()
{

int n,i,a[dim][dim],suma;

cout << " Upisi br.redova i kolona matrice nxn = ";

cin >> n;

cout<<endl;

cout<<"Unesi članove :"<<endl; for (int

i=1;i<=n;i++) for (int j=1;j<=n; j++)


{

cout <<" a["<<i<<","<<j<<"]="; cin >>a[i][j];


}
suma=0;
for (int i=1; i<n+1; i++)
{

suma = suma + a[i][i];

cout<<endl;

cout<<" Upisana matrica je : "<<endl; for(int i=1;

i<=n; i++)
{
for (int j=1; j<=n; j++)
cout <<a[i][j]<<" \t ";

cout<<endl;
}

cout<<endl;

cout<<" CL.glavne dijagonale su : "<<endl;

for(int i=1; i<=n; i++)


{

cout <<a[i][i]<<" \t ";


}

cout<<endl;

cout<<endl;

cout<<"Zbir clanova glavne dijagonale je :"<<suma<<endl;

return 0;
}

RJEŠENJE:

Unesite broj redova i kolona m = 3

Unesi clanove : a[1,1]=12 a[1,2]=3

a[1,3]=4 a[2,1]=5 a[2,2]=6 a[2,3]=7

a[3,1]=23
a[3,2]=42
a[3,3]=100

Upisana je matrica A
:
12 3 4

5 6 7
10
23 42 0
CL. glavne dijagonale su :

12 6 100

Zbir članova glavne dijagonale je : 118

Primjer 22:

Napisati program za unos matrice A i ispis sume(zbira) članova glavne dijagonale.

RJEŠENJE:

//Ispis matrice i sumu(zbir) članova glavne dijagonale #include <stdio.h>

#include <conio.h>

#define MAX 20 int main(){

int i,j,n,mat[MAX][MAX]; float sum=0;

printf("\nUnesi veličinu cjelobrojne kvadratne matrice nxn: "); scanf("%d",&n);

printf("\nUnesi elemente matrice:\n\n"); for(i=0;i<n;i++){ for(j =0;j <n;j ++){

printf("\tM[%d][%d]= ",i+1,j+1); scanf("%d",&mat[i][j]);


if(i==j) sum += mat[i][j];

printf("\nUnesena j e matrica:\n\n");

for(i=0;i<n;i++){

printf("\n");

for(j=0;j<n;j++){

printf("\t%d",mat[i][j]);
}

printf("\n\nSuma (zbir) clanova glavne dijagonale je %f", sum);

getch();

return 0;
}

EKRAN:

Unesi br.redova i kolona matrice nxn =

3 Unesi clanove : a[1,1]=12 a[1,2]=2

a[1,3]=3 a[2,1]=4 a[2,2]=5 a[2,3]=44

a[3,1]=7 a[3,2]=200
a[3,3]=10
Upisana matrica je :
12 2 3

4 5 44

7 200 10

Suma clanova glavne dijagonale je : 27

Primjer 23:
Napisati program za unos matrice A i ispis sume clanova glavne dijagonale i ispis zbira
clanova sporedne dijagonale.

RJEŠENJE:

//Ispis matrice i suma clanova dijagonala #include <stdio.h>

#include <conio.h>

#define MAX 20 int main(){

int i,j,n,mat[MAX][MAX]; float sumd=0,suml=0;

printf("\nUnesi velicinu cjelobrojne kvadratne matrice nxn: "); scanf("%d",&n);

printf("\nUnesi elemente matrice:\n\n");

for(i=0;i<n;i++){

for(j =0;j <n;j ++){

printf("\tM[%d][%d]= ",i+1,j+1);

scanf("%d",&mat[i][j]);

if(i==j) suml += mat[i][j];

if(i+j==n-1) sumd += mat[i][j];


}

printf("\nUnesena j e matrica:\n\n");

for(i=0;i<n;i++){

printf("\n");

for(j =0;j <n;j ++){


}

printf("\t%d",mat[i][j]);
}

printf("\n\nSuma clanova glavne dijagonale je %f", suml);

printf("\n\nSuma clanova sporedne dijagonale je %f", sumd);

return 0;
}

Primjer 24:

Napisati program za unos matrice A i ispis aritmeticke sredine clanova obe dijagonale.

RJEŠENJE:

//Ispis matrice i aritmeticke sredine diijagonalnih clanova #include <stdio.h>

#include <conio.h>

#define MAX 20 int main(){

int i,j,n,mat[MAX][MAX]; float sred=0;

printf("\nUnesi velicinu cjelobrojne kvadratne matrice nxn: "); scanf("%d",&n);


printf("\nUnesi elemente matrice:\n\n");

for(i=0;i<n;i++){

for(j=0;j<n;j++){

printf("\tM[%d][%d]= ",i+1,j+1);

scanf("%d",&mat[i][j]);

if(i==j) sred += mat[i][j];

if(i+j==n-1) sred += mat[i][j];


}

sred /= 2*n;

printf("\nUnesena j e matrica:\n\n");

for(i=0;i<n;i++){

printf("\n");

for(j=0;j<n;j++){

printf("\t%d",mat[i][j]);
}

printf("\n\nAritmeticka sredina dijagonalnih članova je %f",sred );

getch();

return 0;
}

Primjer 25:
Napisati program za unos matrice A i ispis matrice B čiji su članovi uvećani za zbir
članova glavne dijagonale.

RJEŠENJE:
#include <stdio.h>
#include <conio.h>

#define MAX 20 int main(){

int i,j,n,mat[MAX][MAX]; float sum=0;

printf("\nUnesi velicinu cjelobrojne kvadratne matrice nxn: ");

scanf("%d",&n);

printf("\nUnesi elemente matrice:\n\n");

for(i=0;i<n;i++){

for(j=0;j<n;j++){

printf("\tM[%d][%d]= ",i+1j+1);

scanf("%d",&mat[i][j]);

if(i==j) sum += mat[i][j];


}

printf("\nUnesena j e matrica:\n\n");

for(i=0;i<n;i++){

printf("\n");

for(j=0;j<n;j++){

printf("\t%d",mat[i][j]);
}

printf("\n\nSuma (zbir) clanova glavne dijagonale je %f", sum);

printf("\n");
printf("\nMatrica ciji su clanovi uvecani za ovu sumu je:\n\n");
for(i=0;i<n;i++){

printf("\n");

for(j =0;j <n;j ++){

printf("\t%d",mat[i][j]+int(sum));
}

getch(); return 0;
}

Primjer 26:
Napisati program za unos matrice A, ispis sume obe dijagonale pojedinacno i ispis
aritmeticke sredine clanova obe dijagonale.

RJEŠENJE:

//Ispis matrice,suma clanova dijagonala i njihova artimeticka sredina #include

<stdio.h>

#include <conio.h>

#define MAX 20 int main(){

int i,j,n,mat[MAX][MAX]; float sumd=0,suml=0;

printf("\nUnesi velicinu cjelobrojne kvadratne matrice nxn: "); scanf("%d",&n);

printf("\nUnesi elemente matrice:\n\n"); for(i=0;i<n;i++){ for(j=0;j<n;j++){

printf("\tM[%d][%d]= ",i+1j+1);
scanf("%d",&mat[i][j]); if(i==j)

suml += mat[i][j]; if(i+j==n-1)

sumd += mat[i][j];
}

printf(" \nUnesena je matrica:\n");

for(i=0;i<n;i++){

printf("\n");

for(j=0;j<n;j++){ printf("\t%d",mat[i][j]);

printf("\n\nSuma clanova glavne dijagonale je %f", suml); printf("\n\nSuma

clanova sporedne dijagonale je %f", sumd); printf("\n\nAritmeticka sredina

clanova obe dijagonale je %f", ((suml+sumd)/2)); return 0;


}

Primjer 27:
Napisati program za unos matrice A , ispis sume clanova glavne dijagonale, ispis zbira
clanova sporedne dijagonale,ispis aeitmeticke sredine clanova obe dijagonale i ispis matrice
B ciji clanovi su clanovi matrice A uvecani za sumu(zbir) clanova glavne i sporedne
dijagonale.

RJEŠENJE:

#include <stdio.h>

#include <conio.h>

#define MAX 20 int main(){


int i,j,n,mat[MAX][MAX]; float sumd=0,suml=0;

printf("\nUnesi veličinu cjelobrojne kvadratne matrice nxn: ");

scanf("%d",&n);

printf("\nUnesi elemente matrice:\n\n");

for(i=0;i<n;i++){

for(j=0;j<n;j++){

printf("\tM[%d][%d]= ",i+1j+1);

scanf("%d",&mat[i][j]);

if(i==j) suml += mat[i][j];

if(i+j==n-1) sumd += mat[i][j];


}

printf(" \nUnesena je matrica A:\n");

for(i=0;i<n;i++){

printf('V');

for(j=0;j<n;j++){

printf("\t%d",mat[i][j]);
}

printf("\n\nSuma clanova glavne dijagonale je %f", suml); printf("\n\nSuma

clanova sporedne dijagonale je 0/of", sumd); printf("\n\nAritmeticka sredina

clanova obe dijagonale je %of", ((suml+sumd)/2)); printf("\n");

printf("\nMatrica B ciji su clanovi uvecani za %f", (suml+sumd));


for(i=0;i<n;i++){

printf("\n");

for(j=0;j<n;j++){

printf("\t%d",mat[i][j]+int(suml+sumd));
}

}
return 0;
}

Primjer 28:
Napisati program za unos matrice A , ispis sume članova glavne dijagonale, ispis zbira
članova sporedne dijagonale, i ispis matrice B čiji članovi su članovi matrice A pomnoženi sa
sumom(zbirom) članova sporedne dijagonale.

RJEŠENJE:

#inčlude <stdio.h>

#inčlude <čonio.h>

#define MAX 20

int main(){

int i,j,n,mat[MAX][MAX]; float sumd=0,suml=0;

printf("\nUnesi veličinu čjelobrojne kvadratne matriče nxn: "); sčanf("%d",&n);

printf("\nUnesi elemente matriče:\n\n");

for(i=0;i<n;i++){

for(j=0;j<n;j++){

printf("\tM[%d][%d]= ",i+1,j+1);

sčanf("%d",&mat[i][j]);
if(i==j) suml += mat[i][j]; if(i+j==n-1) sumd += mat[i][j];
}

printf(" \nUnesena je matrica A:\n");

for(i=0;i<n;i++){ printf("\n"); for(j =0;j <n;j ++){


printf("\t%d",mat[i][j]);
}

printf("\n\nSuma clanova glavne dijagonale je %f", suml);

printf("\n\nSuma clanova sporedne dijagonale je %f", sumd);

printf("\n");

printf("\nMatrica B ciji su clanovi pomnoženi sa %f", sumd);

for(i=0;i<n;i++){ printf("\n"); for(j =0;j <n;j ++){


printf("\t%d",mat[i][j]*int(sumd));
}

return 0;
}

Primjer 29:

Napisati program za unos dvije matrice i ispis matrice koja je jednaka njihovom
zbiru(sumi)
RJEŠENJE: #include <iostream>

#define dim 10 using namespace std; main()


{

int n,a[dim][dim],b[dim][dim],c[dim][dim]; cout <<

"Unesi broj redova i kolona N = "; cin >> n;

cout<<" Unesi članove matrice A: "<<endl; for (int

i=1; i<=n; i++) for (int j=1;j<=n; j++)


{

cout <<"a["<<i<<","<<j<<"]="; cin >>a[i][j];


}

cout<<" Sada unesi clanove matrice B: "<<endl; for

(int i=1; i<=n; i++) for (int j=1;j<=n; j++)


{

cout <<"b["<<i<<","<<j<<"]="; cin >>b[i][j];

c[i][j]=a[i][j]+b[i][j];
}

cout<<" Zbir ove dvije matrice je matrica C: "<<endl;

for (int i=1; i<=n; i++)

for (int j=1;j <=n; j++)

cout <<"c["<<i<<M,"<<j<<M]="<<a[i][j]+b[i][i]<<endl;

system ("pause"); return 0;


}
Primjer 30:
Napisati program za unos matrice A ,ispis zbira(sume) i ispis srednje vrijednosti članova
upisane matrice .

RJEŠENJE:

//Ispisuje sumu (zbir) i srednju vrijednost članova matrice A

#include <cstdlib>

#include <iostream> using namespace std; unsigned int m,n;


int i,j,k;

float A['m']['n']; int main()


{

cout<<"Unesite broj redova m = "; cin>>m;

cout<<"Unesite broj kolona n = "; cin>>n;

cout<<"Upisi clanove matrice A :"<<endl;

for(i=0; i<m; i++){ for(j=0; j<n; j++){

cout<<" A["<<i<<"]["<<j<<"] = "; cin>>A[i][j];


}}
cout<<endl;

cout<<"Upisana je matrica A:"<<endl;

// Ispis elemenata matrice

for(i=0; i<m; i++){ for(j=0;

j<n; j++){

cout<<A[i][j]<<"\t";
}
cout<<"\n";

// Suma i srednja vrijednost elemenata matrice

float suma=0; for(i=0; i<m; i++){ for(j=0; j<n;

j++){

suma+=A[i][j]; // suma=suma+A[i][j];
}}

cout<<endl;

cout<<"Suma svih elemenata matrice je "<<suma<<".\n";

cout<<endl;

cout<<" Matrica B,elementi uvecani za..."<<suma<<endl;

// Ispis elemenata matrice for(i=0; i<m; i++){ for(j=0; j<n;


j++){ cout<<A[i][j ]+int(suma)<<"\t";
}
cout<<"\n";
}

system("PAUSE");

return 0;
}

Primjer 31:
Napisati program za ispis članova matrice koji su proizvod istoimenih članova dvije matrice
(c[1,0]=a[1,0]*b[1,0]... ).

RJEŠENJE:

#include <iostream>

#define dim 10

using namespace std;

main()
{

int n,a[dim][dim],b[dim][dim],c[dim][dim]; cout << "Unesi broj redova i kolona N = "; cin

>> n;

cout<<" Unesi clanove matrice A: "<<endl; for (int i=1; i<=n; i++) for (int j=1;j<=n; j++)
{

cout <<"a["<<i<<","<<j<<"]="; cin >>a[i][j];


}

cout<<" Sada unesi clanove matrice B: "<<endl;


for (int i=1; i<=n; i++)
for (int j=1;j<=n; j++)
{

cout <<"b["<<i<<","<<j<<"]=";

cin >>b[i][j];

c[i][j]=a[i][j]*b[i][j];
}

cout<<" Proizvod istoimenih clanova je matrica C: "<<endl;

for (int i=1; i<=n; i++) for (int j=1;j<=n; j++)

cout

<<"c["<<i<<","<<j<<"]="<<a[i][j]*b[i][j]<<endl;

system ("pause"); return 0;


}

Primjer 32:

Napisati program za množenje matrice vektorom.

RJEŠENJE:

//Množenje matrice vektorom.

#include <iostream>

using namespace

std; int main () {

// Unos

int m,n, a[30][30], x[30], b[30];

cout << "Unesite broj kolona u matrici: ";

cin >> m;

cout << "Unesite broj redova matrice: ";


cin >> n;

for (int i=0; i<n; i++)

for (int j=0; j<m; j++) {


cout << "Unesite a(" << i << "," << j << "):

"; cin >> a[i][j];


}

cout << endl;

for (int i=0; i<m; i++) {

cout << "Unesite x(" << i <<

")"; cin >> x[i];


}

// Racunanje

for (int i=0; i<n; i++)

b[i]=0; for (int i=0;i<n; i++)

for (int j=0; j<m; j++)

b[i]+=a[i][j];

// Ispis

cout << endl;

for (int i=0;i<n;i++)

cout << b[i] << endl;

return 0;
}

Primjer 33:

Napisati program za sumu (zbir) tri matrice.

RJEŠENJE: #include <iostream>


#define dim 10

using namespace std;

main()
{

int n,a[dim][dim],b[dim][dim],c[dim][dim],d[dim][dim];

cout << "Unesi broj redova i kolona N = ";

cin >> n;

cout<<" Unesi clanove matrice A: "<<endl; for (int i=1;

i<=n; i++) for (int j=1;j<=n; j++)


{

cout <<"a["<<i<<","<<j<<"]="; cin >>a[i][j];


}

cout<<" Unesi clanove matrice B: "<<endl; for (int i=1;

i<=n; i++) for (int j=1;j<=n; j++)


{

cout <<"b["<<i<<","<<j<<"]="; cin >>b[i][j];


}{

cout<<" Unesi clanove matrice C: "<<endl;


for (int i=1; i<=n; i++)
for (int j=1;j<=n; j++)
cout <<"c["<<i<<","<<j<<"]="; cin

>>c[i][j];

d[i][j]=a[i][j]+b[i][j]+c[i][j];
}

cout<<" Suma ove tri matrice je matrica D: "<<endl;

for (int i=1; i<=n; i++) for (int j=1;j<=n; j++)

cout

<<"d["<<i<<","<<j<<"]="<<a[i][j]+b[i][j]+c[i][j]<<endl;

system ("pause"); return 0;


}

Primjer 34:

Napisati program za sumu (zbir) tri matrice.

RJEŠENJE:

#include <iostream>

#define dim 10 using namespace std; main()


{

int n,a[dim][dim],b[dim][dim],c[dim][dim],d[dim][dim];

cout << "Unesi broj redova i kolona N = "; cin >> n;

cout<<" Unesi clanove matrice A: "<<endl;


for (int i=1; i<=n; i++)
for (int j=1;j<=n; j++)
{

cout <<"a["<<i<<","<<j<<"]="; cin

>>a[i][j];
}

cout<<" Unesi clanove matrice B: "<<endl; for (int

i=1; i<=n; i++) for (int j=1;j<=n; j++)


{

cout <<"b["<<i<<","<<j<<"]="; cin >>b[i][j];


}

cout<<" Unesi clanove matrice C: "<<endl; for (int

i=1; i<=n; i++) for (int j=1;j<=n; j++)


{

cout <<"c["<<i<<","<<j<<"]="; cin >>c[i][j];

d[i][j]=a[i][j]+b[i][j]+c[i][j];
}

cout<<" Suma ove tri matrice je matrica D: "<<endl;

for (int i=1; i<=n; i++) for (int j=1;j<=n; j++)

cout

<<"d["<<i<<","<<j<<"]="<<a[i][j]+b[i][j]+c[i][j]<<endl;

cout<<endl;

cout<<"Izgled matrice D je : "<<endl;


for(int i=1; i<=n; i++)

cout<<endl; for

(int j=1; j<=n; j++)

cout <<d[i][j]<<" \t ";


}
return 0;
}

Primjer 35:

Napisati program za proizvod i sumu (zbir) tri kvadratne matrice NxN.

RJEŠENJE:

#include <iostream>

#define dim 10 using namespace std; int main()


{

int n,a[dim][dim],b[dim][dim],c[dim][dim],d[dim][dim],e[dim][dim];

cout << "Unesi broj redova i kolona N = "; cin >> n;

cout<<" Unesi clanove matrice A: "<<endl; for (int i=1; i<=n; i++) for

(int j=1;j<=n; j++)


{

cout <<"a["<<i<<","<<j<<"]="; cin >>a[i][j];


}

cout<<" Unesi clanove matrice B: "<<endl;

for (int i=1; i<=n; i++) for (int j=1;j<=n;

j++)
{

cout <<" b["<<i<<","<<j<<"]=";

cin >>b[i][j];
}

cout<<" Unesi clanove matrice C: "<<endl;

for (int i=1; i<=n; i++) for (int j=1;j<=n;

j++)
{

cout <<"c["<<i<<","<<j<<"]="; cin

>>c[i][j];

d[i][j]=a[i][j]*b[i][j]*c[i][j];

e[i][j]=a[i][j]+b[i][j]+c[i][j];
}

cout<<endl;

cout<<"Proizvod matrica je matrica D : ";

for(int i=1; i<=n; i++)


{

cout<<endl; for

(int j=1; j<=n; j++)

cout <<d[i][j]<<" \t ";

}cout<<endl;
cout<<endl;

cout<<"Suma matrica je matrica E : ";

for(int i=1; i<=n; i++)


{

cout<<endl; for

(int j=1; j<=n; j++)

cout <<e[i][j]<<" \t ";


}

return 0;
}

Primjer 36:
Napisati program za unos tri kvadratne matrice NxN,ispis sume (zbira) matrica D=A+B ,i
ispis matrice koja je jednaka proizvodu zbira prve dvije matrice i matrice C (E=D*C).

RJEŠENJE:

#include <iostream>

#define dim 10

using namespace std;

int main()
{

int n,a[dim][dim],b[dim][dim],c[dim][dim],d[dim][dim],e[dim][dim]; cout << "Unesi broj

redova i kolona N = "; cin >> n;

cout<<" Unesi clanove matrice A: "<<endl;


for (int i=1; i<=n; i++)
for (int j=1;j<=n; j++)
cout <<" a["<<i<<","<<j<<"]=";

cin >>a[i][j];
}

cout<<"Unesi clanove matrice B: "<<endl;

for (int i=1; i<=n; i++) for (int j=1;j<=n; j++)


{

cout <<"b["<<i<<","<<j<<"]=";

cin >>b[i][j];
}

cout<<"Unesi clanove matrice C: "<<endl;

for (int i=1; i<=n; i++) for (int j=1;j<=n; j++)


{

cout <<" c["<<i<<","<<j<<"]=";

cin >>c[i][j];

d[i][j]=a[i][j]+b[i][j];

e[i][j]=d[i][j]*c[i][j];
}

cout<<"Suma matrice A i matrice B je matrica D: "<<endl;

for (int i=1; i<=n; i++) for (int j=1;j<=n; j++)

cout <<" d["<<i<<","<<j<<"]="<<a[i][j]+b[i][j]<<endl;

cout<<endl;

cout<<"Izgled matrice D je : ";


for(int i=1; i<=n; i++)

cout<<endl; for (int

j=1; j<=n; j++) cout

<<d[i][j]<<" \t ";
}

cout<<endl;
cout<<endl;

cout<<"Proizvod matrice D i matrice C je matrica E: "<<endl;

for (int i=1; i<=n; i++) for (int j=1;j<=n; j++)

cout <<" e["<<i<<","<<j<<"]="<<(a[i][j]+b[i][j])*c[i][j]<<endl;

cout<<endl;

cout<<"Izgled matrice E je : ";

for(int i=1; i<=n; i++)


{

cout<<endl; for (int

j=1; j<=n; j++) cout

<<e[i][j]<<" \t ";
}

return 0;
}

Potprogrami(funkcije u C++
2008-08-02 10:57

1.1 Potprogrami (funkcije) u C++


Potprogrami su izdvojene logičke cjeline unutar programa. Za razliku od Pascala, koji
razlikuje procedure i funkcije, C/C++ poznaje samo funkcije. Funkcija je zamišljena tako da
vrati vrijednost koja odgovara njenom tipu (pomoću naredbe return). Ako funkcija umjesto
tipa ima oznaku void, tada ne vraća vrijednost, odnosno, predstavlja pandan proceduri.

Opći oblik funkcije :

<povratni tip ili void> ime_funkcije (<tip> pari, <tip> par2, ... ,<tip> par N)
{ <blok instrukcija> return <povratna vrijednost>; // izostavlja se ako je funkcija tipa void
}

Razlikujemo formalne parametre (navode se u zaglavlju funkcije) i stvarne parametre


(navode se kod poziva funkcije). Prilikom poziva funkcije formalni parametri poprime
vrijednosti odgovarajućih stvarnih parametara.

Primjer :

#include <iostream.h>
float kvadrat (float x){
return x * x;
}

void main () { // main je rezervirano ime


float broj;
float kvad = kvadrat (broj);
cout << broj << “ na kvadrat iznosi “ << kvad << endl;
}

1.1.1 Koncept globalnih i lokalnih podataka


Globalni podaci dostupni su u svim dijelovima programa (osim u funkcijama gdje su
definirani istoimeni lokalni podaci), dok su lokalni dostupni isključivo u okviru funkcije gdje
su definirani.

Primjer :
#include <iostream.h> int a,b;
float c,d; // a,b,c,d su globalne varijable void main () {
int e,f; //varijable e,f lokalne su za funkciju main
char a,c // varijable a,c lokalne su za funkciju main i prekrivaju
// istoimene globalne varijable
a = ‘A’; c = ‘B’;
b = 5; // globalne varijable b,d dostupne su unutar funkcije main
d = 3.14;
}

1.1.2 Statički članovi


Statički članovi označavaju se pomoću ključne riječi static.
Statička lokalna varijabla ima doseg lokalne, a trajanje globalne varijable :

Primjer :

#include <iostream.h>
void funkcija_stat () {
int a;
static int b;
cout << "a = " << a << endl;
cout << "b = " << b << endl;
a = 5;
b = 10;
}

void main () {
cout << "1. poziv funkcije :" << endl;
funkcija_stat();
cout << "2. poziv funkcije :" << endl;
funkcija_stat();
}

Daje slijedeći ispis kao rezultat :

1. poziv funkcije
: a = 6618616
b=0
2. poziv funkcije
: a = 6618616
b = 10

Vrijednost statičke lokalne varijable b ostala je sačuvana do slijedećeg poziva funkcije.

1.1.3 Pokazivači i reference kao argumenti


Osim prijenosa argumenata po vrijednosti, moguće je koristiti pokazivače i reference kao
argumente. U tom slučaju funkcija ne vrši obradu nad kopijama podataka nego nad
originalnim podacima.

Primjer (pokazivači kao argumenti) :

#include <iostream h>


void zamjena (int *prvi, int *drugi){
int pom = *prvi;
*prvi = *drugi;
*drugi = pom;
}

void main (){ int a=5; int b=10;


zamjena (&a,&b); cout << “a = “ << a << endl; // 10 cout << “b = “ << b << endl;
// 5 }

Primjer (reference kao argumenti) :

#include <iostream.h>
void zamjena (int &prvi, int &drugi) {
int pom = prvi;
prvi = drugi;
drugi = pom;
}

void main (){ int a=5; int b=10; zamjena (a,b);


cout << “a = “ << a << endl; // 10 cout << “b = “ << b << endl; // 5 }

1.1.4 Preopterećenje funkcija


Preopterećenje omogućuje korištenje istog imena za različite funkcije, pri čemu se te funkcije
međusobno razlikuju po tipu argumenata u svom zaglavlju.

Primjer:

#include <iostream.h>
void funkcija (int n){
cout << “n (int) = “ << n << endl;
}

void funkcija (float n){


cout << “n (float) = “ << n << endl;
}

void main () {
int a=5; float
b=3.125;
funkcija (a); //cjelobrojni parametar
funkcija (b); //realni parametar }

1.1.5 Rekurzivna funkcija

Rekurzija je svojstvo potprograma (funkcije) da može pozivati sam sebe.

Primjer (računanje n!) :

#include <iostream.h>
int fakto (int n){
if (n ==1) //sidreni uvjet
return 1;
else
return n*fakto (n - 1); //pojednostavljenje
}

void main () {
cout << fakto (5) << endl;
}

Za realizaciju rekurzivne funkcije potrebno je osigurati slijedeće :


Sidreni izraz : 1! = 1
Rekurzivnu formulu ili postupak : n! = n * (n - 1)!
Sidreni izraz omogućuje izlazak iz rekurzivne funkcije (tj. sprijećava beskonačno pozivanje
funkcije), a rekurzivna formula ili postupak trebaju pojednostaviti zadatak, odnosno, približiti
ga rješenju zadanom kao sidreni izraz.

1.1.6 Pretprocesorska naredba #include

#include kaže kompilatoru da na njeno mjesto ubaci sadržaj zadane datoteke.

Sintaksa :

#include "naziv datoteke"

ili

#include <naziv datoteke>

Primjer :
Sadržaj datoteke “vanjska.cpp” uključujemo u program, čiji izvorni kod se nalazi u datoteci
“Ukljuci.cpp” .

Datoteka “Ukljuci.cpp” : #include <iostream.h>


#include
"vanjska.cpp" void
main () {
v_var = 10; // Globalna varijabla
f_vanj ska();
}

Datoteka “Vanjska.cpp”:
int v_var;
void f_vanjska (){
cout «"Vanjska funkcija" << endl;
}

Funkcija f_vanjska poziva se na isti način kao da je uključena u glavnu datoteku.

1.1.7 Standardne biblioteke funkcija

1.1.7.1 iostream.h
Biblioteka iostream definira razrede (klase) koje podržavaju rad s ulaznim i izlaznim
tokovima.

1.1.7.1.1 Predefinirani objekti tokova C++ :


Ime Tip razreda Opis
cin ulazni tok
Pridružen standardnom ulazu (tipkovnica)
cout izlazni tok
Pridružen standardnom izlazu (ekran)
cerr
izlazni tok
Pridružen standardnom izlazu u slučaju pogreške (ekran) s izlazom bez korištenja
međuspremnika

clog
izlazni tok
Pridružen standardnom izlazu u slučaju pogreške (ekran) s izlazom uz korištenje
međuspremnika

1.1.7.2 string.h
1.1.7.2.1 Funkcije za kopiranje
void *memcpy(void *s1, const void *s2, size t n);
Kopira n znakova s memorijskog područja s2 u s1. Radi kao strncpy ali ne stane kod null
znakova. Ne radi ako se memorijska područja preklapaju.

void *memmove(void *s1, const void *s2, sizet n);


Slično memcpy() ali radi čak i ako se memorijska područja preklapaju.

char *strcpy(char *s1, const char *s2);


Kopira s1 u s2 tako dugo dok se ne iskopira null znak.
char *strncpy(char *s1, const char *s2, size_t n);
Kao strcpy(), ali kopira najviše n znakova.

1.1.7.2.2 Funkcije spajanja polja znakova


char *strcat(char *s1, const char *s2);
Dodaje kopiju s2 na kraj polja s1.

char *strncat(char *s1, const char *s2, sizet


n); Kao strcat(), ali dodaje najviše n znakova.

1.1.7.2.3 Funkcije uspoređivanja


int memcmp(const void *s1, const void* s2, sizet n);
Kao strncmp() ali ne stane kod null znakova.

int strcmp(const char *s1, const char* s2);

Uspoređuje argumente i vraća cijeli broj kao rezultat (0 ako je si jednak s2).

int strcoll(const char *s1, const char* s2);


Slično strcmp() ali koristi lokalno definiran poredak znakova umjesto originalnog.

int strncmp(const char *s1, const char* s2, size_t n);


Kao strcmp(), ali uspoređuje najviše n znakova.

sizet strxfrm(char *s1, const char *s2, sizet n);


Transformacija polja znakova. Transformira s2 u prostor jednak onom kojeg zauzima si tako
da se rezultat može uspoređivati s strcmp().

1.1.7.2.4 Funkcije za pretraživanje


void *memchr(const void *s, int c, size_t n);

Kao strchr(), ali stane nakon prvih n znakova umjesto nakon null znaka.

char *strchr(const char *s, int c);


Vraća pokazivač na prvo pojavljivanje znaka c u polju znakova s, ili NULL pokazivač ako se
c ne pojavljuje u polju znakova.

size t strcspn(const char *s1, const char *s2);


Vraća dužinu početnog segmenta polja znakova si koje se u potpunosti sastoji od znakova
koji nisu iz s2.
char *strpbrk(const char *s1, const char *s2);
Vraća pokazivač na prvo pojavljivanje polja znakova s1, na bilo koji znak iz polja znakova
s2, ili na NULL pokazivač ako nema znakova iz s2 koji postoje u s1.

char *strrchr(const char *s, int c);


Vraća pokazivač na zadnje pojavljivanje znaka c u polju znakova s, ili NULL pokazivač ako
c ne postoji u polju znakova.

sizet strspn(const char *s1, const char *s2);


Vraća dužinu početnog segmenta polja znakova si koja se u potpunosti sastoji od znakova iz
polja znakova s2.

char *strstr(const char *s, const char *pat);


Vraća pokazivač na prvo pojavljivanje uzorka polja znakova pat u s.

1.1.7.2.5 Razne funkcije


void *memset(void *s, int c, size_t n);

Postavlja prvih n znakova u memorijskom području s na vrijednost znaka c. char

*strerror(int errnum);

Vraća pokazivač na tekst poruke za zadani broj pogreške. size t strlen(const char *s);
Vraća broj znakova u s, ne računajući null znak za prekidanje polja znakova.

1.1.7.3 math.h

1.1.7.3.1 Trigonometrijske funkcije


double acos(double x);

Daje arkus arc cos od x. Domena: -1 do +1. Raspon: 0 do pi.

double asin(double x);

Daje arc sin od x. Domena: -1 do +1. Raspon: -pi/2 do pi/2.

double atan(double x);

Daje arc tan od x. Domena: nedefinirana. Raspon: -pi/2 do pi/2.

double atan2(double x, double y);


Vrijednost arc tan od y/x, koristi predznak oba argumenta za određivanje kvadranta povratne
vrijednosti.
Bilo x ili y mogu biti nula, ali ne oba.

double cos(double x);


Kosinus od x, gdje je x u radij anima.

double sin(double x);


Sinus x, gdje je x u radijanima.
double tan(double x);
Tangens od x, gdje je x u radij anima.

1.1.7.3.2 Eksponencijalne i logaritamske funkcije


double exp(double x);
Eksponencijalna funkcija od x.

double frexp(double x, int *eksponent);


Rastavlja broj x na mantisu i eksponent na bazu 2, tako da je rezultat funkcije mantisa, a
eksponent se pohranjuje na mjesto drugog argumenta funkcije.

double ldexp(double x, int eksponent);


Računa broj na temelju zadane mantise i eksponenta; inverzna funkcija je frexp.

double log(double);
Prirodni logaritam.

double log10(double);
Logaritam po bazi 10.

double modf(double x, double *cijeliDio);


Rastavlja x na njegov cijeli i decimalni dio.

1.1.7.3.3 Funkcije za potenciranje


double pow(double baza, double eksponent);
Potenciranje; argumenti su baza i eksponent.

double sqrt(double x);


Kvadratni korijen od x.

1.1.7.3.4 Najbliži cijeli broj, apsolutna vrijednost, i funkcije ostatka dijeljenja


double ceil(double x);
Najbliži veći cijeli broj od x.

double fabs(double x);


Apsolutna vrijednost realnog broja x.

double floor(double x);


Najbliži manji cijeli broj od x.

double fmod(double x, double y);


Ostatak dijeljenja realnih brojeva x i y.

1.1.7.4 ctype.h

1.1.7.4.1 Funkcije testiranja znakova


int isalnum(int ch); ch je
alfanumerički znak.
int isalpha(int ch); ch je slovo.

int iscntrl(int ch);

Provjerava je li znak neki kontrolni znak (ASCII kodovi 0..31 i 127).

int isdigit(int ch);

Provjerava je li ch znamenka (0..9). int isgraph(int ch);


ch je znak za ispis; kao isprint osim što vraća false za razmak.
int islower(int ch); ch je malo slovo.

int isprint(int ch);


Provjerava je li ch znak za ispis (ASCII kod između 32 i 126).

int isspace(int ch);


Je li znak praznina (razmak, tab, znak CR, znak za novi red, ili prijelaz na novu stranicu).

int isupper(int ch);

Provjerava da li je ch veliko slovo.

int isxdigit(int ch);


Provjerava da li je ch heksadecimalni broj, 0 - F.

1.1.7.4.2 Funkcije za promjenu malih/velikih slova


int tolower(int ch);

Ako ch predstavlja veliko slovo, rezultat je odgovarajuće malo slovo.

int toupper(int ch);


Ako ch predstavlja malo slovo, rezultat je odgovarajuće veliko slovo.

You might also like