You are on page 1of 62

1.

Обим или површина 3


2. Калкулатор-примјер са насилним прекидом програма у случају грешке 4
3. Калкулатор-примјер са кориштењем логичке промјењиве 6
4. Назив унесеног мјесеца и број дана у том мјесецу 7
5. Факторјел-for петља 8
6. Факторјел-позив функције 9
7. Факторјел-рекурзивно 9
8. Савршен број 10
9. Најмањи заједнички садржилац 10
10. Највећи заједнички дјелилац 12
11. Прост број 12
12. Квадратна једначина 13
13. Фибоначијев број-рекурзивно 15
14. Фибоначијев низ 15
15. Минималан члан низа 16
16. Листа простих 16
17. Аритметичка средина низа 18
18. Сортирање низа 18
19. Елементи на главној дијагонали 19
20. Дијагонална матрица 20
21. Производ-матрица са скаларом 21
22. Производ-двије матрице 22
23. Транспонована матрица 23
24. Ханој 24
25. Паскалов троугао 25
26. Сабирање и одузимање комплексних бројева-класе 26
27. Apsolutna vrijednost 27
28. Ispis prvih 20 brojeva 27
29. Pridruživanje slova 28
30. Zvučni signal 28
31. Pozdrav korisniku 29
32. Površina kruga 30
33. Kvadrat broja 30
34. Stepenovanje 31
35. Pozdrav u više radova 31
36. Negativan broj u pozitivan 32
37. Tri osnovne operacije 33
38. Djeljenje dva broja 33
39. Djeljenje sa ostatkom 34
40. Broj osvojenih bodova 35
41. Operatori obnavljajućeg pridruživanja 36
42. Ime korisnika i njegove godine 37
43. Trocifreni brojevi djeljivi sa 9 38
44. Zapremina kupe 38
45. Heronov obrazac 39
46. Paranost broja 40
47. Ispis brojeva u određenom rasponu 41
48. Tablica množenja 42
49. Faktorijel 42
50. Kalkulator 43
51. Kvadrati zadanog niza 44
52. Djeljivost brojeva 45
53. Brojač studenata 46
54. Srednja vrijednost 47
55. Suma faktorijela 48
56. NZD Najveći zajednički djelilac - NZD 48
57. NZS Najmanji zajednički sadržilac- NZS. 50
58. Hanojski stubovi 1 51
59. Hanojski stubovi 2 51
60. Dani u sedmici 53
61. Šahovska tabla 55
62. Savršeni brojevi 56
63. Zbir dva vektora 57
64. Napisati C program koji će pronaći i ispisati na ekran sve trocifrene brojeve kod
kojih je suma cifri djeljiva sa 7. 59
65. Napisati program koji će pronaći i ispisati na ekran koliko ima peterocifrenih
brojeva kod kojih je suma zadnje 4 cifre jednaka prvoj cifri. 59
1. Обим или површина
Начинити програм који за унесене вриједности страница троугла израчунава обим или
површину троугла у зависности од избора: тастер 1 обим О, тастер 2 површина P.
Програм се рјешава кориштењем наредбе switch, гдје у зависности од избора идемо
на низ наредби за израчунавање обима или низ наредби за израчунавање површине. Прије
преласка на само израчунавање провјерава се да ли је која од страница троугла једнака 0, и
да ли унесене вриједности чине странице троугла ( збир 2 странице мора не смије бити мањи
или једнак трећој).

#include <iostream>
#include <cmath>
using namespace std;
//deklaracija promjenljivih
float O, P, S, a,b,c;
int izbor;
int main()
{
cout <<"Unesite vrijednost prve stranice a= ";
cin >>a;
cout <<"Unesite vrijednost druge stranice b= ";
cin >>b;
cout <<"Unesite vrijednost trece stranicec= ";
cin >>c;
if ((a==0) || (b==0) || (c==0))//da li su unesene vrijednosti 0
{
cout << "Vrijednosti stranica trougla ne smiju biti <= 0!";
system("Pause");
goto kraj;
}
if ((a+b<=c) || (b+c<=a) || (a+c<=b))//cine li stranice trougla
{
cout << "Unesene vrijednosti ne cine stranice trougla!";
system("Pause");
goto kraj;
}
cout <<"Ako zelite obim trougla trougla 'O' pritisnite taster 1, ako
zelite povrsinu trougla 'P' pritisnite taster 2"<<endl;
cin >>izbor;
switch(izbor)//u zavisnosti od izbora
{
case 1: O=a+b+c;
cout <<" Obim trougla je: " <<O<<endl;
system("Pause");
break;
case 2: S=(a+b+c)/2;
P=sqrt(S*(S-a)*(S-b)*(S-c));
cout <<"Povrsina trougla je: "<<P<<endl;
system("Pause");
break;
default: cout <<" Mozeta izabrati taster 1 ili taster 2!";
system("Pause");
break;
}
kraj:return 0;
}
2. Калкулатор-примјер са насилним прекидом програма у случају
грешке
Начинити програм који извршава 4 основне аритметичке операције: сабирање,
одузимање, множење и дијељење.
Програм се рјешава кориштењем наредбе switch, у случају покушаја дијељења са 0
програм се насилно прекида.

#include <iostream>
using namespace std;

float f1(float par1, float par2, char oper)//funkcija koja izracunava


vrijednosti
{
float privremena=0;
switch (oper)
{
case '+':privremena=par1+par2;
break;
case '-':privremena=par1-par2;
break;
case '*':privremena=par1*par2;
break;
case '/':if (par2==0)
{
cout <<"Dijeljenje sa nulom nije dozvoljeno!";
system("Pause");
exit(-1);//ako je parametar <>1 kao rezultat daje
nasilno prekidanje programa
break;
}
else
{
privremena=par1/par2;
break;
}
default: cout <<"Program radi samo 4 osnovne aritmeticke operacije:
+, -, *, / "<<endl;
}
return privremena;
}
float main()//glavni program
{
float parametar1, parametar2, rezultat;
char operacija;

cout <<" Unesi prvi broj ";


cin >> parametar1;
cout <<endl;
cout <<" Unesi drugi broj ";
cin >> parametar2;
cout <<endl;
cout <<" Unesi operaciju ";
cin >> operacija;
cout <<endl;

rezultat=f1(parametar1, parametar2, operacija);


cout << " Rezultat " << operacija << " brojeva " <<parametar1 << " i "<<
parametar2 << " iznosi "<< rezultat<<endl;
system ("Pause");
return 0;
}
3. Калкулатор-примјер са кориштењем логичке промјењиве
Задатак је исти као и предходни али се у рјешење уводи нова промјењива логичког
типа indGreske (bool) и у зависности од стања промјењивих ова промјењива поприма
вриједности true или false па самим тим диктира даље иѕвршавање програма.
#include <iostream>
using namespace std;

float f1(float par1, float par2, char oper, bool& indGreske)//funkcija sa 4


parametra, uvodim parametar bool koji ce mi omoguciti izlazak iz programa
{
float privremena=0;
switch (oper)
{
case '+':privremena=par1+par2;
break;
case '-':privremena=par1-par2;
break;
case '*':privremena=par1*par2;
break;
case '/':if (par2==0)
{
indGreske=false;//omogucice mi izlazak iz
programa ukoliko je djelilac jednak 0
break;
}
else
{
privremena=par1/par2;
break;
}
default: cout <<"Program radi samo 4 osnovne aritmeticke operacije:
+, -, *, / "<<endl;
}
return privremena;
}
float main()
{
float parametar1, parametar2, rezultat;
char operacija;
bool indGreske=true;//postavljam indikator na vrijednost istinito

cout <<" Unesi prvi broj ";


cin >> parametar1;
cout <<endl;
cout <<" Unesi drugi broj ";
cin >> parametar2;
cout <<endl;
cout <<" Unesi operaciju ";
cin >> operacija;
cout <<endl;
rezultat=f1(parametar1, parametar2, operacija, indGreske);
if (indGreske==true)//vrsim ispis u zavisnosti od indikatora greske
{
cout << " Rezultat " << operacija << " brojeva " <<parametar1 << " i
"<< parametar2 << " iznosi "<< rezultat<<endl;
system ("Pause");
}
else
{
cout <<"Dijeljenje sa nulom nije dozvoljeno!";
system("Pause");
}
return 0;
}
4. Назив унесеног мјесеца и број дана у том мјесецу
Начинити програм који за унесену годину изинтервала 1901-2099 и бројчану ознаку
мјесеца 1-12 исписује назив мјесеца и број дана у том мјесецу. Провјерити да ли је година
преступна.

Проблем се рјешава са двије switch наредбе. Преступне године су све дјељиве с 4, ако нису
дјељиве са 100, којима се додају оне коју су дјељиве са 400.-програм провјерава да ли је
година дјељива са 4, да не би копликовали са разгранатом структуром.

#include <iostream>
using namespace std;

int main ()
{
int godina, mjesec,privremena;//deklaracija promjenljivih
cout << "Unesi godinu iz intervala 1901-2099: ";
cin >>godina;
cout << "Unesi mjesec predstavljen brojcanom vrijednoscu 1-12: ";
cin >>mjesec;
if ((godina>=1901) && (godina<=2099))//kontrola unosa godine
{
switch (mjesec)//swich za broj dana u mjesecu
{
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
switch (mjesec) //swich za naziv mjeseca
{
case 1: cout<<"Januar";
break;
case 3: cout<<"Mart";
break;
case 5: cout<<"Maj";
break;
case 7: cout<<"Juli";
break;
case 8: cout<<"Avgust";
break;
case 10: cout<<"Oktobar";
break;
case 12: cout<<"Decembar";
break;
}
cout <<" ima 31 dan!";
system("Pause");
break;
case 4:
case 6:
case 9:
case 11:
switch (mjesec)
{
case 4: cout<<"April";
break;
case 6: cout<<"Juni";
break;
case 9: cout<<"Septembar";
break;
case 11: cout<<"Novembar";
break;
}
cout <<" ima 30 dana!";
system("Pause");
break;
case 2:
cout <<"Februar";
if (godina%4==0)//provjeravam da li je prestupna
{
cout<<" prestupna je godina i ima 29 dana!";
system("Pause");
}
else
{
cout <<" ima 28 dana!";
system("Pause");
}
break;
default: cout<<" Oznaka mjeseca mora biti iz intervala 1-12";
system("Pause");
break;
}
}
else
{
cout<<"Unesui godinu iz navedenog intervala!";
system("Pause");
}
return 0;
}
5. Факторјел-for петља
Начинити програм који израчунава факторјел унесеног броја.
Програм се рјешава кориштењем једне for петље и акумулирањем проиѕвода бројева
од 1 до тражене вриједности. Акумулирани производ чини коначно рјешење.
#include <iostream>
using namespace std;

int main()
{
double Broj, FaktorJ;//deklaracija promjenljivih
int Brojac;

cout << "Unesi broj ciji ! zelis" << endl;


cin >> Broj;//unos broja ciji se ! zeli
FaktorJ=1;//pocetna vrijednost

for(Brojac=1;Brojac<=Broj;Brojac=Brojac+1)
{
FaktorJ=FaktorJ*Brojac;//izracunavanje u for petlji
}
cout << "Faktorjel broja "<<Broj<< " iznosi: " << FaktorJ << endl;
system("Pause");
return 0;
}
6. Факторјел-позив функције

Програм је начињен тако да се израчунавање вриједности факторјела извршава у


посебној функцији. Из главног програма извршавам позив функције и тако долазим до
жељеног резултата.

#include <iostream>
using namespace std;

double F1 (double B)//Funkcija koja izracunava ! zadatog broja


{
double FJ=1;
int Brojac;

for(Brojac=2;Brojac<=B;Brojac+=1)
{
FJ=FJ*Brojac;
}
return FJ;//Izracunata vrijednost !
}

float main()//Glavni program koji poziva funkciju


{
double Broj, FaktorJ;//Deklaracija promjewivih

cout << "Unesite broj ciji ! zelite" << endl;


cin >> Broj;

FaktorJ=F1(Broj);//Poziv funkcije

cout << "Rezultat je: " << FaktorJ <<endl;


system("Pause");
return 0;

7. Факторјел-рекурзивно
До рјешења се долази рекурзивним позивом функције .
#include <iostream>
using namespace std;
//definisem promjenjive
int n;
long double FaktorJ;
//ovo je funkcija koja izracunava !
long double Fak (int n)
{
if (n<=0) return 1; //ako je n<=0 vraca 1 i time oznacava da je greska

else
{
return Fak(n-1)*n;//rekurzivni poziv funkcije
}
}
//glavni program
int main()
{
cout << "Unesi prirodan broj ciji ! zalis ";
cin >>n;
FaktorJ=Fak(n);
cout <<" Vrijednost "<<n<<"! je: "<<FaktorJ<<endl;
system("Pause");
return 0;
}
8. Савршен број
Начинити програм који провјерава да ли је учитани број савршен.
Број је савршен ако је једнак суми свих својих дјелилаца ( сам број се не рачуна).

//6, 28, 496, 8128


#include <iostream>
using namespace std;
int Broj,i,Suma;

int main()
{
cout <<"Unesi broj za koji zelis provjeriti da li je savrsen!";
cin >> Broj;
Suma=1;
for (i=2;i<=(Broj/2);i++)//dovoljno je provjeriti djelioce do polovine
broja
{
if(Broj%i==0)//provjeravam da li je djeljiv
{
Suma+=i;//akumuliram djelioce
}
}
if (Broj==Suma)//da li je jednak sumi svojih djelioca
{
cout<<" Broj "<<Broj<<" je savrsen!";
}
else
{
cout<<" Broj "<<Broj<<" nije savrsen!";
}
system("Pause");
return 0;
}
9. Најмањи заједнички садржилац
Начинити програм који израчунава најмањи заједнички садржилац два природна
броја.
Проблем се рјешава са двије do while петље, при чему је једна петљa угнијежђена у
другу. Првом петљом контролишем бројеве и петља се извршава док бројеви нису једнаки
јединици, исто тако мијењам вриједност бројача помоћу кога вршим дијељење бројева и
акумулирам садржилац.
Друга петља дијели бројеве (раставља бројеве на просте факторе) и то за вриједност
бројача док је остатак једнак нули. Имам три различита случаја:
1. оба броја дјељива-дијелим оба (цјелобројно)
2. први број дјељив-дијелим први
3. други број дјељив-дијелим други
Кад бројеви нису дјељиви бројачем излазим из угнијежђене петље и мијењам
вриједност бројача.
#include <iostream>
using namespace std;
//Deklarisem potrebne promjenjive
int PrviBroj, DrugiBroj, Sadrzilac, Brojac;
int OstatakPrvi, OstatakDrugi;

int main ()
{
cout << "Unesi vrijednost prvog broja ";
cin >> PrviBroj;
cout << "Unesi vrijednost drugog broja ";
cin >> DrugiBroj;
if ((PrviBroj<=0)||(DrugiBroj<=0))
{
cout<<"Program funkcionise za cijele brojeve vece od 0";
system("Pause");
goto kraj;
}
Sadrzilac=1;
//Postavljam pocetnu vrijednost Brojaca i sadrzioca
Brojac=1;
//Brojac je kontrolna promjenjiva a sadrzilac akumulativna
//dvije do petlje, prva ima zadatak da odbrojava brojac od 2 do najveceg prostog
faktora najmanjeg zajednickog sadrzioca
do
{
Brojac=Brojac+1;//ako ne stavim brojac na 2 upadam u beskonacnu
petlju
OstatakPrvi=PrviBroj%Brojac;
OstatakDrugi=DrugiBroj%Brojac;//racunam ostatak dijeljenja sa
aktivnim brojacem
do
{
//imam 3 opcije 1.oba broja djljiva
if((OstatakPrvi==0) && (OstatakDrugi==0))
{
PrviBroj=PrviBroj/Brojac;
DrugiBroj=DrugiBroj/Brojac;
Sadrzilac=Sadrzilac*Brojac;
OstatakPrvi=PrviBroj%Brojac;
OstatakDrugi=DrugiBroj%Brojac;
}//2.prvi broj djeljiv
if (OstatakPrvi==0)
{
PrviBroj=PrviBroj/Brojac;
Sadrzilac=Sadrzilac*Brojac;
OstatakPrvi=PrviBroj%Brojac;
}//3.drugi broj djeljiv
if (OstatakDrugi==0)
{
DrugiBroj=DrugiBroj/Brojac;
Sadrzilac=Sadrzilac*Brojac;
OstatakDrugi=DrugiBroj%Brojac;
}}
while ((OstatakPrvi==0) || (OstatakDrugi==0));
//unutrasnja while zavrsava kad su oba ostatka razlicita od nule
}
while ((PrviBroj!=1) || (DrugiBroj!=1));
//spoljna while zavrsava kad su oba broja svedena na 1-podijeljena do
kraja

//ispisujem akumulirani Sadrzilac


cout << "Najmanji zajednicki sadrzilac za brojeve je: " <<
Sadrzilac;
system ("Pause");
kraj:return 0;
}
10. Највећи заједнички дјелилац
Начинити програм који израчунава највећи заједнички дјелилац два природна броја.
Проблем је ријешен Еуклидовим алгоритмом: већи број дијелим мањим, затим мањи
остатком дијељења, потом тај остатак новим остатком и настављам поступак док не добијем
остатак нула-последњи остатак различит од нуле је највећи заједночки дјелитељ ( највећа
заједничка мјера).

#include <iostream>
using namespace std;

int main()
{
//deklaracija promjenjivih i unos
int Broj1,Broj2,Ostatak;

cout <<"Unesi brojeve ciji najveci zajednicki djelilac zelis (2 broja):


"<<endl;
cout<<"Prvi broj: ";
cin>>Broj1;
cout<<"Drugi broj: ";
cin>>Broj2;
if((Broj1==0) || (Broj2==0)) //brojevi moraju biti razliciti od 0
{
cout<<"Brojevi moraju biti razliciti od 0";
system ("Pause");
goto kraj;//nasilni izlazak iz programa
}
else
{
//dijelim cjelobrojno (ostatak) veci sa manjim, dok ostatak nije
nula, poslednji ostatak je rjesenje
do
{
if (Broj1>Broj2)
{
Ostatak=Broj1%Broj2;
Broj1=Broj2;
Broj2=Ostatak;
}
else
{
Ostatak=Broj2;
Broj2=Broj1;
Broj1=Ostatak;
}
}
while (Broj2!=0);
}//ispisujem rjesenje
cout<< "Najveci zajedniski djelilac je: "<<Broj1<<endl;
system ("Pause");
kraj:return 0;
}
11. Прост број
Начинити програм који провјерава да ли је учитани број прост.
Број је прост ако је дјељив са 1 и са самим собом. Број је прост ако не постоји ни један
цјелобројни дјелилац броја из интервала од 1 до квадратног коријена броја.
#include <iostream>
#include <cmath>
using namespace std;
//Deklarisem promjenljive
int Broj;
bool ProstBroj;
//funkcija koja vraca logicku promjenljivu tacno ako je zadti broj prost
bool prost(int br)
{
int i;
bool Prostbr;
//van petlje su 3 vrijednosti, zato sto je u petlji od 3 pa navise
if ((br==1) || (br==2) || (br==3))
{
Prostbr=true;
}
else
{//ako nije paran
if (br%2!=0)
{//provjeravam do korijena broja, toliko je dovoljno da ne idem do
kraja
for (i=3; i<= (int)sqrt((double)br)+1; i+=2)
{//da li je djeljiv
if (br%i==0)
{
Prostbr=false;
}
else
{
Prostbr=true;
}
}
}
else
{
Prostbr=false;
}
}
return Prostbr;
}

int main()
{
cout << "Unesi broj za koji zelis provjeriti da li je u skupu prostih
brojeva."<<endl;
cin>> Broj;
//poziv funkcije
ProstBroj=prost(Broj);
if (ProstBroj==true)
{
cout <<"Broj " << Broj<<" je prost." <<endl;
system("Pause");
}
else
{
cout <<"Broj " << Broj<<" nije prost." <<endl;
system("Pause");
}
return 0;
}
12. Квадратна једначина
Начинити програм који израчунава рјешења квадратне једначине.
Рјешење се може подијелити у 2 цјелине:
1. провјеравам вриједности коефицијената, у случају да даљи рачун има смисла
прелазим на корак 2
2. израчунавам детерминанту, па на основу вриједности детерминанте рачунам рјешења
једначине.

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

int main()
{
float a,b,c,D,Pom,Real,Imag,X1,X2;
//unos koeficijenata
cout <<"Unesi vrijednost koeficijenata kvadratne jednacine"<<endl;
cout << "a=";
cin >>a;
cout << "b=";
cin >>b;
cout << "c=";
cin >>c;
if ((a==0) && (b==0) && (c==0))//svi koeficijenti nule
{
cout << "Ovakva kvadratna jednacina ima beskonacno mnogo rjesenja!"<<endl;
system ("Pause");
goto kraj;
}
if ((a==0) && (b==0) && (c!=0))//samo c razlicito od nule-jednacina nemoguca
{
cout << "Ovakva kvadratna jednacina je nemoguca!"<<endl;
system ("Pause");
goto kraj;
}
if ((a==0) && (c==0) && (b!=0))//a i c razlicito od nule-rjesenja ista i to 0
{
cout <<" Rjesenja ovakve kvadratne jednacine su ista i to X1=X2=0"<<endl;
system ("Pause");
goto kraj;
}
if ((a==0) && (b!=0) && (c!=0))//b i c razlicito od nule-linearna jednacina
{
X1=-c/b;
cout <<"Kvadratna jednacina je svedena na linearnu i iznosi: " <<X1<<endl;
system ("Pause");
goto kraj;
}
D=b*b-4*a*c;//racunam determinantu(3 slucaja vrijednosti determinante)
Pom=a+a;
if (D==0)
{
X1=-b/Pom;
cout <<" Rjesenja ovakve kvadratne jednacine su ista i to X1=X2=
"<<X1<<endl;
system ("Pause");
}
else
{
if (D<0)
{
Real=-b/Pom;
Imag=sqrt(-D)/Pom;
cout << "Prvo rjesenje X1=" <<Real<<"+"<<Imag<<" i"<<endl;
cout << "Drugo rjesenje X2=" <<Real<<"-"<<Imag<<" i"<<endl;
system("Pause");
}
else
{
X1=(-b+sqrt(D))/Pom;
X2=(-b-sqrt(D))/Pom;
cout << "Prvo rjesenje X1="<<X1<<endl;
cout << "Drugo rjesenje X2="<<X2<<endl;
system("Pause");
}
}
kraj:return 0;
}
13. Фибоначијев број-рекурзивно
Начинити програм који за учитани број израчунава вриједност члана Фибоначијевиг
низа чији је индекс учитани број.
Рјешење: F0=1; F1=1 ; Fn=Fn-1+Fn-2
#include <iostream>
using namespace std;

int N,i;
//funkcija koja racuna clan niza rekurzivno
int Fib(int N)
{
if (N<=1) return 1;//za svaki N<=1 kao rezultat vraca 1
else return Fib(N-1)+Fib(N-2);
}
int main()
{
cout<<"Unesi indeks clana Fibonacijevog niza koji zelis: ";
cin>>N;
//Poziva funkciju i stampa
cout<<"Fibonaci["<<N<<"]="<<Fib(N)<<endl;

system ("Pause");
return 0;
}
14. Фибоначијев низ
Начинити програм који исписује Фибоначијев низ до индекса броја који се уноси са
тастатуре.

#include <iostream>
using namespace std;

int N,i;
int X[100];

int main()
{
cout<<"Unesi granicnu vrijednost Fibonacijevog niza <100: ";
cin>>N;
//provjerava da li je N veci ili jednak nuli
if (N<0)
{
cout<<"Granicna vrijednost ne moze biti manja od 0";
system("Pause");
}
else
//ako jeste racuna clanove niza do N i smijesta ih u niz X
{
X[0]=1;
X[1]=1;
for(i=2;i<N;i++)
{
X[i]=X[i-1]+X[i-2];
}
}
//ispisuje clanove niz X
for(i=0;i<N;i++)
{
cout<<"Fibonaci["<<i<<"]="<<X[i]<<endl;
}
system("Pause");
return 0;
}
15. Минималан члан низа
Начинити програм који проналази и штампа минималан члан низа.
Програм ради тако да први члан низа проглашава минималним, затим га упоређује са
осталим члановима, када нађе да је неки члан низа мањи од минималног узима њега за
минималан и тако до краја низа.
#include <iostream>
using namespace std;
//deklarcija promjenljivih
int N, MinC, i;
int X[100];

int main()
{//unos granicne vrijednosti niza
cout<<" Unesi broj clanova niza <100 :";
cin>>N;
//unos clanova niza
for (i=0;i<N;i++)
{
cout<<i<<". clan niza iznosi "<<"X["<<i<<"]=";
cin>>X[i];
}
//prvi clan niza proglasavam minimalnim
MinC=X[0];
for (i=1;i<N;i++)
{
//ulazim u petlju i poredim moj minimalan sa ostalim clanovima niza, kad nadjem
manji on je minimalan
if (X[i]<MinC)
{
MinC=X[i];
}
}
//stampam najmanji
cout<<"Minimalan clan niza je clan: "<<MinC<<endl;
system("Pause");
return 0;
}
16. Листа простих
Начинити програм који за учитану границу интервала исписује све просте бројеве до
границе интервала.
Проблем рјешавам позивом функције prost која за сваки члан низа провјерава да ли
припада скупу простих бројева.
#include <iostream>
#include <cmath>
using namespace std;
//deklarisem promjenljive-globalne
int N,i;
int X[50];

bool prost(int br)


{
bool Prostbr;
//van petlje su 3 vrijednosti, zato sto je u petlji od 3 pa navise
if ((br==1) || (br==2) || (br==3))
{
Prostbr=true;
}
else
{//ako nije paran
if (br%2!=0)
{//provjeravam do korijena broja, toliko je dovoljno da ne idem do
kraja
for (i=3; i<= (int)sqrt((double)br)+1; i+=2)
{//da li je djeljiv
if (br%i==0)
{
Prostbr=false;
}
else
{
Prostbr=true;
}
}
}
else
{
Prostbr=false;
}
}
return Prostbr;
}
//glavni program
int main()
{
cout <<"Unesi broj clanova niza <50 :";
cin>>N;
//Upis clanova niza, koristim prirodne brojeve od 0 do N-1
for (i=0;i<N;i++)
{
X[i]=i;
}
//u for petlji provjeravam da li je clan niza prost broj
for (i=0;i<N;i++)
{
if(prost(X[i])==true)//poziv funkcije prost i upit da li je prost
{
//ispis prostih clanova niza
cout<<"Clan niza "<<"X["<<i<<"]="<<X[i]<<" je prost
broj"<<endl;
}
}
system("Pause");
return 0;
}
17. Аритметичка средина низа
Начинити програм који израчунава аритметичку средину учитаних чланова низа.
Рјешење је класично сумирање чланова низа , и након тога, ван петље суму
подијелимо са бројем чланова низа. Оно на шта треба обратити пажњу је тип податка који
добијамо дијељењем суме-морамо га експлицитно захтијевати.
#include <iostream>
using namespace std;

int X[50], i, Sum, N;


float Arts;
int main()
{
cout<<"Unesi broj clanova niza: ";
cin>>N;
cout<<endl<<"Clanovi niza su:"<<endl;
//unesi clanove niza
for(i=0;i<N;i++)
{
cout<<"X["<<i<<"]=";
cin>>X[i];
}
Sum=0;//pocetna vrijednost sume
for(i=0;i<N;i++)
{
Sum+=X[i];//sumiram clanove niza
}
cout<<"Suma clanova niza iznosi: "<<Sum<<endl;
Arts=(float)Sum/N;//paziti na tip podatka!
cout<<"Aritmeticka sredina ucitanog niza iznosi: "<<Arts<<endl;
system("Pause");
return 0;
}

18. Сортирање низа


Начинити програм који учитани низ елемената сортира у нерастућем редослиједу.
Сорт је ријешен методом “buble” sort-a. Имамо 2 for петље у којој прва узима ел. низа,
а друга for петља тај елеменат, ако је највећи, гура на крај и тако за сваки ел. низа.

#include <iostream>
using namespace std;

int N, i,j,pom;
int X[100];
int main()
{
cout<<"Unesi granicnu vrijednost niza <100: ";
cin>>N;
if (N<0)
{
cout<<"broj clanova niza mora biti >0!";
system ("Pause");
goto kraj;
}
for (i=0;i<N;i++)//unos clanova niza
{
cout<<"X["<<i<<"]=";
cin>>X[i];
}
for (i=0;i<N;i++)//postupak sortiranja
{
for(j=0;j<N-i;j++)
{
if(X[j] >= X[j + 1])
{//zamjena mjesta, veci clan se "gura" na kraj
pom = X[j];
X[j] = X[j + 1];
X[j + 1] = pom;
}
}
}
cout<<"Sortirani niz je:"<<endl;
for (i=0;i<N;i++)
{
cout<<"X["<<i<<"]="<<X[i]<<endl;
}
system("Pause");
kraj:return 0;
}
19. Елементи на главној дијагонали
Начинити програм који исписује елементе главне дијагонале учитане матрице.
//Ispis clanova glavne dijagonale, matrica mora biti kvadratna
#include <iostream>
using namespace std;
//Deklaracija promjenjivih
int A[10][10], i,j,N;
//funkcija za unos matrice
int unesi(int N)
{
for(i=0;i<N;i++)
for(j=0;j<N;j++)
{
cout << "A[" << i << "," << j << "]=" ;
cin >> A[i][j];
}
return A[i][j];
}
void ispisi(int N)
{
for(i=0;i<N;i++)
{
cout<<endl;
for(j=0;j<N;j++)
{
cout<<" "<<A[i][j];
}
}
}
//glavni program
int main()
{
//unos dimenzija matrice
cout<<"Unesi dimenzije matrice: ";
cin>>N;
//poziv funkcije unesi
A[N][N]=unesi(N);
//poziv funkcije ispisi-da napise matricu u preglednom obliku
ispisi(N);
//izdvajanje i ispis clanova dijagonale
cout<<endl;
cout<<"Clanovi matrice koji se nalaze na glavnoj dijagonali su: "<<endl;
for(i=0;i<N;i++)
for(j=0;j<N;j++)
{
if(i==j)
{
cout<<"A["<<i<<","<<j<<"]="<<A[i][j]<<endl;
}
}
system ("Pause");
return 0;
}
20. Дијагонална матрица
Начинити програм који провјерава да ли је учитана матрица дијагонална.
Матрица је дијагонална ако су јој сви чланови ван главне дијагонале једнаки нули, а
бар један члан на главној дијагонали различит од нуле.
//Matrica je dijagonalana ako su joj svi clanovi, osim onih na glavnoj
dijagonali jednaki 0
#include <iostream>
using namespace std;
//deklarisem promjenjive
int A[10][10], i, j, M;
bool contProm;
int main()
{
cout<<"Unesi red matrice: ";
cin>>M;
//Unos matrice
for(i=0;i<M;i++)
{
for(j=0;j<M;j++)
{
cout<<"A["<<i<<","<<j<<"]=";
cin>>A[i][j];
}
}
cout<<endl;
//Ispisi matricu-lijepo
for(i=0;i<M;i++)
{
cout<<endl;
for(j=0;j<M;j++)
{
cout<<" "<<A[i][j];
}
}
cout<<endl;
//Provjeri da li na glavnoj dijagonali postoji elemanat !=0
contProm=false;
for(i=0;i<M;i++)
{
for(j=0;j<M;j++)
{
if((i==j) && (A[i][j]!=0))
{
contProm=true;
}
}
}
if (contProm==true)
{//ako postoji pitam da li su svi ostali =0
for(i=0;i<M;i++)
{
for(j=0;j<M;j++)
{
if((A[i][j]!=0) && (i!=j))
{ cout<<"Matrica nije dijagonalna!";
system("Pause");
goto kraj;
}
}
}
cout<<"Matrica je dijagonalna!";
system ("Pause");
goto kraj;
}
else
{
cout<<"Svi elementi na glavnoj dijagonali su nule, bez obzira na ostale
vrijednosti matrica nije dijagonalna!";
system("Pause");
goto kraj;
}

kraj:return 0;
}
21. Производ-матрица са скаларом
Начинити програм који израчунава производ унесене матрице се заданим скаларом.

#include <iostream>
using namespace std;

int A[10][10], i, j, M, N, Broj;

int main()
{
cout<<"Unesi broj redova matrice: ";
cin>>M;
cout<<"Unesi broj kolona matrice: ";
cin>>N;
//Unos matrice
for(i=0;i<M;i++)
{
for(j=0;j<N;j++)
{
cout<<"A["<<i<<","<<j<<"]=";
cin>>A[i][j];
}
}
cout<<endl;
//Ispisi matricu-lijepo
for(i=0;i<M;i++)
{
cout<<endl;
for(j=0;j<N;j++)
{
cout<<" "<<A[i][j];
}
}
cout<<endl;
cout<<"Unesi broj sa kojim zelis pomnoziti matricu: ";
cin>>Broj;
cout<<"Proizvod unesene matrice i datog broja je: "<<endl;
for(i=0;i<M;i++)//izracunavanje i ispis proizvoda
{
cout<<endl;
for(j=0;j<N;j++)
{
cout<<" "<<A[i][j]*Broj;
}
}
cout<<endl;
system("Pause");
return 0;
}
22. Производ-двије матрице
Начинити програм који израчунава производ двије унесене матрице.

#include <iostream>
using namespace std;
//Deklaracija promjenjivih
int A[10][10], B[10][10], C[10][10], i, j, m, k, ar,ak, br,bk;

int main()
{
cout<<"Unesi dimenzije prve matrice: Br-kolona, Br-redova"<<endl;
cin>>ak;
cin>>ar;
for(i=0;i<ar;i++)
{
for(j=0;j<ak;j++)
{
cout << "A[" << i << "," << j << "]=" ;
cin >> A[i][j];
}
}
cout<<endl<<"Unesi dimenzije druge matrice: Br-kolona, Br-redova"<<endl;
cin>>bk;
cin>>br;
for(i=0;i<br;i++)
{
for(j=0;j<bk;j++)
{
cout << "B[" << i << "," << j << "]=" ;
cin >> B[i][j];
}
}
//ispisujem unesenu prvu matricu
cout<<endl<<"Unesena matrica je oblika: "<<endl;
for(i=0;i<ar;i++)
{
cout<<endl;
for(j=0;j<ak;j++)
{
cout<<" "<<A[i][j];
}
}
//ispisujem unesenu drugu matricu
cout<<endl<<"Unesena matrica je oblika: "<<endl;
for(i=0;i<br;i++)
{
cout<<endl;
for(j=0;j<bk;j++)
{
cout<<" "<<B[i][j];
}
}
//pitam da li se mogu izmnoziti
if(ak!=br)
{
cout<<"Dimenzije matrica su takve da mnozenje nije moguce";
system("Pause");
goto kraj;
}
//mnozim ove dvije matrice
for(i=0;i<ar;i++)
{
for(k=0;k<bk;k++)
{
m=0; //ovjde ubaci
for(j=0;j<br;j++)
{
m=m+A[i][j]*B[j][k];
}
C[i][k]=m;
}
}
cout<<endl<<"Rezultat mnozenja ove dvije matrice je: "<<endl;
for(i=0;i<ar;i++)
{
cout<<endl;
for(j=0;j<bk;j++)
{
cout<<" "<<C[i][j];
}
}
system("Pause");
kraj:return 0;
}
23. Транспонована матрица
Начинити програм који израчунава и исписује транспоновану матрицу учитане
матрице.

#include <iostream>
using namespace std;
//Deklaracija promjenjivih
int A[10][10], B[10][10], i, j, N,M;

void unesi(int M,int N)


{
for(i=0;i<M;i++)
{
for(j=0;j<N;j++)
{
cout << "A[" << i << "," << j << "]=" ;
cin >> A[i][j];
}
}
}
void ispisi(int p_A[10][10], int M, int N)
{
for(i=0;i<M;i++)
{
cout<<endl;
for(j=0;j<N;j++)
{
cout<<" "<<p_A[i][j];
}
}
}
//transponovanje
void transponuj(int M, int N)
{
for(i=0;i<M;i++)
{
for(j=0;j<N;j++)
{
B[j][i]=A[i][j];
}
}
}
//glavni program
int main()
{
cout<<"Unesi broj redova matrice A: ";
cin>>M;
cout<<"Unesi broj kolona matrice A: ";
cin>>N;
unesi(M,N);
cout<<"Originalna matrica A izgleda ovako: ";
ispisi(A,M,N);
cout<<endl;
transponuj(M,N);
cout<<"Transponovana matrica A izgleda ovako: ";
cout<<endl;
ispisi(B,N,M);
cout<<endl;
cout<<endl;
system("Pause");
return 0;
}
24. Ханој
На једном од три вертикална стуба сложена је пирамида од N дискова различитих
полупречника (што је диск на вишем положају полупречник му је мањи). Задатак је да се сви
дискови премјесте на један од два слободна стуба тако да они буду у истом поретку као и на
првом стубу. При томе треба водити рачуна о сљедећим правилима:
а) дозвољено је премјештати само један по један диск,
б) приликом премјештања није дозвољено да диск са већим буде изнад диска са
мањим пречником.
Nачинити програм који одређује редослијед премјештања дискова.

Програм приказује кораке потребне за премјештање дискова са стуба на стуб. Стубови


су обиљежени бројевима 1, 2 и 3.

#include <iostream>
using namespace std;

int main()
{
int broj_diskova,br;
void prebaci(int,int,int,int);
cout<<"Unesi broj diskova: ";
cin>>broj_diskova;
prebaci(broj_diskova,1,2,3);
system("pause");
return 0;
}
void prebaci(int n,int sa,int na, int pom)/*deklarisanje promjenljivih,n-broj
diskova, "sa"-sa stuba na stub, "na"-na stub, "pom"-pomocni stub*/
{
if(n>0)
{
prebaci(n-1,sa,pom,na);//prebaci disk sa stuba "sa" na stub "na"
cout<<sa<<" -> "<<na<<endl;
prebaci(n-1,pom,na,sa);
}

}
25. Паскалов троугао
Начинити програм који исписује Паскалов троугао, ред троугла који ће бити исписан
уносимо са тастатуре.

#include <iostream>
using namespace std;

int Paskal(int x,int y)


{
int a,b;

if((x==1) || (x==y))

return 1;

a=Paskal(x-1, y-1);//red iznad, kolona prije


b=Paskal(x, y-1);//red iznad, tekuca kolona

return a+b;

int main()
{
int n,i,j;

cout<<"Unesi vrijednost: "<<endl;


cin>>n;
for (j=1;j<=n;j++)
{
cout<<endl;
for(i=1;i<=j;i++)

cout<<" "<<Paskal(i,j);
}
system("Pause");
return 0;
}
26. Сабирање и одузимање комплексних бројева-класе
Начинити програм који пројектује класу са елементарним операцијама над
комплексним бројевима (сабирање, одузимање).

#include <iostream>
using namespace std;
//definicija klase
class compleksBr{//ime klase i krecemo sa definisanjem
float imag, real;//privatni podaci clanovi
public://javni (funkcije clanice klase)
void cUcitaj(float, float);
compleksBr cSab(compleksBr);
compleksBrcOduz(compleksBr);
float cRe()const{return real;};//vraca vrijednost realnog dijela
(inspektor-ne mijenja stanje objekta)
float cIm()const{return imag;};
};//zavrsena definicija klase
void compleksBr::cUcitaj(float a, float b){//inicijalizacija objekta klase
compleksBr (primjerak klase)
real=a;//dodjeljuje vrijednosti podacima clanovima objekta
imag=b;
}
compleksBr compleksBr::cSab(compleksBr a){
compleksBr priv;
priv.real=real+a.real;
priv.imag=imag+a.imag;
return priv;
}
compleksBr compleksBr:cOduz(compleksBr a){
compleksBr priv;
priv.real=real-a.real;
priv.imag=imag-a.imag;
return priv;
}
int main()
{
compleksBr c1,c2,c3;
float a,b;

cout<<"Unesi vrijednosti za realni i imaginarni dio c1";


cout<<endl;
cin>>a>>b;
c1.cUcitaj(a,b);
cout<<"Unesi vrijednosti za realni i imaginarni dio c2"<<endl;
cin>>a>>b;
c2.cUcitaj(a,b);
c3=c1.cSab(c2);//c2 pozivamo kao argument, a c1 pristupamo direktno
cout<<"Zbir dva data kompleksna broja je: "<<"("<<c3.cRe()<<",
"<<c3.cIm()<<")"<<endl;
c3=c1.cOduz(c2);
cout<<"Razlika dva data kompleksna broja je: "<<"("<<c3.cRe()<<",
"<<c3.cIm()<<")"<<endl;
system("Pause");
return 0;
}
27. Apsolutna vrijednost
Korisnik unosi cijeli broj, računa se apsolutna vrijednosttog broja pa se ispisuje rezultat.
(Treba uočiti da redoslijed izvršavanja naredbi zavisi od unešenog broja.

//OD svakog cijelog broja racuna apsolutnu vrijednost

#include "stdafx.h"
#include<iostream>
using namespace std;

int main()
{
int a;
cout<<"Racuna apsolutnu vrijednost"<<endl<<endl;
cout<<"Unesi bilo koji cijeli broj"<<endl;
cin>>a;
if(a>0)//uslov prvi
cout<<a<<endl;
else//ako nije ispunjen uslov onada izvrsava sledecu radnju
cout<<a*(-1)<<endl;
system("pause");
return 0;
}

28. Ispis prvih 20 brojeva


Potrebno je ispisati prvih 20 prirodnh brojeva. (Treba uočiti da se dio naredbi izvršava 20
puta.)

Ispis prvih 20 prirodnih brojeva

#include "stdafx.h"
#include<iostream>
using namespace std;

int main()
{
int brojac;//deklarisanje promjenljive
cout<<"Ispis brojeva od 1 d0 20"<<endl;
for(brojac=1;brojac<=20;brojac++)/*ovdje se u zagradu stavlja
(pocetno stanje;uslov;prirast) */
{
cout<<brojac<<",";//navodne znake stavljamo da se napravi
rastojanje izmedju brojeva
}
cout<<endl;
system("pause");

return 0;
}

29. Pridruživanje slova


Načiniti program koji na dva načina ispisuje slovo “A” na ekranu u dva reda. Prvoj je
pridružen znak označen jednostrukim navodnicima, a drugoj dekadska ASCII vrijednost tog znaka.
//Nacini pridruzivanja slova

#include "stdafx.h"
#include<iostream>
using namespace std;
int main()
{
char a,b;
a='A';
b=65;//ASCII vrijednost slova A
cout<<a<<endl;
cout<<b<<endl;
system ("PAUSE");
return 0;
}

U ovom programu moramo uočiti da se na ekranu pokazuju slova A i B bez obzira što su
različite naredbe.

30. Zvučni signal


Načiniti program koji proizvodi zvucni signal.

//Program koji proizvodi zvuk

#include "stdafx.h"
#include<iostream>
using namespace std;
int main()
{
char zvuk='\a';// a je oznaka za zvuk od rječi "alter"
char novi_red='\n';// isto ima značenje kao endl;
cout<<zvuk<<zvuk<<novi_red;
system ("PAUSE");
return 0;
}

U ovom programu nema nikakvog ispisa na ekranu, kada pokrenemo program čuje se zvučni
signal. Ako je potreban znak koji se ne može prikazati na ekranu, koristi se slijed koji počinje
lijevom kosom crtom (engl. backslash). U primjeru je prikaz zvučnog signala (engl. alert), te
pomak u novi red.

31. Pozdrav korisniku


Načiniti program koji pri unosu imena korisnika , ispisuje pozdrav korisniku.

//naciniti program koji ispisuje pozdravnu poruku korisniku.

#include "stdafx.h"
#include<iostream>
#include<string>//poziv datoteke sa klasom string
using namespace std;

int main ()

{
string user_name;//da bi mogli procitati ime koje korisnik upise
cout<<"Unesi svoje ime:"<<endl;
cin>>user_name;
cout<<endl;
cout<<"Zdravo,"<<user_name<<", kako ste?"<<endl;
system ("pause");

return 0;
}

Da bi mogli unijeti ime moramo deklarisati promjenljivu kao tip string, sve ono sto će biti
ispisano na ekranu treba staviti unutar para dvostrukih navodnika. Npr.: "Zdravo,"
32. Površina kruga
Načiniti program koji računa obim i površinu kruga. Koristiti konstantu Pi.

//Program za izracunavanje O i P kruga

#include "stdafx.h"
#include<iostream>
using namespace std;

int main()
{
float r, P, O ;//deklarisanje promjenljivih
const float Pi=3.14;//deklarisanje konstante Pi
cout<<"Program za racunanje obim i povrsine kruga"<<endl<<endl;
cout<<"Unesi poluprecnik kruga"<<endl<<endl;
cin>>r;//ucitavanje unesene vrijednosti
O=2*r*Pi;
P=r*r*Pi;
cout<<"obim je: "<<O<<endl<<endl;
cout<<"Povrsina je: "<<P<<endl<<endl;
system("pause");

return 0;
}
33. Kvadrat broja
Načiniti program koji računa kvadrat broja koji se unese preko tastature.

//Naciniti program koji racuna kvadrat unesenog broja

#include "stdafx.h"
#include <iostream>
using namespace std;
int main()
{
int a;
cout<< "Unesite broj: "<<endl;//ispis poruke
cin >>a; // naredba za unos broja*/
cout << endl;
cout << "Kvadrat broja ";
cout << endl;
cout << " je "<<a*a;//racuna kvadrat unesenog broja
cout << endl;//ispis praznog reda
cout << endl;
system ("PAUSE");
return 0;
}

34. Stepenovanje
Načiniti program koji stepenuje unešeni broj sa unešenim eksponentom.

//Naciniti program koji stepenuje uneseni broj

#include "stdafx.h"
#include<iostream>
#include<cmath>// ukljucujemo biblioteku matematickih funkcija
using namespace std;

int main ()
{
float broj;//broj moze biti svaki realni broj
float eksponent;
float rezultat;
cout<<"Stepenovanje brojeva"<<endl;
cout<<"Unesi broj koji zelis stepenovati:"<<endl;
cin>>broj;
cout<<"Unesi eksponent"<<endl;
cin>>eksponent;
rezultat=pow(broj,eksponent);//""pow" je naredba za stepenovanje
cout<<"Rezultat je"<<endl;
cout<<rezultat<<endl;
cout<<endl;
system("pause");

return 0;

U ovom programu se poziva biblioteka cmath, jer se koristi naredba pow , naredba za
stepenovanje, što znači da računar sam računa stepen zadanog broja na zadani eksponent.

35. Pozdrav u više radova


Načiniti program koji ispisuje na ekranu u tri reda pozdravnu poruku „Pozdrav svim studentima
Apeirona“
.
//Program ispisuje pozdravnu poruku u vise redova
#include "stdafx.h"
#include <cstdlib>
#include <iostream>
using namespace std;

int main()
{
cout << "\n\n";//oznake za novi red
cout << "Pozdrav,\n";
cout << "svim studentima\n"; // sadaržaj znakovnog niza se ispisuje u
navodnim znacima
cout <<"Apeirona\n\n";
cout << “\n";;
system ("PAUSE");
return 0;
}

Da bi poruka bila ispisana u više redova koristimo oznake za novi red.U ovom primjeru za
novi red korišćena je oznaka \n, a sadržaj znakovnog ispisa se ispisuje između navodnih znakova.

36. Negativan broj u pozitivan


Načini program koji negativan broj pretvara u pozitivan broj.

//Naciniti program koji negativan broj pretvara u pozitivan

#include "stdafx.h"
#include <iostream>
#include<cmath>
using namespace std;

int main()
{
float broj;
float rezultat;
cout<<"Unesi negativan broj"<<endl;
cin>>broj;
cout<<endl;
rezultat=abs(broj);//"abs"je naredba za pretvaranje negativnog broja u
pozitivan
cout<<"Pozitivan broj je"<<endl;
cout<<rezultat<<endl;
cout<<endl;
system("pause");
return 0;
}

U ovom programu se poziva bilioteka cmath jer se koristila naredba abs, naredba koja
negativan broj pretvara u pozitivan.

37. Tri osnovne operacije


Načiniti program koji od korisnika traži da unese dva cijela broja i nad njima vrši tri
osnovne računske operacije (*, +, - ).

/Naciniti program koji mnozi, sabira i oduzima dva unesena broja

#include "stdafx.h"
#include<iostream>
using namespace std;

int main()
{
int a, b, c, d, e;//deklarisanje varijabli
cout<< "Osnovne racunske operacije"<<endl;
cout<<"Unesite dva cijela broja"<<endl;
cin >> a;//Naredba koja ucitava vrijednost koju unese korisnik
cin >> b;
c=(a*b);
cout<<"Proizvod je:"<<c<<endl;
d=(a+b);
cout<<"Zbir je:"<<d<<endl;
e=(a-b);
cout<<"razlika je:"<<e<<endl;
cout<<"Kraj"<<endl;
system("pause");
return 0;
}

Ovdje su korišteni binarni aritmetički operatori +, - i * .

38. Djeljenje dva broja


Načini program koji dijeli dva broja koja se unesu preko tastature.

/Naciniti program koji djeli dava proizvoljna broja


#include "stdafx.h"
#include<iostream>
using namespace std;

int main ()
{ float a; // u prostor formiran naredbom "float",
float b;// mozemo spremiti brojeve sa decimalnim zarezom.
float kolicnik;
cout <<"Djeljenje"<<endl;//na ekranu se ispisuje tekst
cout<<endl;
cout <<"unesi prvi broj:"<<endl;
cout<<endl;
cin >> a;
cout<<endl;// sa ovim samo uljepsavamo ekran
cout <<"unesi drugi broj:"<<endl;cout<<endl;
cin >> b;
cout<<endl;
kolicnik = a/b;
cout<<"Kolicnik je:"<<endl;cout<<endl;
cout<< kolicnik;
cout<<endl;
cout<<endl;
system("pause");

return 0;
}

Ovdje je korišćen binarni operator podijeljeno „ / „ .

39. Djeljenje sa ostatkom


Načiniti program koji računa cjelobrojni količnik i ostatak. Koristiti aritmetički operator
modul %

/Naciniti program koji racuna cjelobrojni kolicnik i ostatak pri djeljenju


dva broja

#include "stdafx.h"
#include<iostream>
using namespace std;

int main()
{
int a, b, ostatak, kolicnik;//deklarisanje promjenljivih
cout<<"Upisi djeljenik"<<endl<<endl;
cin>> a;
cout<<"Upisi djelilac"<<endl<<endl;
cin>> b;
kolicnik = a / b;
ostatak = a%b;//"%"je binarni operator za moduo(ostatak pri djeljenju)
cout<<endl;
cout<<a<<":"<<b<<"="<<endl<<endl;
cout<<kolicnik<<endl<<endl;
cout<<"cijelih, a ostatak je"<<endl<<endl;
cout<<ostatak<<endl;
system("pause");
return 0;
}

Redoslijed izvršavanja operatora, je isti kao u matematici.

40. Broj osvojenih bodova


Načiniti program koji na osnovu unešene ocjene iz testa ispisuje broj osvojenih bodova. U
programu koristiti switch-case naredbu.

//nacini program koji na osnovu unesene ocjene ispisuje broj bodova


#include "stdafx.h"
#include<iostream>
using namespace std;
int main()
{
int ocj;
cout<<"Unesi ocjenu:"<<endl;
cin>>ocj;
switch (ocj)//Naredba "switch" omogucava visestruko grananje
{ //iza naredbe "switch"dolazi cjelobrojni izraz u viticastoj zagradi
case 5://provjerava se vrijednost i ako je tacna izvrsava se naredba
cout<<"Imate 90-100 bodova"<<endl;
break;//"break je zavrsetak bloka naredbi
case 4:
cout<<"Imate 80-89 bodova"<<endl;
break;
case 3:
cout<<"Imate 70-79 bodova"<<endl;
break;
case 2:
cout<<"Imate 60-69 bodova"<<endl;
break;
case 1:
cout<<"Imate ispod 60 bodova"<<endl;
break;
default://ako nije nista od ponudjenog izvrasava se naredna naredba
cout<<"Nekoraktna ocjena"<<endl;

system("pause");

return 0;
}

41. Operatori obnavljajućeg pridruživanja


Načiniti program koji unijeti realni broj pridružuje 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. Neka postoji ispis svih koraka na ekranu.

//Naciniti program koji nekom realnom broju pridruzuje varijablu i mjenja


je.

#include "stdafx.h"
#include<iostream>
using namespace std;

int main()
{
float a;//deklarisanje promjenjljive
cout<<"Upisi zeljeni broj"<<endl;
cin>>a;
cout<<"Sadrzaj varijable se uvecava za 5."<<endl;
cout<<"Sada a iznosi:"<<endl;
cout<<(a+=5)<<endl;//a+=5 ima isto znacenje kao a+5=a
cout<<"Od trenutnog sadrzaja varijable a oduzima se 8"<<endl;
cout<<"Sada a iznosi"<<endl;
cout<<(a-=8)<<endl;
cout<<"Trenutni sadrzaj varijable a se mnozi sa 3"<<endl;
cout<<"Sada a iznosi"<<endl;
cout<<(a*=3)<<endl<<endl;
system("pause");
return 0;
}

42. Ime korisnika i njegove godine


Načiniti program gdje se unosi ime korisnika i na osnovu date godine rođenja i postojeće
godine, na ekranu ispisuje ime korisnika i koliko godina ima korisnik.

/Naciniti program u kom se unosi ime korisnika i racuna koliko ima


korisnik godina

#include "stdafx.h"
#include<iostream>
#include<string>
using namespace std;

int main()
{
int I_godina, god_R, god_S;//deklaracija promjenljivih
string ime;//nareba koja omogucava unos imena
cout<<"Saznaj koliko imas godina"<<endl;
cout<<"Upisi svoje ime"<<endl;
cin>>ime;
cout<<endl;
cout<<"Upisi godinu svog rodjenja:"<<endl;
cin>>god_R;
cout<<endl;
cout<<"Koja je godina sada?"<<endl;
cin>>god_S;
cout<<endl;
I_godina=god_S-god_R;
cout<<ime<<" ima "<<I_godina<<" godina "<<endl<<endl;
system("pause");

return 0;
}
43. Trocifreni brojevi djeljivi sa 9
Načiniti program koji na ekran ispisuje sve trocifrene brojeve , čiji je zbir cifara djeljiv sa 9.

*Naciniti program koji na ekran ispisuje sve trocifrene


brojeve ciji je zbir cifara djeljiv sa 9*/

#include "stdafx.h"
#include <iostream>
using namespace std;

int main()
{
int s,d,j; //stotine, desetice, jedinice...
cout<<"Trocifrene brojeve kod kojih je suma cifri djeljiva sa
9:"<<endl<<endl<<endl;
for (int i=100; i<1000; i++) //petlja vrti sve 3-cifrene brojeve
{
int temp=i;/* izdvaja redom cifre broja tako što prvo traži
ostatak pri djeljenju sa 10, a zatim broj i djeli sa 10 da se
oslobodi zadnje cifre i
omogući traženje nove*/
j=temp%10;
temp/=10;
d=temp%10;
temp/=10;
s=temp%10;
int sum=s+d+j;
if (sum%9==0) //provjera da li je suma djeljiva sa 9
cout << i <<", "; // ako jeste, ispisuju se brojevi
}
cout<<endl<<endl<<endl;
system ("pause");
return 0;
}

44. Zapremina kupe


Načiniti program koji na osnovu unešenog poluprečnika i visine kupe računa zapreminu
kupe.

/Program za racunanje zapremine kupe


#include "stdafx.h"
#include<iostream>
using namespace std;

int main()
{ float r, H, V;//definisanje promjenljivih
const float Pi=3.14;//definisanje konstante Pi
cout<<"Zapremina kupe"<<endl<<endl;
cout<<"Unesi poluprecnik kupe"<<endl<<endl;
cin>>r;
cout<<"Unesi visinu kupe"<<endl<<endl;
cin>>H;
cout<<endl;
if (r>0 && H>0)//uslov
{
V=r*r*Pi*H;
cout<<"V= "<<r<<" * "<<r<<" * "<<Pi<<" * "<<H<<endl<<endl;//za prikaz
izrade zadatka
cout<<"V= "<<V<<endl;//gotov rezultat
}
else
cout<<"Unesi pozitivne brojeve"<<endl;//ako se unesu negativni brojevi
system("pause");
return 0;
}

45. Heronov obrazac


Načiniti program koji računa površinu trougla po Heronovom obrascu.

//Heronov obrazac

#include "stdafx.h"
#include<iostream>
#include<cmath>
using namespace std;

int main()
{
float a, b, c, s , P;
cout<<"Unesi stranicu a"<<endl;
cin>>a;
cout<<"Unesi stranicu b"<<endl;
cin>>b;
cout<<"Unesi stranicu c"<<endl;
cin>>c;
if (a+b>c>a-b && a+c>b>a-c && b+c>a>b-c))
{
s= (a+b+c)/2;
P= sqrt(s*(s-a)*(s-b)*(s-c));
cout<<"P= "<<P<<endl<<endl;
}
else
{
cout<<"Te stranice ne cine trougao, probaj ponovo"<<endl;
}
system("pause");

return 0;

46. Paranost broja


Načiniti program, tako da se unese cijeli broj različit od nule . Program dalje provjerava i
ispisuje na ekranu, da li je broj manji ili veći od 100 i da li je broj paran ili neparan.

//Provjeriti parnost broja i da li je veci ili manji od 100

#include "stdafx.h"
#include<iostream>
using namespace std;

int main()
{
int a;
cout<<"Unesi cijeli broj razlicit od nule"<<endl<<endl<<endl;
cin>>a;
cout<<endl;

if (a<100)//Vanjska if naredba
{
cout<<"Uneseni broj je manji od 100 i ";
if (a%2==0)//ovo je ugnjezdena if naredba, provjerava da li je
broj paran
cout<<" paran je."<<endl;
else
cout<<" neparan je."<<endl;
}
else if(a>100)
{
cout<<"unesenibroj je veci od 100 i" ;
if(a%2==0)
cout<<" paran je."<<endl;
else
cout<<" neparan je."<<endl;
}
else // ako broj nije ni veci ni manji od 100 izvrsava se ova naredba
{
cout<<"Unesen je broj 100, on je paran"<<endl;
}
system ("pause");

return 0;
}

47. Ispis brojeva u određenom rasponu


Načiniti program koji na ekranu ispisuje brojeve u rasponu M do N ( raspon bira korisnik).

#include "stdafx.h"
#include<iostream>
using namespace std;

int main()
{
int brojac, M, N ;
cout<<"Ispis pocinje od: "<<endl;
cin>>M;
cout<<"Ispis zavrsava brojem: "<<endl;
cin>>N;
if (M<N)
{
for(brojac=M; brojac<=N; brojac++)
{
cout<<brojac<<",";
}
}
else
cout<<"Prvi broj mora biti manji od drugog";

cout<<endl<<endl;
system ("pause");
return 0;
}

48. Tablica množenja


Načiniti program koji ispisuje tablicu množenja odabranog broja sa brojevima od 1 do 10.
Broj bira korisnik.

#include "stdafx.h"
#include<iostream>
using namespace std;

int main ()
{
int b,brojac;
cout<<"Upisi broj s kojim zelis mnoziti"<<endl;
cin>>b;
for(brojac=1;brojac<=10;brojac++)
cout<<b<<"*"<<brojac<<"="<<b*brojac<<endl;
system("pause");
return 0;
}
49. Faktorijel
Načiniti program kojim se za dato n izračunava faktorijel prirodnog broja n: fakt=n!
=1*2*3+..*n.

//racuna faktorijel zadanog broja

#include "stdafx.h"
#include<iostream>
using namespace std;

int main()
{
long i,n, fakt;//ovdje su definisane promjnljive
cout<<"faktorijel proizvoljnog broja"<<endl;
cout<<"Unesi broj ciji faktorijel zelis. "<<endl<<endl;
cin>>n;
for(fakt=1,i=1;i<=n;,i++)//pocetno stanje,uslov,prirast
fakt*=i;//formula po kojoj racuna rezultat
cout<<"Faktorijel je:"<<fakt<<endl;//ispisi rezultat
cout<<endl;
system("pause");
return 0;
}

50. Kalkulator
Načiniti program koji vrši četiri osnovne računske operacije, tako da korisnik sam unosi
brojeve i računsku operaciju koju želi izvršiti.Ovdje se koristi switch petlja.

//program sa cetiri racunske operacije

#include "stdafx.h"
#include<iostream>
using namespace std;

int main()
{
float a;
float b;
int rezultat;
cout<<"Unesite prvi broj"<<endl;
cin>>a;
cout<<"Unesite drugi broj"<<endl;
cin>>b;
cout<<"1-sabrati"<<endl;
cout<<"2-oduzeti"<<endl;
cout<<"3-množiti"<<endl;
cout<<"4-djeliti"<<endl;
cout<<"unesi broj racunske opeacije koju zelis izvrsiti"<<endl<<endl;
cin>>rezultat;
switch(rezultat)/*naredbom case zapocinje dio programa koji ce se izvršavati u varijabli
zavisno od toga koju racunsku operaciju zeli korisnik*/
{
case 1:
cout<<a<<"+"<<b<<"="<<a+b<<endl;
break;//naredbom break se zavrsava case 1 naredba
case 2:
cout<<a<<"-"<<b<<"="<<a-b<<endl;
break;
case 3:
cout<<a<<"*"<<b<<"="<<a*b<<endl;
break;
case 4:if (b==0)
{
cout<<"Dijeljenje sa nulom nije dozvoljeno"<<endl;//uslov za djeljenje
system("pause");
break;
}
else
{
cout<<a<<":"<<b<<"="<<a/b<<endl;
break;
}
default://Ovaj dio se izvrsava ako ni jedan uslov "case" nije zadovoljen
cout<<"morate unijeti 1,2,3 ili 4"<<endl;
}//ovom viticastom zagradom se zavrsava naredba case
cout<<endl;
system ("PAUSE");

return 0;
}

51. Kvadrati zadanog niza


Načiniti program koji računa i ispisuje kvadrate zadanog niza (niz zadaje korisnik)
//program koji racuna kvadrate odredjenog niza

#include "stdafx.h"
#include<iostream>
using namespace std;
int main()
{
int n; // Broj elemenata niza
float *A; // Pokazivač niza
cout << "Unesite broj elemenata niza? "<<endl;
cin >> n;
A = new float [n]; // Alocira se niz A od n float elemenata.
for (int i = 0; i < n; i++)
A[i] = i * i; // A[i] = i^2.
// Ispis vrijednosti elemenata niza.
for (int i = 0; i < n; i++)
cout << "A[" << i << "] == " << A[i] << endl;// Dealokacija niza.
delete [] A;
system("pause");
return 0;
}

52. Djeljivost brojeva


Načiniti program koji na osnovu unesenog raspona provjerava djeljivost sa zadanim brojem.
Svi brojevi se ispisuju na ekranu.

/*Program koji ispisuje sve brojeve koji su djeljivi sa zadanim brojem u zadanom rasponu
(raspon zadaje korisnik)*/

#include "stdafx.h"
#include<iostream>
using namespace std;

int main()
{
int brojac, m, n, b;//deklarisanje promjenljivih
cout<<"Unesi od kog broja racunamo djeljivost: "<<endl<<endl;//ispis na ekranu
cin>> m;
cout<<"Unesi do kog broja se racuna djeljivost: "<<endl<<endl;
cin>> n;
cout<<"Sa kojim brojem provjeravamo djeljivost: "<<endl<<endl;
cin>> b;
cout<<"Brojevi djeljivi sa "<<b<<" u rasponu od "<<m<<"do "<<n<<" su "<<endl<<endl;
for(brojac=m;brojac<=n;brojac++)//deklarisanje pocetnog stanja,uslova i prirasta
{
if(brojac%b==0)//uslov koji treba biti uspunjen
cout<<brojac<<",";//ako je uslov ispunjen stampa
}
cout<<endl;
cout<<endl;
system("pause");

return 0;
}

53. Brojač studenata


Načiniti program kojim se unosi 20 studenata opcijama 1-prolaz, 2-pad i na kraju ispisuje
koliko je proslo , a koliko palo.

/*20 studenata, opcija 1 je prolaz, a 2 pad na ispitu, nakon toga na izlazu dobijamo zbir
kolko je proslo, as koliko palo na ispitu*/

#include "stdafx.h"
#include<iostream>
using namespace std;

int main()
{
int Prolaz = 0,
Pad = 0,
BrojacStudenata = 1,
Rezultat; //deklaracija promjenjljivih
while ( BrojacStudenata<=20 )//uslov za while petlju (ona ce se izvrsavati
dok se ne unese 20 studenata)
{
cout<<"Unesite rezultate sa ispita ARHTEKTURA RACUNARA (1= prolaz,
2=pad): ";
cin>>Rezultat;
if( Rezultat==1 )
Prolaz = Prolaz + 1;//prvi unos

else
Pad = Pad + 1;//prvi unos ako je negativan
BrojacStudenata = BrojacStudenata + 1;//provjerava broj unosa
}
cout<<" Ukupno proslo "<<Prolaz<<endl<<endl;
cout<<" Ukupno palo "<<Pad<<endl<<endl;

system("pause");

return 0;
}

54. Srednja vrijednost


Načiniti program koji nakon unešenih proizvoljnih brojeva računa njihovu srednju
vrijednost.

//treba unijeti N realnih brojeva i odrediti njihovu srednju vrijednost

#include "stdafx.h"
#include<iostream>
using namespace std;

int main()
{
cout<<"U programu se unose proizvoljni brojevi i racuna se njihova srednja
vrijednost."<<endl;
float N, broj,zbir;//deklarisanje promjenljivih, mogu biti svi realni
brojevi
broj=0;
zbir=0;
cout<<"Nakon poslednjeg broja unesi 0. "<<endl;//naredba korisniku
do //koristi se ako pocetni broj nije unaprijed pozna
{ cout<<"Unesi broj: ";
cin>>N;
broj=broj+1;//koliko se unese brojeva
zbir=zbir+N;// sabira unesene brojeve
}
while (N!=0);//uslov da se izadje iz petlje
broj=broj-1;//umanjiti broj unesenih brojeva za 1
cout<<"Uneseno je "<<broj;
cout<<" brojeva .Srednja vrijednost je "<<zbir/broj<<endl;//srednja
vrijednost
system("pause");
return 0;
}

55. Suma faktorijela


Načiniti program kojim se za dato n, izračunava suma: S=1!+2!+3!+...+n!.

//za zadano n , izracunava sumu faktorijela

#include "stdafx.h"
#include <iostream>
using namespace std;

int main()
{
long i,n,fakt,s;//definisanje promjenljivih
cout<<"unesi broj n"<<endl;
cin>> n;
for (s=0,fakt=1,i=1;i<=n;i++)//pocetno stanje, uslov,prirast
{
fakt*=i,s+=fakt;//formula po kojoj se racuna rjesenja
}
cout<<"Suma = "<<s<<endl<<endl;//ispis rjesenja

system ("pause");
return 0;
}

56. NZD Najveći zajednički djelilac - NZD

Najveći zajednički djelilac dva prirodna broja je najveći broj kojim možemo podijeliti i broj
a i broj b, a da pri tome nemamo ostatak.
//Program koji za dva unesena broja racuna NZD

#include "stdafx.h"
#include<iostream>
using namespace std;
int main()
{
long int broj1,broj2,ostatak,pom_broj;
cout<<"Unesite prvi broj: ";
cin>>broj1;
cout<<"Unesite drugi broj: ";
cin>>broj2;
if ((broj1==0)&&(broj2==0))//prvi uslov ,ako su oba broja 0, && je i
{
cout<<"Pogresan unos"<<endl;
system ("Pause");
return 0;
}
if (broj1<0) broj1=-broj1;//pretvara broj u pozitivan broj
if (broj2<0) broj2=-broj2;//pretvara broj u pozitivan broj
if ((broj1==1)&& (broj2==1))//ako su oba broja 1,
cout<<"nzd je 1"<<endl;// Izracunavanje NZD
if(broj1<broj2)//uslov
{
pom_broj=broj1;//pomocni broj
broj1=broj2;
broj2=pom_broj;
}
do
{
ostatak=broj1%broj2;//racunanje po modulu
broj1=broj2;
broj2=ostatak;
}
while (ostatak !=0);//ostatak nije 0
cout<<"Najveci zajednicki djelilac (NZD)je: "<<broj1<<endl;
cout<<endl;
system ("Pause");
}
57. NZS Najmanji zajednički sadržilac- NZS.

Koristeći Euklidov algoritam za nalaženje najvećeg zajedničkog djelioca načiniti program za


nalaženje najmanjeg zajedničkog sadržioca datih celih brojeva. Algoritam realizovati u opštem
obliku, a posebne podatke uneti na početku glavnog programa.

//program koji racuna NZS


#include "stdafx.h"
#include<iostream>
using namespace std;

int main()
{

long int broj1,broj2,ostatak1,ostatak2,pom_broj,brojac=0;// Deklarisanje


promjenljivih

cout<<"Unesite prvi broj: ";cin>>broj1;// Unos brojeva


cout<<"Unesite drugi broj: ";cin>>broj2;

if ((broj1==0)&&(broj2==0))// Provjera unesenih brojeva, ne smiju biti


nula
{
cout<<"Pogresan unos"<<endl;
system ("Pause");
return 0;
}
// Izracunavanje NZS
do
{
brojac=brojac+1;
ostatak1=brojac%broj1;
ostatak2=brojac%broj2;
pom_broj=ostatak1+ostatak2;//ukljucen je pomocni broj
}
while (pom_broj!=0);//Ako je pomocni broj razlicit od nule
// Ispis rezultata
cout<<"Najmanji zajednicki sadrzalac (NZS)je: "<<brojac<<endl;
cout<<endl;
system ("Pause");

58. Hanojski stubovi 1

Na jednom od tri vertikalna stuba složena je piramida od N diskova različitih poluprečnika


(što je disk na višem položaju poluprečnik mu je manji). Zadatak je da se svi diskovi premjeste na
jedan od dva slobodna stuba tako da oni budu u istom poretku kao i na prvom stubu. Pri tome treba
voditi računa o sledećim pravilima:
a) dozvoljen je premeštati samo po jedan disk,
b) prilikom premeštanja nije dozvoljeno da disk sa većim bude iznad diska sa manjim
prečnikom.
Načiniti program koji određuje redoslijed premeštanja diskova.

//Naciniti program koji rjesava problem Hanojskih stubova

#include "stdafx.h"
#include<iostream>
using namespace std;

int main()
{
int broj_diskova;
void prebaci(int,int,int,int);
cout<<"Unesi broj diskova"<<endl;
cin>>broj_diskova;
prebaci(broj_diskova,1,2,3);
}
void prebaci(int n,int sa,int na,int pom)/*n-broj diskova,"sa"-sa kojeg
prebacuje,"na"-na koji prebacuje, "pom"-pomocni disk*/
{if (n>0)//ovdje smo moli pisati samo n
{prebaci(n-1,sa,pom,na);
cout<<sa<<"->"<<na<<endl;
prebaci(n-1,pom,na,sa);
}
system("pause");

59. Hanojski stubovi 2


Na jednom od tri vertikalna stuba složena je piramida od 3 diska različitih poluprečnika (što
je disk na višem položaju poluprečnik mu je manji). Zadatak je da se svi diskovi premeste na jedan
od dva slobodna stuba tako da oni budu u istom poretku kao i na prvom stubu. Pri tome treba voditi
računa o sledećim pravilima:
a) dozvoljen je premeštati samo po jedan disk,
b) prilikom premeštanja nije dozvoljeno da disk sa većim bude iznad diska sa manjim
prečnikom.
Načiniti program koji određuje redosled premeštanja diskova.

//Hanojski stubovi sa tri diska

#include "stdafx.h"//- Hanojske kule */


#include <iostream>
using namespace std;
void Hanoj( int, int, int );//stavljamo ih zbog rekurzivnog poziva

int main()
{

int a, n = 3;

Hanoj( n, 1, 2 );//poziv funkcije, argumenti su max broj diskova na


stabu
cin >>a;
return 0;
}
void Hanoj( int n, int i, int j )
{

if( n > 0 ) {

Hanoj( n-1, i, 6-(i+j));//rekurzivni poziv f-je, 6 je max

cout<<"Prebaci sa "<<i<<" na "<<j<< " , "<<endl<<endl;


Hanoj( n-1, 6-(i+j), j );//formula
}

}
60. Dani u sedmici

Načiniti program za utvrđivanje dana u sedmici koji odgovara zadatom datumu.


Program ispsuje koji je dan u sedmici ako mu unesemo dan, mjesec i godinu. U
programu je korišćena for petlja i switch case.

//Program izbacuje naziv dana ako mu zadamo tacan datum

#include "stdafx.h"
#include<stdlib.h>
#include<conio.h>
#include<iostream>
using namespace std;

int main()
{
//Ispis naslova
cout<<"PROGRAM ZA UTVRDJIVANJE DANA U SEDMICI KOJI ODGOVARA ZADATOM
DATUMU"<<endl;
cout<<endl;
int d,m,g,godina,mjesec,dan,i,n;//deklaracija promjenljivih
cout<<"Koliko puta zelite pokrenuti program (unesite broj): "<<endl;
cin>>n;
for(i=1;i<=n;i++)//petlja,krece od broja 1 do zadanog broja
{
//Unos datuma
cout<<"Unesi datum:"<<endl<<endl;
cout<<"Dan (1-31) : "<<endl;
cin>>d; //dan
cout<<"Mjesec (1-12) : "<<endl;
cin>>m; //mjesec
cout<<"Godina(1900-2010): "<<endl;
cin>>g;//godina
cout<<endl;
//Provjera unosa za dan, mjesec, godinu
if( d>31 || m>12 || (g<1900 || g>=2010) )//||-oznacava logicko "i" i svi
moraju biti tacni
{
cout<<"POGRESAN UNOS"<<endl; // Ispis ako uslov nije zadovoljen
getch();
exit(0);//izadji
}
godina = g-1900;
godina = godina/4;
godina = godina+g-1900;
//godina = ((g-1900)/4)+(g-1900)
switch(m)
{
case 1: case 10:
mjesec = 1; break;
case 2: case 3: case 11:
mjesec = 4; break;
case 7: case 4:
mjesec = 0; break;
case 5:
mjesec = 2; break;
case 6:
mjesec = 5; break;
case 8:
mjesec = 3; break;
case 9: case 12:
mjesec = 6; break;
}
godina = godina+mjesec;
godina = godina+d;
// godina = (godina+mjesec)+d
dan = godina%7; //sedmica ima 7 dana
//Ispis rezultata
switch(dan)
{
case 0:
cout<<("Dan je SUBOTA ");break;
case 1:
cout<<("Dan je NEDJELJA ");break;
case 2:
cout<<("Dan je PONEDJELJAK ");break;
case 3:
cout<<("Dan je UTORAK ");break;
case 4:
cout<<("Dan je SRIJEDA" );break;
case 5:
cout<<("Dan je CETVRTAK ");break;
case 6:
cout<<("Dan je PETAK ");break;
}
}
//Kraj programa
cout<<endl<<endl;
system ("Pause");
return 0;
}

61. Šahovska tabla

Izračunati ukupan broj zrna pšenice koje je Seta (navodni pronalazač šaha) tražio od cara
kao nagradu, te ispisati koliko je trebalo "staviti" pšenice na svako od 64
šahovska polja.

/*primjer sa postavljanjem zrna psenice na sahovsku tablu tako da na sakoj sledećoj bude
duplo vise zrna*/

// Pocetak programa i ukljucivanje biblioteka u program


#include "stdafx.h"
#include <iostream>
#define max 50
using namespace std;

void init(int niz[]);//deklaracija niza


void ispisi(int niz[]);

int main(void)
{
int br[max];
init (br);
br[0]=1;
cout << "1. polje:\t" << br[0] << endl;
for (int n=1; n<=64; n++)
{
int temp=0;
int i=0;
while (br[i]!=-1)
{
br[i]=br[i]*2+temp;//formula za racunanje
temp=0;
if (br[i]>9)
{
if (br[i+1]==-1)
br[i+1]=0;
temp=br[i]/10;
br[i]%=10;
}
i++;
}
if (n<64)
{
cout << n+1 << ". polje:\t"; ispisi(br);//ispis brojeva
}
else
{
br[0]-=1;
cout << "\nUKUPNO:\t\t"; ispisi(br);//korisceno \t za prelazak u drugi red
}
}
cout << endl << endl;
system ("pause");
return EXIT_SUCCESS;//uspjesno napusti funkciju
}

void init(int niz[])


{
for (int i=0; i<max; i++)//deklaracija promjenljivih u for petlji
niz[i]=-1;
}

void ispisi(int niz[])


{
int i=0;
while (niz[i]!=-1)
i++;
for (int j=i-1; j>=0; j--)
cout << niz[j];
cout << endl;
}

62. Savršeni brojevi


Načinite program koji omogućava nalaženje savršenih brojeva na intervalu zadatom
brojevima M i N. (Napomena: broj se naziva savršenim ako je jednak zbiru svojih činilaca,
uključujući 1 ali ne uključujući samoga sebe. Na primer, 6 je savršen broj, jer je 6=1+2+3.)

//Program racuna sve savrsene brojeve u zadanom intervalu

#include "stdafx.h"
#include<iostream>
using namespace std;

int main()
{
int broj, d, s, pb, kb;//deklaracija promjenljivih
// Unos pocetnog i krajnjeg broja
cout<<"Savrsen broj je onaj broj koji je djeljiv "<<endl<<endl;
cout<<" sa samim sobom i brojem jedan "<<endl<<endl<<endl;
cout<<"Unesite pocetni broj: "<<endl<<endl;
cin>>pb;//unos donje granice intervala
cout<<"Unesite krajnji broj: "<<endl<<endl;
cin>>kb; //unos gornje granice intervala

// Izracunavanje i ispis savrsenih brojeva


cout<<"Savrseni brojevi su: "<<endl;
for ( broj=pb ; broj<kb ; broj++ )//dupla for petlja
{
for ( s=1, d=2 ; d<=broj/2 ; d++ )//delaracija pocetnih vrijednosti i
nacina racunanja
s += (broj%d) ? 0 : d;
if (broj==s)
cout<<broj<<endl;
}
cout<<endl<<endl;
system("pause");
return 0;
}
63. Zbir dva vektora

Načiniti program za nalaženje zbira dva vektora (V+LJ). Sa ulaza se unose dimenzije 2
vektora (iste dimenzije), a zatim se izračuna treći vektor koji predstavlja zbir (prvi član prvog
vektora plus prvi član drugog vektora...) dva unesena vektora.
//Program koji sabira dva vektora , tako da korisnik unese broj elemenata
vektora

#include "stdafx.h"
#include <iostream>
#include <vector>//ukljucivanje biblioteke za vektore
using namespace std;

int main(){
vector<int> a(100), b(100), c;//definisanje promjenljivih
int broj;
cout << "Unesite broj elemenata vektora [1-100]: ";
cin >> broj;//unos dimenzija vektora
cout << "Unesite elemente prvog vektora: " << endl;
for(int i=0; i<broj; i++)//definisanje promjenljivih prvog vektora
{
cin >>a[i];
}
cout << "Unesite elemente drugog vektora: " << endl;
for(int i=0; i<broj; i++)//definisanje promjenljivih drugog vektora
cin >> b[i];
}
for(int i = 0; i < a.size(); i++) //deklarisanje treceg vektora
c.push_back(a[i] + b[i]); //tako da se sabiraju odgovarajuci elementi
vektora a i b
cout << "\"Zbir\" vektora je vektor: (";
for(int i=0; i<broj; i++)
cout << c[i] << ", ";//ispis vektora c
cout << ")";
cout<<endl;
system ("Pause");
return 0;
}
64. Napisati C program koji će pronaći i ispisati na ekran sve
trocifrene brojeve kod kojih je suma cifri djeljiva sa 7.

http://furka.com/procitaj/7/42022/c-programiranje-za-pocetnike

#include iostream
using namespace std;

main()
{
int s,d,j; //stotine, desetice, jedinice...
for (int i=100; i1000; i++) //petlja vrti sve 3-cifrene brojeve
{
int temp=i;
j=temp%10; //izdvajamo redom cifre broja tako što
temp/=10; //prvo tražimo ostatak pri djeljenju
d=temp%10; //sa 10, a zatim broj i djelimo sa 10
temp/=10; //da se oslobodimo zadnje cifre i
s=temp%10; //omogućimo traženje nove
int sum=s+d+j;
if (sum%7==0) //provjeravamo da li je suma djeljiva sa 7
cout i endl; //ako jeste, ispisujemo broj
}
system ("pause");
return 0;
}

65. Napisati program koji će pronaći i ispisati na ekran koliko ima


peterocifrenih brojeva kod kojih je suma zadnje 4 cifre jednaka
prvoj cifri.
Code:

#include iostream
using namespace std;

main()
{
long int i;
int cf[6],br=0;
for (i=10000; i100000; i++) //petlja koja vrti sve 5-cifrene br.
{
long int temp=i;
for (int j=5; j0; j--) //petlja u kojoj izdvajamo cifre broja
{
cf[j]=temp%10; //uzimamo zadnju cifru broja i spremamo je u niz
temp/=10; //"odsjecamo" zadnju cifru da bi mogli naći sledeću
}
int sum=cf[2]+cf[3]+cf[4]+cf[5]; //suma zadnje 4 cifre
if (cf[1]==sum) //ako je suma jednaka prvoj cifri
{ //ispisuje se taj broj
cout i endl; //a brojač se uvećava za 1
br++;
}
}
cout "br=" br endl; //ispis brojača
system ("pause");
return 0;
}
66. Izostvaljanje suvisnog razmaka medju rijecima

#include "stdafx.h"

#include <iostream>
using namespace std;

int main () {
int znak; bool ima = true;

while ((znak = cin.get ()) != EOF) // while (cin.get (znak))


if (znak != ' ' && znak != '\t')
{ cout.put (znak); ima = znak == '\n'; }
else if (! ima) { cout.put (' '); ima = true; }
return 0;
}

You might also like