You are on page 1of 151

Programski jazik C++ FUNKCII I KLASI PISI

WWW.MATEMATIKA.MK PISI
Programski jazik C++ FUNKCII I KLASI PISI
Sodr`ina strana 2
1. Funkcii
1. Da se napi{e programa vo programskiot jazik C++ so koja }e 8
se presmeta sumata 1k+2k+3k+...nk kade {to n i k se vnesuvaat
preku tastatura. Sekoj od stepenite da se presmetuva so
funkcija.

2. Da se napi{e programa vo programskiot jazik C++ so koja }e 10


se najdat i izbrojat site broevi vo daden interval koi se
delivi so svoite cifri, osven nula. Da se napi{e funkcija
za opredeluvawe na delivosta na broj so svoite cifri.

3. Da se napi{e programa vo programskiot jazik C++ so koja 12


}e se najdat i izbrojat site broevi palindromi vo daden
interval. Da se napi{e funkcija za opredeluvawe na
sprotivniot broj na dadeniot.

4. Da se napi{e programa vo programskiot jazik C++ so koja 14


}e se najdat i izbrojat site prosti broevi vo daden interval
. Da se napi{e funkcija za opredeluvawe dali dadeniot broj
e prost.

5. Da se napi{e programa vo programskiot jazik C++ so koja 16


}e se najdat i izbrojat site parovi broevi od daden interval
~ij{to zbir e sprotiven broj od nivnata razlika. Da se
napi{e funkcija za opredeluvawe na sprotivniot broj na
dadeniot.

6. Da se napi{e programa vo programskiot jazik C++ so koja 18


}e se najdat site broevi vo daden interval {to se ednakvi na
zbirot od kubovite na svoite cifri, proizvodot od kubovite
na svoite cifri, ili pak, zbirot od zbirot od kubovite na
svoite cifri i proizvodot od kubovite na svoite cifri. Da
se napi{at funkcii za opredeluvawe na zbirot od kubovite
na cifrite i proizvodot od kubovite na cifrite na daden
broj.

7. Da se napi{e programa vo programskiot jazik C++ so koja 22


}e se pronajdat site Armstrongovi broevi vo zadaden
interval. Armstrongovi broevi se broevi za koi va`i:
abc
 
k  a n  b n  c n  k n .
n

WWW.MATEMATIKA.MK PISI
Programski jazik C++ FUNKCII I KLASI PISI
25
8. Da se napi{e programa vo programskiot jazik C++, koja vo
daden interval go nao|a onoj broj ~ij{to zbir na deliteli e
maksimalen. Da se napi{e funkcija za nao|awe na zbirot na
delitelite na daden broj.

9. Da se napi{e programa vo programskiot jazik C++ so koja 27


}e se ispe~atat site sovr{eni broevi od daden interval.
Sovr{eni broevi se broevite koi se ednakvi na zbirot od
nivnite deliteli, vklu~uvaj}i go i brojot 1. Da se napi{e
funkcija za nao|awe na zbirot na delitelite na daden broj.

10. Da se napi{e programa vo programskiot jazik C++ za 29


re{avawe na kvadratnata ravenka a  x  b  x  c  0 . Da se
2

napi{e funkcija za nao|awe na re{enijata.

11. Da se napi{e programa vo programskiot jazik C++ so koja 31


}e se presmeta najmaliot broj na banknoti od po 500, 50 i 10
denari so koi mo`e da se dobie dadena suma na pari.

12. Da se napi{e programa vo programskiot jazik C++ za 33


kratewe na dropka so dadeni broitel i imenitel. Da se
iskoristi funkcija za NZD na dva broja.

13. Da se napi{e programa vo programskiot jazik C++ so koja 35


}e se izbroi kolku elementi od dadena niza imaat paren, a
kolku neparen broj na cifri.

14. Da se napi{e programa vo programskiot jazik C++ so koja 37


na parnite pozicii vo edna niza }e se zapi{at obratnite
broevi na elementite, a na neparnite pozicii }e se zapi{at
kvadratite na elementite.

15. Da se napi{e programa vo programskiot jazik C++ so koja


}e se presmeta NZS na elementite od dadena niza. Da se
iskoristi funkcija za nao|awe na NZS na dva broja. 39

16. Da se napi{e programa vo programskiot jazik C++ so koja 41


}e se presmeta NZD na elementite od dadena niza. Da se
iskoristi funkcija za nao|awe na NZD na dva broja.

17. Da se napi{e programa vo programskiot jazik C++ so koja 43


}e se stepenuva dadena niza na k-ti stepen. Da se iskoristi
funkcija za stepenuvawe na eden broj.

WWW.MATEMATIKA.MK PISI
Programski jazik C++ FUNKCII I KLASI PISI
18. Da se napi{e programa vo programskiot jazik C++ so koja 45
}e se presmeta sumata x1+x2+...+xn. Da se iskoristi funkcija za
stepenuvawe na eden broj.

19. Da se napi{e programa vo programskiot jazik C++ so koja 47


}e se presmeta vrednosta na funkcijata cos(x) spored
x2 x4 x6
formulata cos x  1     .... so koristewe na
2! 4! 6!
prvite n ~lenovi.

20. Da se napi{e programa vo programskiot jazik C++ so koja 49


}e se pronajdat site broevi vo daden interval ~ii cifri se
podredeni vo raste~ki redosled, po~nuvaj}i od cifrata so
najgolema kon cifrata so najmala vrednost.

21. Da se napi{e programa vo programskiot jazik C++ so koja 51


}e se pronajdat site broevi vo daden interval kaj koi zbirot
i proizvodot od cifrite e prost broj.

22. Da se napi{e programa vo programskiot jazik C++ so koja 53


}e se izbri{at site elementi od dadena niza koi se javuvaat
pove}e od edna{.

23. Da se napi{e programa vo programskiot jazik C++ so koja 56


}e se izbrojat pojavuvawata na maksimalniot i minimalniot
element od dadena niza.

24. Da se napi{e programa vo programskiot jazik C++ so koja 59


}e se pronajde na koi pozicii i kolku pati se pojavil daden
element vo dadena niza.

25. Da se napi{e programa vo programskiot jazik C++ so koja 62


}e se najde unijata na dve nizi.

26. Da se napi{e programa vo programskiot jazik C++ so koja 65


}e se pronajde najgolemata raste~ka podniza na dadena niza.

27. Da se napi{e programa vo programskiot jazik C++ so koja 68


}e se ispe~atat najmalite k elementi od nizata.

WWW.MATEMATIKA.MK PISI
Programski jazik C++ FUNKCII I KLASI PISI
28. Na ispit u~estvuvale n<20 kandidati. Minimalniot broj 71
na poeni za upis e min. Da se napi{e programa vo
programskiot jazik C++ so koja }e se opredeli brojot na
kandidatite koi steknale pravo na upis i }e go presmeta
nivniot sreden uspeh poka`an na ispitot.

29. Da se napi{e programa vo programskiot jazik C++ so koja 73


}e se pronajdat prvata i poslednata pozicija na koja se
pojavil zadaden element vo edna niza.

30. Da se napi{e programa vo programskiot jazik C++ so koja 76


}e se pronajde najgolemata razlika na dva sosedni elementi
od niza.

31. Da se napi{e programa vo programskiot jazik C++ so koja 79


}e se podredi odreden del od niza vo raste~ki redosled.

32. Da se napi{e programa vo programskiot jazik C++ so koja 82


}e se presmeta aritmeti~kata sredina na elementite od
dadena niza, a potoa }e se isfrlat elementite pomali od
taa vrednost.

33. Da se napi{e programa vo programskiot jazik C++ so koja 85


}e se soberat i pomno`at dve nizi. Elementite na
novodobienite nizi se dobivaat kako zbir, odnosno proizvod
od soodvetnite elementi vo dadenite nizi, t.e. c[i]=a[i]+b[i] i
d[i]=a[i]*b[i].

2. Klasi

1. Da se razvie klasa za to~ka vo koordinaten sistem koja 88


sodr`i metod za pe~atewe na to~kata i metod za
opredeluvawe na rastojanieto od to~kata do koordinatniot
po~etok.

2. Da se razvie klasa za datum koja sodr`i metod za 90


pe~atewe na datumot i metod za razlika na dva datumi.

3. Da se razvie klasa za triagolnik so metodi za 93


presmetuvawe na perimetarot i plo{tinata na triagolnikot.

4. Da se razvie klasa za rabota so kompleksen broj koja ima 96


funkcii za sobirawe i mno`ewe na dva kompleksni broja.

99

WWW.MATEMATIKA.MK PISI
Programski jazik C++ FUNKCII I KLASI PISI
5. Da se razvie klasa Student koja sodr`i ime, prezime i
ocenki na studentot, kako i metod za vnesuvawe na ocenkite
i metod za pe~atewe na podatocite na studentot, zaedno so
prosekot od negovite ocenki.

6. Da se razvie klasa Smetka koja sodr`i ime i prezime na 102


korisnikot i iznos na smetkata, kako i metod za dodavawe i
podigawe na pari od smetkata i metod za pe~atewe na
podatocite od smetkata.

7. Da se razvie klasa Niza koja sodr`i niza od celi broevi, 105


kako i metod za dodavawe elementi vo nizata i metod za
pe~atewe na nizata, zaedno so zbirot od elementite vo
nizata.

8. Da se razvie klasa Niza koja sodr`i niza od celi broevi, 108


kako i metod za podreduvawe na elementite vo nizata i
metod za pe~atewe na nizata.

9. Da se razvie klasa Niza koja sodr`i niza od celi broevi i 111


metod za dobivawe na nizata kako unija od dve drugi nizi.

10. Da se razvie klasa Kniga so naslov, avtor i cena, kako i 115


kopi-konstruktor za knigata.

11. Da se razvie klasa Kniga so naslov, avtor i cena, i da se 119


preoptovari operatorot za pe~atewe na ekran <<.

12. Da se razvie klasa za rabota so kompleksen broj so 122


preoptovaruvawe na operatorite +(sobirawe) i *(mno`ewe).

13. Da se razvie klasa Niza koja sodr`i niza od celi broevi 125
i da se preoptovari operatorot [ ] za dobivawe na
elementite od nizata.

14. Da se razvie klasa Delewe koja sodr`i realen broj i da 127


se preoptovari operatorot za delewe /.

15. Da se napi{e klasa za telo od 3D prostor so funkcii za 130


povr{ina i volumen. Od nea da se izvedat klasite za sfera i
kvadar.

16. Da se napi{e klasa za to~ka vo 2D prostor so funkcija za 133


rastojanie pome|u dve to~ki, i od nea da se nasledi klasa za
to~ka vo 3D, isto taka so funkcija za rastojanie pome|u dve
to~ki vo 3D prostor.

WWW.MATEMATIKA.MK PISI
Programski jazik C++ FUNKCII I KLASI PISI

17. Da se razvie klasa Smetka koja sodr`i ime i prezime na 151


korisnikot i iznos na smetkata, kako i metod za dodavawe i
podigawe pari od smetkata i metod za pe~atewe na
podatocite od smetkata. Od nea da se izvede klasa
SmetkaMinus vo koja }e bide dozvoleno da se odi vo minus do
prethodno opredelena suma.

18. Da se napi{e klasa za Vraboten koja sodr`i ime, prezime 142


i plata na vraboteniot, kako i metod za pe~atewe na
podatocite. Od nea da se izvede klasa Menaxer koja sodr`i i
oddel so koj rakovodi menaxerot.

19. Da se razvie klasa Delewe koja sodr`i realen broj i da 146


se preoptovari operatorot za delewe / koj pri delewe so
nula dava poraka za gre{ka.

20. Da se razvie klasa Niza koja sodr`i niza od celi broevi 149
i da se preoptovari operatorot [ ] za dobivawe na
elementite od nizata koj dava poraka za gre{ka pri
nevaliden indeks.

WWW.MATEMATIKA.MK PISI
Programski jazik C++ FUNKCII I KLASI PISI
1. Funkcii
1. Da se napi{e programa vo programskiot jazik C++ so koja }e
se presmeta sumata 1k+2k+3k+...nk kade {to n i k se vnesuvaat
preku tastatura. Sekoj od stepenite da se presmetuva so
funkcija.

Re{enie:

Vlezni promenlivi Izlezni promenlivi


kraj na
n
intervalot

k stepen sum vkupnata suma

broja~ za
i
intervalot

stepen(int x,int k) funkcija za presmetuvawe na x^k (x na stepen k)

#include <iostream>
using namespace std;
long stepen(int x,int k)
{
int i;
long suma=1;
for(i=0; i<k; i++)
suma*=x;
return suma;
}
int main()
{
int n,k,i;
long sum=0;
cout<<"Vnesete ja poslednata osnova: ";
cin>>n;
cout<<"Vnesete go stepenot : ";
cin>>k;
cout<<endl;

WWW.MATEMATIKA.MK PISI
Programski jazik C++ FUNKCII I KLASI PISI
for(i=1;i<=n;i++)
sum+=stepen(i,k);
cout<<"Vkupnata suma iznesuva : "<<sum<<endl;
return 0;
}
_______________________________________________________
Test primer:

VLEZ:

Vnesete ja poslednata osnova : 7


Vnesete go stepenot: 3

Programata pe~ati:

Vkupnata suma iznesuva 784

WWW.MATEMATIKA.MK PISI
Programski jazik C++ FUNKCII I KLASI PISI
2. Da se napi{e programa vo programskiot jazik C++ so koja }e
se najdat i izbrojat site broevi vo daden interval koi se
delivi so svoite cifri, osven nula. Da se napi{e funkcija za
opredeluvawe na delivosta na broj so svoite cifri.

Re{enie:

Vlezni promenlivi Izlezni promenlivi


po~etok i kraj
pocetok, kraj
na intervalot

pomo{na broja~ za broevite


rez sum
promenliva so baranoto svojstvo
broja~ za
i
intervalot

funkcija za opredeluvawe dali brojot k e deliv


dellivo(int k)
so svoite cifri

#include <iostream>
using namespace std;
int dellivo(int k)
{
int pom=k, deliv=1, c;
while(pom>0)
{
c=pom%10;
if(c!=0)
{
if(k%c!=0)
{
deliv=0;
break;
}
}
pom/=10;
}
return deliv;
}
int main()
{

WWW.MATEMATIKA.MK PISI
Programski jazik C++ FUNKCII I KLASI PISI
int pocetok, kraj, i, rez, sum=0;
cout<<"Vnesete go pocetokot na intervalot : ";
cin>>pocetok;
cout<<"Vnesete go krajot na intervalot : ";
cin>>kraj;
cout<<endl<<"Vo intervalot od "<<pocetok<<" do "<<kraj<<"
delivi so svoite cifri se slednite broevi :"<<endl;
for(i=pocetok; i<=kraj; i++)
{
rez=dellivo(i);
if(rez==1)
{
cout<<i<<" ";
sum++;
}
}
if(sum==0)
cout<<endl<<"Nema takvi broevi vo toj interval"<<endl;
else
cout<<endl<<"Vkupno takvi broevi ima "<<sum<<endl;
return 0;
}
_______________________________________________________
Test primer:

VLEZ:

Vnesete go po~etokot na intervalot : 15


Vnesete go krajot na intervalot : 25

Programata pe~ati:

Vo intervalot od 15 do 25 delivi so svoite cifri se slednite


broevi :
15 20 22 24
Vkupno takvi broevi ima 4

WWW.MATEMATIKA.MK PISI
Programski jazik C++ FUNKCII I KLASI PISI
3. Da se napi{e programa vo programskiot jazik C++ so koja }e
se najdat i izbrojat site broevi palindromi vo daden
interval. Da se napi{e funkcija za opredeluvawe na
sprotivniot broj na dadeniot.

Re{enie:

Vlezni promenlivi Izlezni promenlivi


pocetok, po~etok i kraj na
kraj intervalot

sprotiven broj na broja~ za broevite


s sum
dadeniot palindromi

i broja~ za intervalot

sprotiven funkcija za opredeluvawe na sprotivniot broj na


(int k) dadeniot.

#include <iostream>
using namespace std;
long sprotiven(int k)
{
long pom=k, p=0;
int c;
while(pom>0)
{
c=pom%10;
p=p*10+c;
pom/=10;
}
return p;
}
int main()
{
long pocetok, kraj, i, s;
int sum=0;
cout<<"Vnesete go pocetokot na intervalot : ";
cin>>pocetok;
cout<<"Vnesete go krajot na intervalot : ";
cin>>kraj;

WWW.MATEMATIKA.MK PISI
Programski jazik C++ FUNKCII I KLASI PISI
cout<<endl<<"Vo intervalot od "<<pocetok<<" do "<<kraj<<"
palindromi se slednite broevi :"<<endl;
for(i=pocetok; i<=kraj; i++)
{
s=sprotiven(i);
if(s==i)
{
cout<<i<<" ";
sum++;
}
}
if(sum==0)
cout<<endl<<"Nema palindromi vo dadeniot interval"<<endl;
else
cout<<endl<<"Vkupno palindromi vo toj interval ima
"<<sum<<endl;
return 0;
}
_______________________________________________________
Test primer:

VLEZ:

Vnesete go po~etokot na intervalot : 100


Vnesete go krajot na intervalot : 200

Programata pe~ati:

Vo intervalot od 100 do 200 palindromi se slednite broevi :


101 111 121 131 141 151 161 171 181 191
Vkupno palindromi vo toj interval ima 10

WWW.MATEMATIKA.MK PISI
Programski jazik C++ FUNKCII I KLASI PISI
4. Da se napi{e programa vo programskiot jazik C++ so koja }e
se najdat i izbrojat site prosti broevi vo daden interval . Da
se napi{e funkcija za opredeluvawe dali dadeniot broj e
prost.

Re{enie:

Vlezni promenlivi Izlezni promenlivi


po~etok i kraj
pocetok, kraj
na intervalot

pomo{na broja~ za prostite


pom sum
promenliva broevi
broja~ za
i
intervalot

funkcija za opredeluvawe dali dadeniot broj e


prost(int k)
prost

#include <iostream>
using namespace std;
bool prost(int k)
{
int pom=k, i;
bool dali=true;
for(i=2; i<=pom/2; i++)
{
if((pom%i)==0)
{
dali=false;
break;
}
}
return dali;
}
int main()
{
int pocetok, kraj, i, sum=0;
bool pom;
cout<<"Vnesete go pocetokot na intervalot : ";
cin>>pocetok;

WWW.MATEMATIKA.MK PISI
Programski jazik C++ FUNKCII I KLASI PISI
cout<<"Vnesete go krajot na intervalot : ";
cin>>kraj;
cout<<endl<<"Vo intervalot od "<<pocetok<<" do "<<kraj<<"
prosti se slednite broevi :"<<endl;
for(i=pocetok; i<=kraj; i++)
{
pom=prost(i);
if(pom)
{
cout<<i<<" ";
sum++;
}
}
if(sum==0)
cout<<endl<<"Nema prosti broevi vo dadeniot interval"<<endl;
else
cout<<endl<<"Vkupno prosti broevi vo toj interval ima
"<<sum<<endl;
return 0;
}
_______________________________________________________
Test primer:

VLEZ:

Vnesete go po~etokot na intervalot : 10


Vnesete go krajot na intervalot : 30

Programata pe~ati:

Vo intervalot od 10 do 30 prosti se slednite broevi :


11 13 17 19 23 29
Vkupno prosti broevi vo toj interval ima 6

WWW.MATEMATIKA.MK PISI
Programski jazik C++ FUNKCII I KLASI PISI
5. Da se napi{e programa vo programskiot jazik C++ so koja }e
se najdat i izbrojat site parovi broevi od daden interval
~ij{to zbir e sprotiven broj od nivnata razlika. Da se napi{e
funkcija za opredeluvawe na sprotivniot broj na dadeniot.

Re{enie:

Vlezni promenlivi Izlezni promenlivi


po~etok i kraj na
pocetok, kraj
intervalot

sprotivniot broj broja~ za baranite


s sum
na daden broj parovi broevi
broja~i za
i, j
intervalot

sprotiven funkcija za opredeluvawe na sprotivniot broj na


(int k) dadeniot.

#include <iostream>
using namespace std;
int sprotiven(int k)
{
int pom=k, p=0, c;
while(pom>0)
{
c=pom%10;
p=p*10+c;
pom/=10;
}
return p;
}
int main()
{
int pocetok, kraj, i, j, s, sum=0;
cout<<"Vnesete go pocetokot na intervalot : ";
cin>>pocetok;
cout<<"Vnesete go krajot na intervalot : ";
cin>>kraj;
cout<<endl<<"Vo intervalot od "<<pocetok<<" do "<<kraj<<"
broevi sto go zadovoluvaat uslovot se :"<<endl;

WWW.MATEMATIKA.MK PISI
Programski jazik C++ FUNKCII I KLASI PISI
for(i=pocetok; i<=kraj; i++)
{
for(j=i; j<=kraj; j++)
{
s=sprotiven(i*j);
if(s==(i+j))
{
cout<<i<<" i "<<j<<" :
"<<i<<"+"<<j<<"="<<i+j<<" i "<<i<<"*"<<j<<"="<<i*j<<endl;
sum++;
}
}
}
if(sum==0)
cout<<"Nema takvi parovi vo dadeniot interval"<<endl;
else
cout<<"Vkupno takvi parovi vo toj interval ima "<<sum<<endl;
return 0;
}
_______________________________________________________
Test primer:

VLEZ:

Vnesete go po~etokot na intervalot : 1000


Vnesete go krajot na intervalot : 5000

Programata pe~ati:

Vo intervalot od 1000 do 5000 broevi {to go zadovoluvaat


uslovot se :
1320 i 4125 : 1320+4125=5445 i 1320*1425=5445000
1400 i 3725 : 1400+3725=5125 i 1400*3725=5215000
2235 i 2400 : 2235+2400=4635 i 2235*2400=5364000
Vkupno takvi parovi vo toj interval ima 3

WWW.MATEMATIKA.MK PISI
Programski jazik C++ FUNKCII I KLASI PISI
6. Da se napi{e programa vo programskiot jazik C++ so koja }e
se najdat site broevi vo daden interval {to se ednakvi na
zbirot od kubovite na svoite cifri, proizvodot od kubovite
na svoite cifri, ili pak, zbirot od zbirot od kubovite na
svoite cifri i proizvodot od kubovite na svoite cifri. Da se
napi{at funkcii za opredeluvawe na zbirot od kubovite na
cifrite i proizvodot od kubovite na cifrite na daden broj.

Re{enie:

Vlezni promenlivi Izlezni promenlivi


po~etok i kraj
pocetok, kraj
na intervalot
pomo{na broja~ za
s sum baranite
promenliva
broevi
broja~ za
i
intervalot

funkcija za nao|awe na zbirot od


zbir(int k)
kubovite na cifrite na daden broj
funkcija za pe~atewe na zbirot od
pecatiZbir(int k)
kubovite na cifrite na daden broj
funkcija za nao|awe na proizvodot od
proizvod(int k)
kubovite na cifrite na daden broj
funkcija za pe~atewe na proizvodot od
pecatiProizvod(int k)
kubovite na cifrite na daden broj

#include <iostream>
using namespace std;
int zbir(int k)
{
int pom=k, z=0, cifra;
while(pom>0)
{
cifra=pom%10;
z+=cifra*cifra*cifra;
pom/=10;
}

WWW.MATEMATIKA.MK PISI
Programski jazik C++ FUNKCII I KLASI PISI
return z;
}
void pecatiZbir(int k)
{
int pom=k, cifra;
while(pom>0)
{
cifra=pom%10;
cout<<cifra<<"*"<<cifra<<"*"<<cifra<<"+";
pom/=10;
}
cout<<"0";
}
int proizvod(int k)
{
int pom=k, p=1, cifra;
while(pom>0)
{
cifra=pom%10;
p*=cifra*cifra*cifra;
pom/=10;
}
return p;
}
void pecatiProizvod(int k)
{
int pom=k, cifra;
while(pom>0)
{
cifra=pom%10;
cout<<"("<<cifra<<"*"<<cifra<<"*"<<cifra<<")"<<"*";
pom/=10;
}
cout<<"1";
}
int main()
{
int pocetok, kraj, i, s, sum=0;
cout<<"Vnesete go pocetokot na intervalot : ";
cin>>pocetok;
cout<<"Vnesete go krajot na intervalot : ";
cin>>kraj;

WWW.MATEMATIKA.MK PISI
Programski jazik C++ FUNKCII I KLASI PISI
cout<<"\nBroevi ednakvi na zbirot od kubovite na cifrite : ";
for(i=pocetok; i<=kraj; i++)
{
s=zbir(i);
if(s==i)
{
cout<<endl<<i<<" = ";
pecatiZbir(i);
sum++;
}
}
if(sum==0)
cout<<"\nNema takvi broevi vo dadeniot interval \n"<<endl;
else
cout<<"\nVkupno takvi broevi vo toj interval ima "<<sum<<endl;
sum=0;
cout<<"\nBroevi ednakvi na proizvodot od kubovite na cifrite : ";
for(i=pocetok; i<=kraj; i++)
{
s=proizvod(i);
if(s==i)
{
cout<<endl<<i<<" = ";
pecatiProizvod(i);
sum++;
}
}
if(sum==0)
cout<<"\nNema takvi broevi vo dadeniot interval"<<endl;
else
cout<<"\nVkupno takvi broevi vo toj interval ima "<<sum<<endl;
sum=0;
cout<<"\nBroevi ednakvi na zbirot od prethodnite dve sumi : ";
for(i=pocetok; i<=kraj; i++)
{
s=zbir(i)+proizvod(i);
if(s==i)
{
cout<<endl<<i<<" = ";
pecatiZbir(i);
cout<<" + ";
pecatiProizvod(i);

WWW.MATEMATIKA.MK PISI
Programski jazik C++ FUNKCII I KLASI PISI
sum++;
}
}
if(sum==0)
cout<<"\nNema takvi broevi vo dadeniot interval"<<endl;
else
cout<<"\nVkupno takvi broevi vo toj interval ima "<<sum<<endl;
return 0;
}
_______________________________________________________
Test primer:

VLEZ:

Vnesete go po~etokot na intervalot : 100


Vnesete go krajot na intervalot : 400

Programata pe~ati:

Broevi ednakvi na zbirot od kubovite na cifrite :


153 = 3*3*3+5*5*5+1*1*1+0
370 = 0*0*0+7*7*7+3*3*3+0
371 = 1*1*1+7*7*7+3*3*3+0
Vkupno takvi broevi vo toj interval ima 3

Broevi ednakvi na proizvodot od kubovite na cifrite :


Nema takvi broevi vo dadeniot interval

Broevi ednakvi na zbirot od prethodnite dve sumi :


370 = 0*0*0+7*7*7+3*3*3+0
Vkupno takvi broevi vo toj interval ima 1

WWW.MATEMATIKA.MK PISI
Programski jazik C++ FUNKCII I KLASI PISI
7. Da se napi{e programa vo programskiot jazik C++ so koja }e
se pronajdat site Armstrongovi broevi vo zadaden interval.
Armstrongovi broevi se broevi za koi va`i:
abc
 
k  a  b  c  k .
n n n n

Re{enie:

Vlezni promenlivi Izlezni promenlivi


po~etok i kraj
pocetok, kraj
na intervalot
pomo{ni
brCif, cifra, pom
promenlivi
broja~ za baranite
sum
broja~i za broevi
i, j
intervalite
zbir od
zbir stepenite na
cifrite

stepen(int n,int k) funkcija za nao|awe na n^k (n na stepen k)

funkcija za nao|awe na brojot na cifri na


brojCifri(int n)
daden broj

#include<iostream>
using namespace std;
long stepen(int n,int k)
{
long pom=1;
int i;
for(i=1; i<=k; i++)
pom*=n;
return pom;
}
int brojCifri(int n)
{
int br=0,pom=n;
while(pom>0)
{

WWW.MATEMATIKA.MK PISI
Programski jazik C++ FUNKCII I KLASI PISI
br++;
pom/=10;
}
return br;
}
int main()
{
int pocetok, kraj, i, j, brCif, cifra, pom, sum=0;
long zbir;
cout<<"Vnesete go pocetokot na intervalot : ";
cin>>pocetok;
cout<<"Vnesete go krajot na intervalot : ";
cin>>kraj;
cout<<endl<<"Vo intervalot od "<<pocetok<<" do "<<kraj<<"
Armstrongovi se slednite broevi :"<<endl;
for(i=pocetok; i<=kraj; i++)
{
brCif=brojCifri(i);
pom=i;
zbir=0;
for(j=1; j<=brCif; j++)
{
cifra=pom%10;
zbir+=stepen(cifra, brCif);
pom/=10;
}
if(zbir==i)
{
cout<<i<<" ";
sum++;
}
}
if(sum==0)
cout<<endl<<"Nema Armstrongovi broevi vo dadeniot
interval"<<endl;
else
cout<<endl<<"Vkupno Armstrongovi broevi vo toj interval ima
"<<sum<<endl;
return 0;
}

WWW.MATEMATIKA.MK PISI
Programski jazik C++ FUNKCII I KLASI PISI
_______________________________________________________
Test primer:

VLEZ:

Vnesete go po~etokot na intervalot : 1000


Vnesete go krajot na intervalot : 10000

Programata pe~ati:

Vo intervalot od 1000 do 10000 Armstrongovi se slednite


broevi :
1634 8208 9474
Vkupno Armstrongovi broevi vo toj interval ima 3

WWW.MATEMATIKA.MK PISI
Programski jazik C++ FUNKCII I KLASI PISI
8. Da se napi{e programa vo programskiot jazik C++, koja vo
daden interval go nao|a onoj broj ~ij{to zbir na deliteli e
maksimalen. Da se napi{e funkcija za nao|awe na zbirot na
delitelite na daden broj.

Vlezni promenlivi Izlezni promenlivi


po~etok i kraj brojot so
pocetok, kraj
na intervalot max najgolem zbir na
zbir od deliteli
s deliteli na
daden broj
zbirot od
broja~ za maxzbir
i delitelite
intervalot

funkcija za nao|awe na zbirot na


sumaDeliteli(int k)
delitelite na daden broj
#include <iostream>
using namespace std;
int sumaDeliteli(int k)
{
int pom=k, i, sum=0;
for(i=1; i<=pom; i++)
{
if((pom%i)==0)
sum+=i;
}
return sum;
}
int main()
{
int pocetok, kraj, i, s, max, maxzbir;
cout<<"Vnesete go pocetokot na intervalot : ";
cin>>pocetok;
cout<<"Vnesete go krajot na intervalot : ";
cin>>kraj;
max=pocetok;
maxzbir=sumaDeliteli(pocetok);
for(i=pocetok+1; i<=kraj; i++)
{
s=sumaDeliteli(i);

WWW.MATEMATIKA.MK PISI
Programski jazik C++ FUNKCII I KLASI PISI
if(s>maxzbir)
{
maxzbir=s;
max=i;
}
}
cout<<"\nVo intervalot od "<<pocetok<<" do "<<kraj<<" najgolem
zbir na deliteli ima "<<max<<endl;
cout<<"Zbirot na negovite deliteli e "<<maxzbir<<endl;
return 0;
}
_______________________________________________________
Test primer:

VLEZ:

Vnesete go po~etokot na intervalot : 100


Vnesete go krajot na intervalot : 500

Programata pe~ati:

Vo intervalot od 100 do 500 najgolem zbir na deliteli ima 480


Zbirot na negovite deliteli e 1512

WWW.MATEMATIKA.MK PISI
Programski jazik C++ FUNKCII I KLASI PISI
9. Da se napi{e programa vo programskiot jazik C++ so koja }e
se ispe~atat site sovr{eni broevi od daden interval.
Sovr{eni broevi se broevite koi se ednakvi na zbirot od
nivnite deliteli, vklu~uvaj}i go i brojot 1. Da se napi{e
funkcija za nao|awe na zbirot na delitelite na daden broj.

Re{enie:

Vlezni promenlivi Izlezni promenlivi


po~etok i kraj
pocetok, kraj
na intervalot
zbir od
s deliteli na broja~ za
sum
daden broj sovr{enite broevi

broja~ za
i
intervalot

funkcija za nao|awe na zbirot na


sumaDeliteli(int k)
delitelite na daden broj
funkcija za pe~atewe na delitelite na
pecati(int k)
daden broj
#include <iostream>
using namespace std;
int sumaDeliteli(int k)
{
int pom=k, i, sum=0;
for(i=1; i<=pom/2; i++)
{
if((pom%i)==0)
sum+=i;
}
return sum;
}
void pecati(int k)
{
int pom=k, i;
cout<<k<<" = 1";
for(i=2; i<=pom/2; i++)
{ if((pom%i)==0)
cout<<"+"<<i;

WWW.MATEMATIKA.MK PISI
Programski jazik C++ FUNKCII I KLASI PISI
}
cout<<endl;
}
int main()
{
int pocetok, kraj, i, s, sum=0;
cout<<"Vnesete go pocetokot na intervalot : ";
cin>>pocetok;
cout<<"Vnesete go krajot na intervalot : ";
cin>>kraj;
cout<<endl<<"Vo intervalot od "<<pocetok<<" do "<<kraj<<"
sovrseni broevi se :"<<endl;
for(i=pocetok; i<=kraj; i++)
{
s=sumaDeliteli(i);
if(s==i)
{
pecati(i);
sum++;
}
}
if(sum==0)
cout<<"Nema sovrseni broevi vo dadeniot interval \n"<<endl;
else
cout<<"Vkupno sovrseni broevi vo toj interval ima "<<sum<<endl;
return 0;
}
_______________________________________________________
Test primer:

VLEZ:

Vnesete go po~etokot na intervalot : 1


Vnesete go krajot na intervalot : 500

Programata pe~ati:

Vo intervalot od 1 do 500 sovr{eni broevi se :


6 = 1+2+3
28 = 1+2+4+7+14
496 = 1+2+4+8+16+31+62+124+248
Vkupno sove{eni broevi vo toj interval ima 3

WWW.MATEMATIKA.MK PISI
Programski jazik C++ FUNKCII I KLASI PISI
10. Da se napi{e programa vo programskiot jazik C++ za
re{avawe na kvadratnata ravenka a  x 2  b  x  c  0 . Da se
napi{e funkcija za nao|awe na re{enijata.

Re{enie:

Vlezni promenlivi Izlezni promenlivi


koeficienti re{enija na
a,b,c ravenkata; ili
na ravenkata
x1, dvata realni
indikator na x2 re{enija ili
dali vidot na realniot i
re{enijata imaginarniot del
ravenka(float a, float
funkcija za nao|awe na re{enijata na
b, float c, float *x1,
kvadratnata ravenka
float *x2, int *dali)

#include<iostream>
#include<math.h>
using namespace std;
void ravenka(float a, float b, float c, float *x1, float *x2, int *dali)
{
float d=b*b-4*a*c;
if (d>=0)
{
*x1=(-b-sqrt(d))/(2*a);
*x2=(-b+sqrt(d))/(2*a);
*dali=1;
}
else
{
*x1=-b/(2*a);
*x2=sqrt((-1)*d)/(2*a);
*dali=0;
}
}
int main()
{
float a,b,c;
float x1, x2;
int dali;

WWW.MATEMATIKA.MK PISI
Programski jazik C++ FUNKCII I KLASI PISI
do
{
cout<<"Vneste go koeficientot 'a' pred x^2 (a!=0) : ";
cin>>a;
}
while(a==0);
cout<<"Vneste go koeficientot 'b' pred x : ";
cin>>b;
cout<<"Vneste go slobodniot clen 'c' : ";
cin>>c;
ravenka(a,b,c,&x1,&x2,&dali);
if(dali==1)
cout<<"\nRavenkata ima realni resenija : x1="<<x1<<" i
x2="<<x2<<endl;
else
{
cout<<"\nRavenkata ima imaginarni resenija :"<<endl;
cout<<"x1="<<x1<<"+i*"<<x2<<" i x2="<<x1<<"-i*"<<
x2<<endl;
}
return 0;
}
_______________________________________________________
Test primer:

VLEZ:

Vnesete go koeficientot ’a’ pred x^2 (a!=0) : 1


Vnesete go koeficientot ’b’ pred x: -5
Vnesete go slobodniot ~len ’c’ : 6

Programata pe~ati:

Ravenkata ima realni re{enija : x1=2 i x2=3

WWW.MATEMATIKA.MK PISI
Programski jazik C++ FUNKCII I KLASI PISI
11. Da se napi{e programa vo programskiot jazik C++ so koja }e
se presmeta najmaliot broj na banknoti od po 500, 50 i 10
denari so koi mo`e da se dobie dadena suma na pari.

Re{enie:

Vlezni promenlivi Izlezni promenlivi


brojot na
sumata koja petsto, banknoti od po
treba da se pedeset, 500, 50 i 10
suma
dobie so deset, denari i
banknotite ostatok ostatokot vo
moneti
banknoti(int s, int funkcija za nao|awe na brojot na banknoti
*petsto, int *pedeset, od po 500, 50 i 10 denari za dobivawe na
int *deset) baranata suma
#include<iostream>
using namespace std;
int banknoti(int s, int *petsto, int *pedeset, int *deset)
{
int suma=s;
*petsto=*pedeset=*deset=0;
while(suma>=500)
{
(*petsto)++;
suma-=500;
}
while(suma>=50)
{
(*pedeset)++;
suma-=50;
}
while(suma>=10)
{
(*deset)++;
suma-=10;
}
return suma;
}
int main()
{
int suma, petsto, pedeset, deset, ostatok;

WWW.MATEMATIKA.MK PISI
Programski jazik C++ FUNKCII I KLASI PISI
do
{
cout<<"Vneste ja sumata za koja ke se opredeluva (suma>0)
: ";
cin>>suma;
}
while (suma<=0);
ostatok=banknoti(suma, &petsto, &pedeset, &deset);
cout<<"\nSumata "<<suma<<" moze da se dobie so :\n";
cout<<petsto<<" banknoti od po 500 denari plus \n";
cout<<pedeset<<" banknoti od po 50 denari plus \n";
cout<<deset<<" banknoti od po 10 denari \n";
if(ostatok>0)
cout<<"i moneti so vkupna vrednost od "<<ostatok<<"
denari.\n";
return 0;
}
_______________________________________________________
Test primer:

VLEZ:

Vnesete ja sumata za koja }e se opredeluva (suma>=0) : 3435

Programata pe~ati:

Sumata 3435 mo`e da se dobie so :


6 banknoti od po 500 denari plus
8 banknoti od po 50 denari plus
3 banknoti od po 10 denari
i moneti so vkupna vrednost od 5 denari.

WWW.MATEMATIKA.MK PISI
Programski jazik C++ FUNKCII I KLASI PISI
12. Da se napi{e programa vo programskiot jazik C++ za
kratewe na dropka so dadeni broitel i imenitel. Da se
iskoristi funkcija za NZD na dva broja.

Vlezni promenlivi Izlezni promenlivi


broitel, broitelot i
imenitel imenitelot
NZD na
maxDelitel broitelot i
imenitelot
nzd(int m,int
funkcija za nao|awe NZD na dva broja
n)
#include<iostream>
#include<math.h>
using namespace std;
int nzd(int m,int n)
{
if (n==0)
return m;
else
return(nzd(n,m%n));
}
int main()
{
int broitel,imenitel,maxDelitel;
cout<<"Vnesete go broitelot na dropkata : ";
cin>>broitel;
cout<<"Vnesete go imenitelot na dropkata : ";
cin>>imenitel;
maxDelitel=nzd(abs(broitel),abs(imenitel));
cout<<"Ja vnesovte dropkata "<<broitel<<"/"<<imenitel<<endl;
broitel/=maxDelitel;
imenitel/=maxDelitel;
cout<<"Skratenata dropka e "<<broitel<<"/"<<imenitel<<endl;
return 0;
}

WWW.MATEMATIKA.MK PISI
Programski jazik C++ FUNKCII I KLASI PISI
_______________________________________________________
Test primer:

VLEZ:

Vnesete go broitelot na dropkata : 42


Vnesete go imenitelot na dropkata : 72

Programata pe~ati:

Ja vnesovte dropkata 42/72


Skratenata dropka e 7/12

WWW.MATEMATIKA.MK PISI
Programski jazik C++ FUNKCII I KLASI PISI
13. Da se napi{e programa vo programskiot jazik C++ so koja
}e se izbroi kolku elementi od dadena niza imaat paren, a
kolku neparen broj na cifri.

Re{enie:

Vlezni promenlivi Izlezni promenlivi


niza od celi
niza[20]
broevi
broj na elementi broj na elementi so
n parni,
od nizata paren i neparen
neparni
broj na cifri
pomo{na
i
proemenliva
brojCifri funkcija za opredeluvawe na brojot na cifri na
(int n) daden broj

#include<iostream>
using namespace std;
int brojCifri(int n)
{
int br=0,pom=n;
while(pom>0)
{
br++;
pom/=10;
}
return br;
}
int main()
{
int niza[20], i, n, parni=0, neparni=0;
cout<<"Kolku elementi ke ima nizata : ";
cin>>n;
cout<<"Vnesete gi elementite od nizata :\n";
for(i=0; i<n; i++)
{
cout<<"n["<<i<<"] = ";
cin>>niza[i];
}
for(i=0;i<n;i++)

WWW.MATEMATIKA.MK PISI
Programski jazik C++ FUNKCII I KLASI PISI
{ if(brojCifri(niza[i])%2==0)
parni++;
else
neparni++;
}
cout<<"Vnesenata niza e :\n";
for(i=0; i<n; i++)
{
cout<<"n["<<i<<"] = "<<niza[i]<<" ";
}
cout<<"\nOd vnesenite elementi, "<<parni<<" elementi se so paren
broj na cifri";
cout<<"\na "<<neparni<<" elementi se so neparen broj na cifri.\n";
return 0;
}
_______________________________________________________
Test primer:

VLEZ:

Kolku elementi da ima nizata : 5


Vnesete gi elementite od nizata :
n[0]=2386
n[1]=417
n[2]=3571
n[3]=29
n[4]=3

Programata pe~ati:

Vnesenata niza e :
n[0] = 2386 n[1] = 417 n[2] = 3571 n[3] = 29 n[4] = 3
Od vnesenite elementi, 3 elementi se so paren broj na cifri,
a 2 elementi se so neparen broj na cifri.

WWW.MATEMATIKA.MK PISI
Programski jazik C++ FUNKCII I KLASI PISI
14. Da se napi{e programa vo programskiot jazik C++ so koja na
parnite pozicii vo edna niza }e se zapi{at obratnite broevi
na elementite, a na neparnite pozicii }e se zapi{at
kvadratite na elementite.

Re{enie:

Vlezni promenlivi Izlezni promenlivi


niza[20] niza od celi broevi

broj na elementi vo
n
nizata

i broja~ za nizata

funkcija koja go presmetuva obratniot broj


sprotiven(int k)
na daden brojot k
#include<iostream>
using namespace std;
int sprotiven(int k)
{
int pom=k, p=0;
int c;
while(pom>0)
{
c=pom%10;
p=p*10+c;
pom/=10;
}
return p;
}
int main()
{
int niza[20], i, n;
cout<<"Kolku elementi ke ima nizata : ";
cin>>n;
cout<<"Vnesete gi elementite od nizata :\n";
for(i=0; i<n; i++)
{
cout<<"n["<<i<<"] = ";
cin>>niza[i];

WWW.MATEMATIKA.MK PISI
Programski jazik C++ FUNKCII I KLASI PISI
}
cout<<"\nVnesenata niza e :\n";
for(i=0; i<n; i++)
cout<<"n["<<i<<"] = "<<niza[i]<<" ";
for(i=0; i<n; i++)
{
if(i%2==0)
niza[i]=sprotiven(niza[i]);
else
niza[i]=niza[i]*niza[i];
}
cout<<"\nNovodobienata niza e:\n";
for(i=0;i<n;i++)
cout<<"n["<<i<<"] = "<<niza[i]<<" ";
return 0;
}
_______________________________________________________
Test primer:

VLEZ:

Kolku elementi }e ima nizata : 6


Vnesete gi elementite od nizata :
n[0]=24
n[1]=7
n[2]=351
n[3]=14
n[4]=9151
n[5]=25

Programata pe~ati:

Vnesenata niza e :
n[0] = 24 n[1] = 7 n[2] = 351 n[3] = 14 n[4] = 9151 n[5]=25
Novodobienata niza e :
n[0] = 42 n[1] = 49 n[2] = 153 n[3] = 196 n[4] = 1519 n[5]=625

WWW.MATEMATIKA.MK PISI
Programski jazik C++ FUNKCII I KLASI PISI
15. Da se napi{e programa vo programskiot jazik C++ so koja }e
se presmeta NZS na elementite od dadena niza. Da se
iskoristi funkcija za nao|awe na NZS na dva broja.

Re{enie:

Vlezni promenlivi Izlezni promenlivi


niza od celi
niza[20]
broevi
broj na
n elementi vo
nizata
broja~ za
i
nizata

NZS (int m,int n) funkcija koja nao|a NZS na dva broja

#include<iostream>
using namespace std;
int NZS(int m,int n)
{
int pom,j;
pom=1;
j=2;
do
{
while(m%j==0 || n%j==0)
{
if(m%j==0)
m/=j;
if(n%j==0)
n/=j;
pom*=j;
}
j++;
} while(m!=1 || n!=1);
return pom;
}

int main()

WWW.MATEMATIKA.MK PISI
Programski jazik C++ FUNKCII I KLASI PISI
{
int niza[20], i, n, nzs;
cout<<"Kolku elementi ke ima nizata? ";
cin>>n;
cout<<"Vnesete gi elementite od nizata :\n";
for(i=0; i<n; i++)
{
cout<<"n["<<i<<"] = ";
cin>>niza[i];
}
nzs=NZS(niza[0],niza[1]);
for(i=2;i<n;i++)
nzs=NZS(nzs,niza[i]);
cout<<"\nVnesenata niza e :\n";
for(i=0; i<n; i++)
cout<<"n["<<i<<"] = "<<niza[i]<<" ";
cout<<"\nNZS za elementite od nizata e "<<nzs<<endl;
return 0;
}
_______________________________________________________
Test primer:

VLEZ:

Kolku elementi }e ima nizata? 4


Vnesete gi elementite od nizata :
n[0]=5
n[1]=8
n[2]=12
n[3]=9

Programata pe~ati:

Vnesenata niza e :
n[0] = 5 n[1] = 8 n[2] = 12 n[3] = 9
NZS za elementite od nizata e 360

WWW.MATEMATIKA.MK PISI
Programski jazik C++ FUNKCII I KLASI PISI
16. Da se napi{e programa vo programskiot jazik C++ so koja }e
se presmeta NZD na elementite od dadena niza. Da se
iskoristi funkcija za nao|awe na NZD na dva broja.

Re{enie:

Vlezni promenlivi Izlezni promenlivi


niza od celi
niza[20]
broevi
broj na elementi
n
vo nizata

i broja~ za nizata

NZD
funkcija koja nao|a NZD na dva broja
(int m,int n)

#include<iostream>
using namespace std;
int NZD(int m,int n)
{
if (n==0)
return m;
else
return(NZD(n,m%n));
}
int main()
{
int niza[20], i, n, nzd;
cout<<"Kolku elementi ke ima nizata : ";
cin>>n;
cout<<"Vnesete gi elementite od nizata :\n";
for(i=0; i<n; i++)
{
cout<<"n["<<i<<"] = ";
cin>>niza[i];
}
nzd=NZD(niza[0],niza[1]);
for(i=2; i<n; i++)
{

WWW.MATEMATIKA.MK PISI
Programski jazik C++ FUNKCII I KLASI PISI
nzd=NZD(nzd,niza[i]);
if(nzd==1)
break;
}
cout<<"\nVnesenata niza e :\n";
for(i=0; i<n; i++)
cout<<"n["<<i<<"] = "<<niza[i]<<" ";
cout<<"\nNZD za elementite od nizata e "<<nzd<<endl;
return 0;
}
_______________________________________________________
Test primer:

VLEZ:

Kolku elementi }e ima nizata : 4


Vnesete gi elementite od nizata :
n[0]=15
n[1]=24
n[2]=36
n[3]=45

Programata pe~ati:

Vnesenata niza e :
n[0] = 15 n[1] = 24 n[2] = 36 n[3] = 45
NZD za elementite od nizata e 3

WWW.MATEMATIKA.MK PISI
Programski jazik C++ FUNKCII I KLASI PISI
17. Da se napi{e programa vo programskiot jazik C++ so koja
}e se stepenuva dadena niza na k-ti stepen. Da se iskoristi
funkcija za stepenuvawe na eden broj.

Re{enie:

Vlezni promenlivi Izlezni promenlivi


niza[20] niza od celi broevi

broj na elementi vo
n
nizata

stepen na koj }e se
st
stepenuva nizata

i broja~ za nizata

stepen
funkcija za nao|awe na n^k (n na stepen k)
(int n,int k)

#include<iostream>
using namespace std;
int stepen(int n,int k)
{
int pom=1, i;
for(i=1; i<=k; i++)
pom*=n;
return pom;
}
int main()
{
int niza[20], i, n, st;
cout<<"Kolku elementi ke ima nizata? ";
cin>>n;
cout<<"Vnesete gi elementite od nizata :\n";
for(i=0; i<n; i++)
{
cout<<"n["<<i<<"] = ";
cin>>niza[i];
}
do

WWW.MATEMATIKA.MK PISI
Programski jazik C++ FUNKCII I KLASI PISI
{
cout<<"\nNa koj stepen da se stepenuvaat elementite : ";
cin>>st;
}while(st<0);
cout<<"\nVnesenata niza e :\n";
for(i=0; i<n; i++)
cout<<"n["<<i<<"] = "<<niza[i]<<" ";
for(i=0; i<n; i++)
niza[i]=stepen(niza[i], st);
cout<<"\nStepenuvanata niza e :\n";
for(i=0; i<n; i++)
cout<<"n["<<i<<"] = "<<niza[i]<<" ";
return 0;
}
_______________________________________________________
Test primer:

VLEZ:

Kolku elementi }e ima nizata? 4


Vnesete gi elementite od nizata :
n[0]=11
n[1]=-7
n[2]=5
n[3]=-10

Na koj stepen da se stepenuvaat elementite: -6


Na koj stepen da se stepenuvaat elementite: 3

Programata pe~ati:

Vnesenata niza e :
n[0] = 11 n[1] = -7 n[2] = 5 n[3] = -10
Novodobienata niza e :
n[0] = 1331 n[1] = -343 n[2] = 125 n[3] = -1000

WWW.MATEMATIKA.MK PISI
Programski jazik C++ FUNKCII I KLASI PISI
18. Da se napi{e programa vo programskiot jazik C++ so koja }e
se presmeta sumata x1+x2+...+xn. Da se iskoristi funkcija za
stepenuvawe na eden broj.

Re{enie:

Vlezni promenlivi Izlezni promenlivi


x osnovata

najgolemiot sumata koja se


st suma
stepen presmetuva
pomo{ni
i, pom
promenlivi
stepen
funkcija za nao|awe na n^k (n na stepen k)
(int n,int k)

#include<iostream>
using namespace std;
int stepen(int n,int k)
{
int pom=1, i;
for(i=1; i<=k; i++)
pom*=n;
return pom;
}
int main()
{
int x, i, st, pom;
long suma=0;
cout<<"Vnesete ja osnovata na stepenite : ";
cin>>x;
do
{
cout<<"Vnesete go najgolemiot stepen : ";
cin>>st;
}while(st<0);
cout<<"Baranata suma e : \n";
for(i=1; i<=st; i++)
{
pom=stepen(x,i);

WWW.MATEMATIKA.MK PISI
Programski jazik C++ FUNKCII I KLASI PISI
cout<<pom;
if(i==st)
cout<<" = ";
else
cout<<" + ";
suma+=pom;
}
cout<<suma<<endl;
return 0;
}
_______________________________________________________
Test primer:

VLEZ:

Vnesete ja osnovata na stepenite : 5


Vnesete go najgolemiot stepen : 4

Programata pe~ati:

Baranata suma e :
5 + 25 + 125 + 625 = 780

WWW.MATEMATIKA.MK PISI
Programski jazik C++ FUNKCII I KLASI PISI
19. Da se napi{e programa vo programskiot jazik C++ so koja }e
se presmeta vrednosta na funkcijata cos(x) spored formulata
x2 x4 x6
cos x  1     .... so koristewe na prvite n ~lenovi.
2! 4! 6!

Re{enie:

Vlezni promenlivi Izlezni promenlivi


agolot vo
alfa
radijani

pom agolot vo stepeni

broj na ~lenovi
n cosinus baraniot cosinus
vo presmetkata
vrednosta na
pi
konstantata pi
pomo{ni
i, clen
promenlivi
stepen(float
funkcija za nao|awe na n^k (n na stepen k)
n,int k)
funkcija za nao|awe na faktoriel na daden
faktoriel(int x)
broj

#include<iostream>
using namespace std;
float stepen(float n,int k)
{
float pom=1.0;
int i;
for(i=1; i<=k; i++)
pom*=n;
return pom;
}
long faktoriel(int x)
{
long izlez=1;
int i;

WWW.MATEMATIKA.MK PISI
Programski jazik C++ FUNKCII I KLASI PISI
for (i=1; i<=x; i++)
izlez*=i;
return izlez;
}
int main()
{
float cosinus=1, alfa, pi=3.1416, pom, clen;
int i, n;
do
{
cout<<"Vnesete ja vrednosta na agolot vo stepeni : ";
cin>>alfa;
}while (alfa>180);
pom=alfa;
if (alfa>=90)
alfa=180-alfa;
alfa=(alfa*pi)/180;
cout<<"Vnesete do koj clen da se presmetuva : ";
cin>>n;
for (i=2; i<=n; i+=2)
{
clen=stepen(alfa,i)/faktoriel(i);
if((i%4)!=0)
clen*=-1;
cosinus+=clen;
}
cout<<"\nRezultatot e : cos("<<pom<<") = ";
if(pom>=90)
cout<<(-1)*cosinus<<endl;
else
cout<<cosinus<<endl;
return 0;
}
_______________________________________________________
Test primer:
VLEZ:
Vnesete ja vrednosta na agolot vo stepeni : 45
Vnesete do koj ~len da se presmetuva : 10

Programata pe~ati:
Rezultatot e : cos(45) = 0.707106

WWW.MATEMATIKA.MK PISI
Programski jazik C++ FUNKCII I KLASI PISI
20. Da se napi{e programa vo programskiot jazik C++ so koja }e
se pronajdat site broevi vo daden interval ~ii cifri se
podredeni vo raste~ki redosled, po~nuvaj}i od cifrata so
najgolema kon cifrata so najmala vrednost.

Re{enie:

Vlezni promenlivi Izlezni promenlivi


po~etok i kraj
pocetok, kraj
na intervalot
pomo{na broja~ za broevite
dali sum ~ii{to cifri se vo
promenliva
raste~ki redosled
broja~ za
i
intervalot

funkcija za proveruvawe na redosledot na


redosled(int x)
cifrite na brojot x

#include<iostream>
using namespace std;
bool redosled(int x)
{
int min,cifra;
bool da=true;
min=x%10;
x/=10;
while((x!=0)&&(da==true))
{
cifra=x%10;
if(cifra >= min)
da=false;
else
{
min=cifra;
x/=10;
}
}
return da;
}
int main()

WWW.MATEMATIKA.MK PISI
Programski jazik C++ FUNKCII I KLASI PISI
{
int pocetok, kraj, i, sum=0;
bool dali;
cout<<"Vnesete go pocetokot na intervalot : ";
cin>>pocetok;
cout<<"Vnesete go krajot na intervalot : ";
cin>>kraj;
cout<<"\nBroevi kaj koi cifrite se vo rastecki redosled se :\n";
for(i=pocetok; i<=kraj; i++)
{
dali=redosled(i);
if(dali==true)
{
cout<<i<<" ";
sum++;
}
}
if(sum==0)
cout<<endl<<"Nema takvi broevi vo toj interval"<<endl;
else
cout<<endl<<"Vkupno takvi brevi ima "<<sum<<endl;
return 0;
}
_______________________________________________________
Test primer:

VLEZ:

Vnesete go po~etokot na intervalot : 150


Vnesete go krajot na intervalot : 170

Programata pe~ati:

Broevi kaj koi cifrite se vo raste~ki redosled se :


156 157 158 159 167 168 169
Vkupno takvi broevi ima 7

WWW.MATEMATIKA.MK PISI
Programski jazik C++ FUNKCII I KLASI PISI
21. Da se napi{e programa vo programskiot jazik C++ so koja }e
se pronajdat site broevi vo daden interval kaj koi zbirot i
proizvodot od cifrite e prost broj.

Re{enie:

Vlezni promenlivi Izlezni promenlivi


po~etok i
pocetok, kraj kraj na
intervalot broja~ za baranite
sum
broevi
broja~ za
i
intervalot

funkcija za proveruvawe dali brojot x e


prost(int x)
prost broj
funkcija za nao|awe na zbirot na cifrite
zbirCifri(int x)
na daden broj
proizvodCifri funkcija za nao|awe na proizvodot na
(int x) cifrite na daden broj

#include<iostream>
using namespace std;

bool prost(int x);


int zbirCifri(int x);
int proizvodCifri(int x);

int main()
{
int pocetok, kraj, i, sum=0;
cout<<"Vnesete go pocetokot na intervalot : ";
cin>>pocetok;
cout<<"Vnesete go krajot na intervalot : ";
cin>>kraj;
cout<<"\nBroevi so prost zbir i proizvod na cifri se :\n";
for(i=pocetok; i<=kraj; i++)
{
if(prost(zbirCifri(i)) && prost(proizvodCifri(i)))
{
cout<<i<<" ";

WWW.MATEMATIKA.MK PISI
Programski jazik C++ FUNKCII I KLASI PISI
sum++;
}
}
if(sum==0)
cout<<endl<<"Nema takvi broevi vo toj interval"<<endl;
else
cout<<endl<<"Vkupno takvi brevi ima "<<sum<<endl;
return 0;
}
bool prost(int x)
{
if(x==0 || x==1)
return false;
int i;
bool dali=true;
for(i=2;i<=x/2;i++)
{
if (x%i==0)
{
dali=false;
break;
}
}
return dali;
}
int zbirCifri(int x)
{
int zbir=0;
while (x>0)
{
zbir+=x%10;
x/=10;
}
return zbir;
}
int proizvodCifri(int x)
{
int proizvod=1;
while(x>0)
{
proizvod*=x%10;
x/=10;

WWW.MATEMATIKA.MK PISI
Programski jazik C++ FUNKCII I KLASI PISI
}
return proizvod;
}
_______________________________________________________
Test primer:

VLEZ:

Vnesete go po~etokot na intervalot : 100


Vnesete go krajot na intervalot : 200

Programata pe~ati:

Broevi so prost zbir i proizvod na cifri se :


113 115 131 151
Vkupno takvi broevi ima 4

WWW.MATEMATIKA.MK PISI
Programski jazik C++ FUNKCII I KLASI PISI
22. Da se napi{e programa vo programskiot jazik C++ so koja }e
se izbri{at site elementi od dadena niza koi se javuvaat
pove}e od edna{.

Re{enie:

Vlezni promenlivi Izlezni promenlivi


niza od celi
int a[20]
broevi
broj na elementi
n
na nizata
pomo{na
i
promenliva

promena funkcija za otstranuvawe na elementite koi se


(int *a, int n) povtoruvaat vo nizata

#include<iostream>
using namespace std;
int promena(int *a, int n);
int main()
{
int a[20],i,n;
cout<<"Kolku elementi da ima nizata? ";
cin>>n;
cout<<"Vnesete ja nizata : \n";
for(i=0; i<n; i++)
{
cout<<"a["<<i<<"]=";
cin>>a[i];
}
cout<<"\nVnesenata niza e: \n";
for(i=0; i<n; i++)
cout<<a[i]<<" ";
n=promena(a,n);
cout<<"\nNovata niza e: \n";
for(i=0; i<n; i++)
cout<<a[i]<<" ";
cout<<"\n";
return 0;

WWW.MATEMATIKA.MK PISI
Programski jazik C++ FUNKCII I KLASI PISI
}
int promena(int *a, int n)
{
int i=0, j, p;
while(i<n)
{
for(j=i+1; j<n; j++)
{
if(a[i]==a[j])
{
for(p=j; p<n; p++)
{
a[p]=a[p+1];
}
n--;
}
}
if(a[i]!=a[i+1])
i++;
}
return n;
}
_______________________________________________________
Test primer:

VLEZ:

Kolku elementi da ima nizata ? 7


Vnesete ja nizata :
a[0]=1
a[1]=2
a[2]=3
a[3]=4
a[5]=3
a[6]=4
a[7]=5

Programata pe~ati:
Vnesenata niza e :
1 2 3 4 3 4 5
Novata niza e:
1 2 3 4 5

WWW.MATEMATIKA.MK PISI
Programski jazik C++ FUNKCII I KLASI PISI
23. Da se napi{e programa vo programskiot jazik C++ so koja }e
se izbrojat pojavuvawata na maksimalniot i minimalniot
element od dadena niza.

Re{enie:

Vlezni promenlivi Izlezni promenlivi


niza od celi minimalniot i
int a[20]
broevi min, max maksimalniot
broj na element od nizata
n elementi na
broj na pojavuvawa
nizata
brojMin, na minimalniot i
pomo{na brojMax maksimalniot
i
promenliva element od nizata
brMin(int *a,
funkcija za nao|awe i broewe na minimalniot
int n, int
element od nizata
*minimalen)
brMax(int *a,
funkcija za nao|awe i broewe na maksimalniot
int n, int
element od nizata
*maximalen)

#include<iostream>
using namespace std;

int brMin(int *a, int n, int *minimalen);


int brMax(int *a, int n, int *maximalen);

int main()
{
int a[20],i,n, min, max, brojMin, brojMax;
cout<<"Kolku elementi da ima nizata?";
cin>>n;
cout<<"Vnesete ja nizata : \n";
for(i=0; i<n; i++)
{
cout<<"a["<<i<<"]=";
cin>>a[i];
}
brojMin=brMin(a,n,&min);
brojMax=brMax(a,n,&max);

WWW.MATEMATIKA.MK PISI
Programski jazik C++ FUNKCII I KLASI PISI
cout<<"\nNajgolemiot broj vo nizata e "<<max<<" i se javuva
"<<brojMax<<" pati\n";
cout<<"Najmaliot broj vo nizata e "<<min<<" i se javuva
"<<brojMin<<" pati\n";
return 0;
}
int brMin(int *a, int n, int *minimalen)
{
int min=a[0], i, broj=0;
for(i=1; i<n; i++)
if(a[i]<min)
min=a[i];
*minimalen=min;
for(i=0; i<n; i++)
if(a[i]==min)
broj++;
return broj;
}
int brMax(int *a, int n, int *maximalen)
{
int max=a[0], i, broj=0;
for(i=1; i<n; i++)
if(a[i]>max)
max=a[i];
*maximalen=max;
for(i=0; i<n; i++)
if(a[i]==max)
broj++;
return broj;
}

WWW.MATEMATIKA.MK PISI
Programski jazik C++ FUNKCII I KLASI PISI
_______________________________________________________
Test primer:

VLEZ:

Kolku elementi da ima nizata ? 7


Vnesete ja nizata :
a[0]=15
a[1]=4
a[2]=-9
a[3]=55
a[4]=-9
a[5]=52
a[6]=55

Programata pe~ati:

Vnesenata niza e :
15 4 -9 55 -9 52 55

Najgolemiot broj vo nizata e 55 i se javuva 2 pati


Najmaliot broj vo nizata e -9 i se javuva 2 pati

WWW.MATEMATIKA.MK PISI
Programski jazik C++ FUNKCII I KLASI PISI
24. Da se napi{e programa vo programskiot jazik C++ so koja }e
se pronajde na koi pozicii i kolku pati se pojavil daden
element vo dadena niza.

Re{enie:

Vlezni promenlivi Izlezni promenlivi


niza od celi
int a[20] niza za ~uvawe na
broevi
poziciite na koi se
broj na int b[20]
javuva baraniot
n elementi na element
nizata
pomo{na
i
promenliva pojavuvawa na
n2
baraniot baraniot element
x
element

najdi(int *a, int funkcija za nao|awe na poziciite na koi se


n, int x, int *b) javuva daden element od niza

#include<iostream>
using namespace std;

int najdi(int *a, int n, int x, int *b);

int main()
{
int a[20], b[20], i, n, n2, x;
cout<<"Kolku elementi da ima nizata? ";
cin>>n;
cout<<"Vnesete ja nizata : \n";
for(i=0; i<n; i++)
{
cout<<"a["<<i<<"]=";
cin>>a[i];
}
cout<<"Koj element da se bara vo nizata? ";
cin>>x;
n2=najdi(a,n,x,b);
cout<<"\nVnesenata niza e: \n";

WWW.MATEMATIKA.MK PISI
Programski jazik C++ FUNKCII I KLASI PISI
for(i=0; i<n; i++)
cout<<a[i]<<" ";
if(n2==0)
cout<<"\nBrojot "<<x<<" ne se javuva vo nizata\n";
else
{
cout<<"\nBrojot "<<x<<" se javuva vo nizata "<<n2<<" pati
na slednite pozicii :\n";
if(n2==1)
cout<<"Se javuva samo na "<<b[0]<<" popicija\n";
else
{
for(i=0; i<n2-1; i++)
cout<<b[i]<<", ";
cout<<"i "<<b[i]<<" pozicija\n";
}
}
return 0;
}
int najdi(int *a, int n, int x, int *b)
{
int i, j=0;
for(i=0; i<n; i++)
if(a[i]==x)
{
b[j]=i;
j++;
}
return j;
}

WWW.MATEMATIKA.MK PISI
Programski jazik C++ FUNKCII I KLASI PISI
_______________________________________________________
Test primer:

VLEZ:

Kolku elementi da ima nizata ? 7


Vnesete ja nizata :
a[0]=12
a[1]=-12
a[2]=9
a[3]=12
a[4]=28
a[5]=-43
a[6]=12
Koj element da se bara vo nizata ? 12

Programata pe~ati:

Vnesenata niza e :
12 -12 9 12 28 -43 12
Brojot 12 se javuva vo nizata 3 pati na slednite pozicii :
0, 3, i 6 pozicija

WWW.MATEMATIKA.MK PISI
Programski jazik C++ FUNKCII I KLASI PISI
25. Da se napi{e programa vo programskiot jazik C++ so koja }e
se najde unijata na dve nizi.

Re{enie:

Vlezni promenlivi Izlezni promenlivi


int a[20], nizi od celi
b[20] broevi
unijata na dvete
broj na int c[20]
nizi
na, nb elementi na
nizite
pomo{ni broj na elementi na
i, j nc
promenlivi unijata

duplikati funkcija za otstranuvawe na elementite koi se


(int *a, int n) povtoruvaat vo nizata

#include<iostream>
using namespace std;

int duplikati(int *a, int n);

int main()
{
int a[20], b[20], c[40], na, nb, nc, i, j;
cout<<"Kolku elementi da ima prvata niza ? ";
cin>>na;
cout<<"Vnesete ja nizata : \n";
for(i=0; i<na; i++)
{
cout<<"a["<<i<<"]=";
cin>>a[i];
}
cout<<"Kolku elementi da ima vtorata niza ? ";
cin>>nb;
cout<<"Vnesete ja nizata : \n";
for(i=0; i<nb; i++)
{
cout<<"b["<<i<<"]=";
cin>>b[i];
}

WWW.MATEMATIKA.MK PISI
Programski jazik C++ FUNKCII I KLASI PISI
for(i=0; i<na; i++)
c[i]=a[i];
for(j=0; j<nb; j++)
{
c[i]=b[j];
i++;
}
nc=duplikati(c,i);
cout<<"\nVnesenite nizi se: \n";
cout<<"Prvata niza e : \n";
for(i=0; i<na; i++)
cout<<a[i]<<" ";
cout<<"\nVtorata niza e: \n";
for(i=0; i<nb; i++)
cout<<b[i]<<" ";
cout<<"\nUnijata na dvete nizi e :\n";
for(i=0; i<nc; i++)
cout<<c[i]<<" ";
cout<<"\n";
return 0;
}
int duplikati(int *a, int n)
{
int i=0, j, p;
while(i<n)
{
for(j=i+1; j<n; j++)
if(a[i]==a[j])
{
for(p=j; p<n; p++)
{
a[p]=a[p+1];
}
n--;
}
if(a[i]!=a[i+1])
i++;
}
return n;
}

WWW.MATEMATIKA.MK PISI
Programski jazik C++ FUNKCII I KLASI PISI
_______________________________________________________
Test primer:

VLEZ:

Kolku elementi da ima prvata niza? 6


Vnesete ja nizata :
a[0]=17
a[1]=38
a[2]=-9
a[3]=64
a[4]=17
a[5]=2
Kolku elementi da ima vtorata niza? 4
Vnesete ja nizata :
a[0]=44
a[1]=38
a[2]=-9
a[3]=101

Programata pe~ati:

Vnesenite nizi se :
Prvata niza e :
17 38 -9 64 17 2
Vtorata niza e :
44 38 -9 101
Unijata na dvete nizi e :
17 38 -9 64 2 44 101

WWW.MATEMATIKA.MK PISI
Programski jazik C++ FUNKCII I KLASI PISI
26. Da se napi{e programa vo programskiot jazik C++ so koja }e
se pronajde najgolemata raste~ka podniza na dadena niza.

Re{enie:

Vlezni promenlivi Izlezni promenlivi


niza od celi po~etnata pozicija
int a[20] poz
broevi na najgolemata
broj na raste~ka podniza
n elementi na
nizata dol`ina na
pomo{na dolz najgolemata
i raste~ka podniza
promenliva
podniza(int
*a, int n, int funkcija za nao|awe na po~etnata pozicija i
*pozicija, int dol`ina na najgolemata raste~ka podniza od niza
*dolzina)

#include<iostream>
using namespace std;

void podniza(int *a, int n, int *pozicija, int *dolzina);

int main()
{
int a[20], n, poz, dolz, i;
cout<<"Kolku elementi da ima nizata? ";
cin>>n;
cout<<"Vnesete ja nizata : \n";
for(i=0; i<n; i++)
{
cout<<"a["<<i<<"]=";
cin>>a[i];
}
podniza(a,n,&poz,&dolz);
cout<<"\nVnesenata niza e: \n";
for(i=0; i<n; i++)
cout<<a[i]<<" ";
cout<<"\nNajgolemata rastecka podniza ima dolzina "<<dolz<<" i
taa e: \n";

WWW.MATEMATIKA.MK PISI
Programski jazik C++ FUNKCII I KLASI PISI
for(i=poz; i<=poz+dolz-1; i++)
cout<<a[i]<<" ";
cout<<"\n";
return 0;
}

void podniza(int *a, int n, int *pozicija, int *dolzina)


{
int dolz=0, poz, pom, i, j;
for(i=0;i<n;i++)
{
pom=1;
j=i;
while(a[j]<a[j+1])
{
pom++;
j++;
}
if(pom>dolz)
{
poz=i;
dolz=pom;
}
}
*pozicija=poz;
*dolzina=dolz;
}

WWW.MATEMATIKA.MK PISI
Programski jazik C++ FUNKCII I KLASI PISI
_______________________________________________________
Test primer:

VLEZ:

Kolku elementi da ima nizata? 10


Vnesete ja nizata :
a[0]=8
a[1]=18
a[2]=26
a[3]=4
a[4]=16
a[5]=35
a[6]=39
a[7]=-3
a[8]=-1
a[9]=14

Programata pe~ati:

Vnesenata niza e :
8 18 26 4 16 35 39 -3 -1 14
Najgolemata raste~ka podniza ima dol`ina 4 i taa e :
4 16 35 39

WWW.MATEMATIKA.MK PISI
Programski jazik C++ FUNKCII I KLASI PISI
27. Da se napi{e programa vo programskiot jazik C++ so koja }e
se ispe~atat najmalite k elementi od nizata.

Re{enie:

Vlezni promenlivi Izlezni promenlivi


niza od celi
int a[20] niza za ~uvawe na
broevi
vnesenata niza vo
broj na int b[20]
raste~ki redosled
n elementi od na elementite
nizata
pomo{na
i
promenliva broj na elementi na
baran broj na nb nizata b bez
k najmali duplikati
elementi
duplikati funkcija za otstranuvawe na elementite koi se
(int *a, int n) povtoruvaat vo niza
sortiranje
funkcija za sortirawe na niza
(int *a, int n)
#include<iostream>
using namespace std;

int duplikati(int *a, int n);


void sortiranje(int *a, int n);

int main()
{
int a[20], b[20], n, nb, i, k;
cout<<"Kolku elementi da ima nizata? ";
cin>>n;
cout<<"Vnesete ja nizata : \n";
for(i=0; i<n; i++)
{
cout<<"a["<<i<<"]=";
cin>>a[i];
}
cout<<"Kolku najmali elementi da se najdat? ";
cin>>k;

WWW.MATEMATIKA.MK PISI
Programski jazik C++ FUNKCII I KLASI PISI
for(i=0; i<n; i++)
b[i]=a[i];
nb=duplikati(b,n);
sortiranje(b,nb);
if(nb<=k)
{
cout<<"\nOpfatena e celata niza \n";
for(i=0; i<nb; i++)
cout<<b[i]<<" ";
}
else
{
cout<<"\nVnesenata niza e: \n";
for(i=0; i<n; i++)
cout<<a[i]<<" ";
cout<<"\n"<<k<<"-te najmali elementi se : \n";
for(i=0; i<k; i++)
cout<<b[i]<<" ";
}
cout<<"\n";
return 0;
}
int duplikati(int *a, int n)
{
int i=0, j, p;
while(i<n)
{
for(j=i+1; j<n; j++)
if(a[i]==a[j])
{
for(p=j; p<n; p++)
{
a[p]=a[p+1];
}
n--;
}
if(a[i]!=a[i+1])
i++;
}
return n;
}
void sortiranje(int *a, int n)

WWW.MATEMATIKA.MK PISI
Programski jazik C++ FUNKCII I KLASI PISI
{
int pom, i, j;
for(i=0; i<n; i++)
for(j=0; j<n-i-1; j++)
if(a[j]>a[j+1])
{
pom=a[j];
a[j]=a[j+1];
a[j+1]=pom;
}
}
_______________________________________________________
Test primer:

VLEZ:

Kolku elementi da ima nizata? 10


Vnesete ja nizata :
a[0]=-3
a[1]=5
a[2]=9
a[3]=11
a[4]=7
a[5]=18
a[6]=5
a[7]=-3
a[8]=9
a[9]=19
Kolku najmali elementi da se najdat? 3

Programata pe~ati:

Vnesenata niza e :
-3 5 9 11 7 18 5 -3 9 19
3-te najmali elementi se :
-3 5 7

WWW.MATEMATIKA.MK PISI
Programski jazik C++ FUNKCII I KLASI PISI
28. Na ispit u~estvuvale n<20 kandidati. Minimalniot broj na
poeni za upis e min. Da se napi{e programa vo programskiot
jazik C++ so koja }e se opredeli brojot na kandidatite koi
steknale pravo na upis i }e go presmeta nivniot sreden uspeh
poka`an na ispitot.

Re{enie:

Vlezni promenlivi Izlezni promenlivi


niza od celi
int a[20] broevi za polozile broj na polo`eni
poenite u~enici
broj na
n
u~enici
minimalen prosekot na bodovi
min broj poeni za prosek od polo`enite
polo`uvawe u~enici
pomo{na
i
promenliva
polozeni
(int *a, int n, funkcija za nao|awe na brojot na u~enici koi go
int min, float polo`ile ispitot i nivniot sreden uspeh
*prosek)

#include<iostream>
using namespace std;
int polozeni(int *a, int n, int min, float *prosek);

int main()
{
int a[20], n, i, polozile, min;
float prosek;
cout<<"Kolku kandidati ucestvuvale na polaganjeto? ";
cin>>n;
cout<<"Vnesete gi poenite za sekoj kandidat :\n";
for(i=0;i<n;i++)
{
cout<<i+1<<"-kandidat : ";
cin>>a[i];
}
cout<<"Kolku e minimumot na poeni za polozuvanje : ";

WWW.MATEMATIKA.MK PISI
Programski jazik C++ FUNKCII I KLASI PISI
cin>>min;
polozile=polozeni(a,n,min,&prosek);
cout<<"\nIspitot go polozile "<<polozile<<" ucenici \n";
cout<<"Prosekot na bodovi e "<<prosek<<endl;
return 0;
}
int polozeni(int *a, int n, int min, float *prosek)
{
int broj=0, i;
float suma=0.0;
for(i=0; i<n; i++)
{
if(a[i]>=min)
{
broj++;
suma+=a[i];
}
}
*prosek=suma/broj;
return broj;
}
_______________________________________________________
Test primer:

VLEZ:

Kolku kandidati u~estvuvale vo polagaweto? 10


Vnesete gi poenite za sekoj kandidat :
1-kandidat : 55
2-kandidat : 45
3-kandidat : 65
4-kandidat : 90
5-kandidat : 100
6-kandidat : 35
7-kandidat : 85
8-kandidat : 45
9-kandidat : 60
10-kandidat : 85
Kolku e minimumot na poeni za polo`uvawe : 55

Programata pe~ati:
Ispitot go polo`ile 7 u~enici
Prosekot na bodovi e 77.1429

WWW.MATEMATIKA.MK PISI
Programski jazik C++ FUNKCII I KLASI PISI
29. Da se napi{e programa vo programskiot jazik C++ so koja }e
se pronajdat prvata i poslednata pozicija na koja se pojavil
zadaden element vo edna niza.

Re{enie:

Vlezni promenlivi Izlezni promenlivi


niza od
int a[20]
celi broevi
broj na
n elementi od prvata i poslednata
nizata prvo, pozicija na koja se
posledno pojavil baraniot
elementot element
element
koj se bara
pomo{na
i
promenliva
pojavuvanje
(int *a, int n, funkcija za nao|awe na prvata i poslednata
int element, int pozicija na koja se pojavil zadaden element vo
*prvo, int niza
*posledno)

#include<iostream>
using namespace std;

void pojavuvanje(int *a, int n, int element, int *prvo, int *posledno);

int main()
{
int a[20], n, i, prvo, posledno, element;
cout<<"Kolku elementi da ima nizata? ";
cin>>n;
cout<<"Vnesete ja nizata : \n";
for(i=0; i<n; i++)
{
cout<<"a["<<i<<"]=";
cin>>a[i];
}
cout<<"Koj element se bara : ";
cin>>element;
prvo=-1;

WWW.MATEMATIKA.MK PISI
Programski jazik C++ FUNKCII I KLASI PISI
posledno=-1;
pojavuvanje(a,n,element,&prvo,&posledno);
cout<<"\nVnesenata niza e: \n";
for(i=0; i<n; i++)
cout<<a[i]<<" ";
if(prvo==-1)
cout<<"\nElementot ne se pojavuva voopsto vo nizata";
else
{
cout<<"\nPrvo pojavuvanje na "<<prvo<<" -ta pozicija\n";
cout<<"Posledno pojavuvanje na "<<posledno<<" -ta
pozicija";
}
return 0;
}

void pojavuvanje(int *a, int n, int element, int *prvo, int *posledno)
{
int i, prv=-1, posleden=-1;
for(i=0; i<n; i++)
{
if(a[i]==element)
{
posleden=i;
if(prv==-1)
prv=i;
}
}
*prvo=prv;
*posledno=posleden;
}

WWW.MATEMATIKA.MK PISI
Programski jazik C++ FUNKCII I KLASI PISI
_______________________________________________________
Test primer:

VLEZ:

Kolku elementi da ima nizata ? 10


Vnesete ja nizata :
a[0]=-3
a[1]=5
a[2]=9
a[3]=5
a[4]=7
a[5]=24
a[6]=5
a[7]=13
a[8]=-6
a[9]=9
Koj element se bara : 5

Programata pe~ati:

Vnesenata niza e :
-3 5 9 5 7 24 5 13 -6 9
Prvo pojavuvawe na 1-ta pozicija
Posledno pojavuvawe na 6-ta pozicija

WWW.MATEMATIKA.MK PISI
Programski jazik C++ FUNKCII I KLASI PISI
30. Da se napi{e programa vo programskiot jazik C++ so koja }e
se pronajde najgolemata razlika na dva sosedni elementi od
niza.

Re{enie:

Vlezni promenlivi Izlezni promenlivi


niza od celi poz1, pozicijata na
int a[20]
broevi poz2 elementite so
broj na najgolema razlika
n elementi od
nizata najgolemata
pomo{na raz
i razlika
promenliva
razlika
funkcija za nao|awe na najgolemata razlika
(int *a, int n,
pome|u dva sosedni elementi
int*p1, int*p2)

#include<iostream>
using namespace std;

int razlika(int *a, int n, int*p1, int*p2);

int main()
{
int a[20], n, i, raz, poz1, poz2;
cout<<"Kolku elementi da ima nizata? ";
cin>>n;
cout<<"Vnesete ja nizata : \n";
for(i=0; i<n; i++)
{
cout<<"a["<<i<<"]=";
cin>>a[i];
}
raz=razlika(a,n,&poz1,&poz2);
cout<<"\nVnesenata niza e: \n";
for(i=0; i<n; i++)
cout<<a[i]<<" ";
cout<<"\nNajgolemata ralika iznesuva "<<raz<<endl;
cout<<"Toa e razlikata pomegu "<<poz1+1<<"-ot i "<<poz2+1<<"-
ot element.\n";

WWW.MATEMATIKA.MK PISI
Programski jazik C++ FUNKCII I KLASI PISI
return 0;
}

int razlika(int *a, int n, int *poz1, int*poz2)


{
int i, pom, raz, p1, p2;
raz=a[1]-a[0];
if(raz<0)
raz*=-1;
p1=0;
p2=1;
for(i=2;i<n;i++)
{
pom=a[i]-a[i-1];
if(pom<0)
pom*=-1;
if(pom>raz)
{
raz=pom;
p1=i-1;
p2=i;
}
}
*poz1=p1;
*poz2=p2;
return raz;
}
_______________________________________________________
Test primer:

VLEZ:

Kolku elementi da ima nizata? 6


Vnesete ja nizata :
a[0]=3
a[1]=8
a[2]=17
a[3]=-2
a[4]=9
a[5]=4

WWW.MATEMATIKA.MK PISI
Programski jazik C++ FUNKCII I KLASI PISI
Programata pe~ati:

Vnesenata niza e :
3 8 17 -2 9 4
Najgolemata razlika iznesuva 19
Toa e razlikata pome|u 3-ot i 4-ot element

WWW.MATEMATIKA.MK PISI
Programski jazik C++ FUNKCII I KLASI PISI
31. Da se napi{e programa vo programskiot jazik C++ so koja }e
se podredi odreden del od niza vo raste~ki redosled.

Re{enie:

Vlezni promenlivi Izlezni promenlivi


int a[20] niza od celi broevi

broj na elementi od
n
nizata
pomo{na
i
promenliva
po~etok i kraj na
pocetok, kraj delot koj se
podreduva
podreduvanje
(int *a, int n, funkcija za podreduvawe na del od niza vo
int pocetok, int raste~ki redosled
kraj)

#include<iostream>
using namespace std;

int podreduvanje(int *a, int n, int pocetok, int kraj);

int main()
{
int a[20], n, i, pocetok, kraj;
cout<<"Kolku elementi da ima nizata? ";
cin>>n;
cout<<"Vnesete ja nizata : \n";
for(i=0; i<n; i++)
{
cout<<"a["<<i<<"]=";
cin>>a[i];
}
cout<<"Od koja pozicija da pocne podreduvanjeto : ";
cin>>pocetok;
cout<<"Do koja pozicija da bide podreduvanjeto : ";
cin>>kraj;

WWW.MATEMATIKA.MK PISI
Programski jazik C++ FUNKCII I KLASI PISI
cout<<"\nVnesenata niza e: \n";
for(i=0; i<n; i++)
cout<<a[i]<<" ";
podreduvanje(a,n,pocetok,kraj);
cout<<"\nDelumno podredenata niza e: \n";
for(i=0; i<n; i++)
cout<<a[i]<<" ";
cout<<"\n";
return 0;
}

int podreduvanje(int *a, int n, int pocetok, int kraj)


{
int i, j, pom;
for(i=pocetok; i<kraj; i++)
for(j=i+1; j<=kraj; j++)
if(a[j]<a[i])
{
pom=a[j];
a[j]=a[i];
a[i]=pom;
}
}
_______________________________________________________
Test primer:

VLEZ:

Kolku elementi da ima nizata? 8


Vnesete ja nizata :
a[0]=4
a[1]=3
a[2]=9
a[3]=-2
a[4]=7
a[5]=-11
a[6]=5
a[7]=6
Od koja pozicija da po~ne podreduvaweto : 2
Do koja pozicija da bide podreduvaweto : 5

WWW.MATEMATIKA.MK PISI
Programski jazik C++ FUNKCII I KLASI PISI
Programata pe~ati:

Vnesenata niza e :
4 3 9 -2 7 -11 5 6
Delumno podredenata niza e :
4 3 -11 -2 7 9 5 6

WWW.MATEMATIKA.MK PISI
Programski jazik C++ FUNKCII I KLASI PISI
32. Da se napi{e programa vo programskiot jazik C++ so koja }e
se presmeta aritmeti~kata sredina na elementite od dadena
niza, a potoa }e se isfrlat elementite pomali od taa
vrednost.

Re{enie:

Vlezni promenlivi Izlezni promenlivi


niza od celi
int a[20]
broevi

broj na elementi aritmeti~kata


n sredina
od nizata sredina na nizata

pomo{na
i
promenliva
aritmeticka funkcija za nao|awe na aritmeti~kata sredina
(int *a, int n) na edna dadena niza
promena
funkcija za otstranuvawe na elementite od
(int *a, int n,
nizata pomali od aritmeti~kata sredina
float sredina)

#include<iostream>
using namespace std;

float aritmeticka(int *a, int n);


int promena(int *a, int n, float sredina);

int main()
{
int a[20], n, i;
float sredina;
cout<<"Kolku elementi da ima nizata? ";
cin>>n;
cout<<"Vnesete ja nizata : \n";
for(i=0; i<n; i++)
{
cout<<"a["<<i<<"]=";
cin>>a[i];
}
cout<<"\nVnesenata niza e: \n";
for(i=0; i<n; i++)

WWW.MATEMATIKA.MK PISI
Programski jazik C++ FUNKCII I KLASI PISI
cout<<a[i]<<" ";
sredina=aritmeticka(a,n);
cout<<"\nAritmetickata sredina na nizata iznesuva
"<<sredina<<endl;
n=promena(a,n,sredina);
cout<<"Novodobienata niza e: \n";
for(i=0; i<n; i++)
cout<<a[i]<<" ";
cout<<"\n";
return 0;
}

float aritmeticka(int *a, int n)


{
float sum=0.0;
int i;
for(i=0; i<n; i++)
sum+=a[i];
sum/=n;
return sum;
}

int promena(int *a, int n, float sredina)


{
int i, j=0;
for(i=0; i<n; i++)
{
if(a[i]>=sredina)
{
a[j]=a[i];
j++;
}
}
return j;
}

WWW.MATEMATIKA.MK PISI
Programski jazik C++ FUNKCII I KLASI PISI
_______________________________________________________
Test primer:

VLEZ:

Kolku elementi da ima nizata? 8


Vnesete ja nizata :
a[0]=10
a[1]=28
a[2]=15
a[3]=24
a[4]=39
a[5]=30
a[6]=17
a[7]=29
Programata pe~ati:

Vnesenata niza e :
10 28 15 24 39 30 17 29
Aritmeti~kata sredina na nizata iznesuva 24
Novodobienata niza e :
28 24 39 30 29

WWW.MATEMATIKA.MK PISI
Programski jazik C++ FUNKCII I KLASI PISI
33. Da se napi{e programa vo programskiot jazik C++ so koja }e
se soberat i pomno`at dve nizi. Elementite na novodobienite
nizi se dobivaat kako zbir, odnosno proizvod od soodvetnite
elementi vo dadenite nizi, t.e. c[i]=a[i]+b[i] i d[i]=a[i]*b[i].

Re{enie:

Vlezni promenlivi Izlezni promenlivi


nizi od celi
int a[20], b[20]
broevi
broj na novodobienite
n elementi od int c[20], d[20] nizi zbir i
nizite proizvod
pomo{na
i
promenliva
pojavuvanje
(int *a, int n, funkcija za nao|awe na prvata i poslednata
int element, int pozicija na koja se pojavil zadaden element vo
*prvo, int niza
*posledno)

#include<iostream>
using namespace std;

void zbirIproizvod(int *a, int *b, int n, int*c, int *d);

int main()
{
int a[20], b[20], c[20], d[20], n, i, j;
cout<<"Kolku elementi da imaat nizite? ";
cin>>n;
cout<<"Vnesete ja prvata niza : \n";
for(i=0; i<n; i++)
{
cout<<"a["<<i<<"]=";
cin>>a[i];
}
cout<<"Vnesete ja vtorata niza : \n";
for(i=0; i<n; i++)
{
cout<<"b["<<i<<"]=";

WWW.MATEMATIKA.MK PISI
Programski jazik C++ FUNKCII I KLASI PISI
cin>>b[i];
}
zbirIproizvod(a,b,n,c,d);
cout<<"\nVnesenite nizi se: \n";
cout<<"Prvata niza e : \n";
for(i=0; i<n; i++)
cout<<a[i]<<" ";
cout<<"\nVtorata niza e: \n";
for(i=0; i<n; i++)
cout<<b[i]<<" ";
cout<<"\nZbirot na dvete nizi e :\n";
for(i=0; i<n; i++)
cout<<c[i]<<" ";
cout<<"\nProizvodot na dvete nizi e :\n";
for(i=0; i<n; i++)
cout<<d[i]<<" ";
cout<<"\n";
return 0;
}

void zbirIproizvod(int *a, int *b, int n, int*c, int *d)


{
int i;
for(i=0; i<n; i++)
{
c[i]=a[i]+b[i];
d[i]=a[i]*b[i];
}
}

WWW.MATEMATIKA.MK PISI
Programski jazik C++ FUNKCII I KLASI PISI
_______________________________________________________
Test primer:

VLEZ:

Kolku elementi da imaat nizite? 5


Vnesete ja prvata niza :
a[0]=1
a[1]=2
a[2]=3
a[3]=4
a[4]=5
Vnesete ja vtorata niza :
a[0]=6
a[1]=7
a[2]=8
a[3]=9
a[4]=10

Programata pe~ati:

Vnesenite nizi se :
Prvata niza e :
1 2 3 4 5
Vtorata niza e :
6 7 8 9 10
Zbirot na dvete nizi e :
7 9 11 13 15
Proizvodot na dvete nizi e
6 14 24 36 50

WWW.MATEMATIKA.MK PISI
Programski jazik C++ FUNKCII I KLASI PISI
2. Klasi
1. Da se razvie klasa za to~ka vo koordinaten sistem koja
sodr`i metod za pe~atewe na to~kata i metod za
opredeluvawe na rastojanieto od to~kata do koordinatniot
po~etok.

Re{enie:

Klasa Tocka

int x, y koordinati na to~kata

funkcija za pe~atewe na koordinatite na


void pecati()
to~kata
funkcija za presmetuvawe na rastojanie
float rastojanie()
od to~kata do koordinatniot po~etok

Vlezni promenlivi Izlezni promenlivi


promenlivi za
x, y koordinatite
na to~kata rastojanie na to~kata
ras do koordinaten
to~ka vo po~etok
t koordinatniot
sistem

#include<iostream>
#include<math.h>
using namespace std;

class Tocka
{
private:
int x;
int y;
public:
Tocka()
{

WWW.MATEMATIKA.MK PISI
Programski jazik C++ FUNKCII I KLASI PISI
x=0;
y=0;
}
Tocka(int a, int b)
{
x=a;
y=b;
}
~Tocka()
{}
void pecati()
{
cout<<"\nTockata e ("<<x<<", "<<y<<")\n";
}
float rastojanie()
{
return sqrt(x*x+y*y);
}
};

int main()
{
int x,y;
cout<<"Vnesete vrednost za x : ";
cin>>x;
cout<<"Vnesete vrednost za y : ";
cin>>y;
Tocka t(x,y);
float ras=t.rastojanie();
t.pecati();
cout<<"Rastojanieto do koordinaten pocetok e "<<ras<<endl;
return 0;
}
_______________________________________________________
Test primer:
VLEZ:
Vnesete vrednost za x : 3
Vnesete vrednost za y : 4
Programata pe~ati:

To~kata e (3, 4)
Rastojanieto do koordinaten po~etok e 5

WWW.MATEMATIKA.MK PISI
Programski jazik C++ FUNKCII I KLASI PISI
2. Da se razvie klasa za datum koja sodr`i metod za pe~atewe
na datumot i metod za razlika na dva datumi.

Re{enie:

Klasa Datum

int den, mesec, godina promenlivi za denot, mesecot i godinata

void pecati() funkcija za pe~atewe na datum

void pecatiRazlika() funkcija za opisno pe~atewe na datum

Datum razlika(Datum funkcija za presmetuvawe na razlikata


dat) pome|u dva datumi

Vlezni promenlivi Izlezni promenlivi


promenlivi za
denot,
d,m,g
mesecot i
godinata razlikata pome|u
d3
datumite d1 i d2
d1, d2 vlezni datumi

#include<iostream>
#include<math.h>
using namespace std;
class Datum
{
private:
int den;
int mesec;
int godina;
public:
Datum()
{
den=mesec=godina=0;
}
Datum(int d, int m, int g)

WWW.MATEMATIKA.MK PISI
Programski jazik C++ FUNKCII I KLASI PISI
{
den=d;
mesec=m;
godina=g;
}
~Datum()
{}
int getDen()
{
return den;
}
int getMesec()
{
return mesec;
}
int getGodina()
{
return godina;
}
void pecati()
{
cout<<den<<"."<<mesec<<"."<<godina<<".\n";
}
void pecatiRazlika()
{
cout<<den<<" denovi, "<<mesec<<" meseci i
"<<godina<<" godini.\n";
}
Datum razlika(Datum dat)
{
int d2=dat.getDen();
int m2=dat.getMesec();
int g2=dat.getGodina();
if(d2<den)
{
d2+=30;
m2--;
}
if(m2<mesec)
{
m2+=12;
g2--;

WWW.MATEMATIKA.MK PISI
Programski jazik C++ FUNKCII I KLASI PISI
}
d2=d2-den;
m2=m2-mesec;
g2=g2-godina;
Datum pom(d2,m2,g2);
return pom;
}

};
int main()
{
int d,m,g;
cout<<"Vnesete vrednosti za prviot datum : ";
cin>>d>>m>>g;
Datum d1(d,m,g);
cout<<"Vnesete vrednosti za vtoriot datum : ";
cin>>d>>m>>g;
Datum d2(d,m,g);
cout<<"Prviot datum e ";
d1.pecati();
cout<<"Vtoriot datum e ";
d2.pecati();
Datum d3=d1.razlika(d2);
cout<<"Razlikata megu vtoriot i prviot datum e ";
d3.pecatiRazlika();
return 0;
}
_______________________________________________________
Test primer:

VLEZ:

Vnesete vrednosti za prviot datum: 15 10 1990


Vnesete vrednosti za vtoriot datum: 11 8 2007

Programata pe~ati:

To~kata e (3, 4)
Prviot datum e 15.10.1990.
Vtoriot datum e 11.8.2007.
Razlikata me|u vtoriot i prviot datum e 26 denovi, 9 meseci i
16 godini.

WWW.MATEMATIKA.MK PISI
Programski jazik C++ FUNKCII I KLASI PISI
3. Da se razvie klasa za triagolnik so metodi za presmetuvawe
na perimetarot i plo{tinata na triagolnikot.

Re{enie:

Klasa Triagolnik

int a, b, c promenlivi za stranite na triagolnikot

plostina, perimetar plo{tina i perimetar na triagolnikot

funkcija za pe~atewe na
void pecati()
karakteristikite na triagolnikot

void Perimetar() funkcija za presmetuvawe na perimetarot

void Plostina() funkcija za presmetuvawe na plo{tinata

Vlezni promenlivi Izlezni promenlivi


promenlivi za
x, y, z stranite na
triagolnikot

tri triagolnik

#include<iostream>
#include<math.h>
using namespace std;

class Triagolnik
{
private:
int a, b, c;
float perimetar, plostina;
public:
Triagolnik()

WWW.MATEMATIKA.MK PISI
Programski jazik C++ FUNKCII I KLASI PISI
{
a=b=c=0;
plostina=perimetar=0.0;
}
Triagolnik(int s1, int s2, int s3)
{
a=s1;
b=s2;
c=s3;
plostina=perimetar=0.0;
}
~Triagolnik()
{}
void pecati()
{
cout<<"\nTriagolnikot e so strani "<<a<<",
"<<b<<" i "<<c<<".\n";
cout<<"Plostinata iznesuva "<<plostina<<endl;
cout<<"Perimetarot iznesuva "<<perimetar<<endl;
}
void Perimetar()
{
perimetar=a+b+c;
}
void Plostina()
{
float alfa=acos((b*b+c*c-a*a)/(b*c*2.0));
float hc=b*sin(alfa);
plostina=c*hc/2.0;
}

};

int main()
{
int x, y, z;
cout<<"Vnesete vrednosti za triagolnikot : ";
cin>>x>>y>>z;
Triagolnik tri(x,y,z);
tri.Perimetar();
tri.Plostina();
tri.pecati();

WWW.MATEMATIKA.MK PISI
Programski jazik C++ FUNKCII I KLASI PISI
return 0;
}
_______________________________________________________
Test primer:

VLEZ:

Vnesete vrednosti za triagolnikot: 3 4 5

Programata pe~ati:

Triagolnikot e so strani 3, 4 i 5.
Plo{tinata iznesuva 6
Perimetarot iznasuva 12

WWW.MATEMATIKA.MK PISI
Programski jazik C++ FUNKCII I KLASI PISI
4. Da se razvie klasa za rabota so kompleksen broj koja ima
funkcii za sobirawe i mno`ewe na dva kompleksni broja.

Re{enie:

Klasa Kompleksen

int realen, imaginaren realniot i imaginarniot del

funkcija za pe~atewe na
void pecati()
karakteristikite na triagolnikot
Kompleksen funkcija za sobirawe na dva
sobiranje(Kompleksen k) kompleksni broja
Kompleksen funkcija za mno`ewe na dva
mnozenje(Kompleksen k) kompleksni broja

Vlezni promenlivi Izlezni promenlivi


promenlivi za
realniot i
re, im
imaginarniot
del zbirot i proizvodot
k3, k4
na k1 i k2
kompleksni
k1, k2
broevi

#include<iostream>
using namespace std;

class Kompleksen
{
private:
int realen, imaginaren;
public:
Kompleksen()
{
realen=imaginaren=0;
}
Kompleksen(int r, int i)
{

WWW.MATEMATIKA.MK PISI
Programski jazik C++ FUNKCII I KLASI PISI
realen=r;
imaginaren=i;
}
~Kompleksen()
{}
int getRealen()
{
return realen;
}
int getImaginaren()
{
return imaginaren;
}
void pecati()
{
cout<<"\n"<<realen<<"+ i*("<<imaginaren<<") \n";
}
Kompleksen sobiranje(Kompleksen k)
{
int re=k.getRealen();
int im=k.getImaginaren();
int pomreal, pomimag;
pomreal=realen+re;
pomimag=imaginaren+im;
Kompleksen pom(pomreal, pomimag);
return pom;
}
Kompleksen mnozenje(Kompleksen k)
{
int re=k.getRealen();
int im=k.getImaginaren();
int pomreal, pomimag;
pomreal=realen*re-imaginaren*im;
pomimag=realen*im+imaginaren*re;
Kompleksen pom(pomreal, pomimag);
return pom;
}

};

int main()
{

WWW.MATEMATIKA.MK PISI
Programski jazik C++ FUNKCII I KLASI PISI
int re, im;
cout<<"Vnesete go prviot kompleksen broj : ";
cin>>re>>im;
Kompleksen k1(re,im);
cout<<"Vnesete go vtoriot kompleksen broj : ";
cin>>re>>im;
Kompleksen k2(re,im);
Kompleksen k3=k1.sobiranje(k2);
Kompleksen k4=k1.mnozenje(k2);
cout<<"\nPrviot kompleksen broj e ";
k1.pecati();
cout<<"Vtoriot kompleksen broj e ";
k2.pecati();
cout<<"Nivniot zbir iznesuva ";
k3.pecati();
cout<<"Nivniot proizvod iznesuva ";
k4.pecati();
return 0;
}
_______________________________________________________
Test primer:

VLEZ:

Vnesete go prviot kompleksen broj : 3 -2


Vnesete go vtoriot kompleksen broj : 4 5

Programata pe~ati:

Prviot kompleksen broj e


3 + i*(-2)
Vtoriot kompleksen broj e
4 + i*(5)
Nivniot zbir iznesuva
7 + i*(3)
Nivniot proizvod iznesuva
22 + i*(7)

WWW.MATEMATIKA.MK PISI
Programski jazik C++ FUNKCII I KLASI PISI
5. Da se razvie klasa Student koja sodr`i ime, prezime i
ocenki na studentot, kako i metod za vnesuvawe na ocenkite i
metod za pe~atewe na podatocite na studentot, zaedno so
prosekot od negovite ocenki.

Re{enie:

Klasa Student

char ime[15], prezime[20] imeto i prezimeto na studentot

int ocenka[10], brOcenki ocenkite so brojot na ocenki

funkcija za pe~atewe na podatocite


void pecati()
na studentot
funkcija za vnesuvawe na ocenkite na
void vnesiOcenki()
studentot
funkcija za presmetuvawe na prosekot
float getProsek()
od ocenkite

Vlezni promenlivi Izlezni promenlivi


promenliva za
br brojot na
ocenki
s student
imeto i
ime[15],
prezimeto na
prezime[20]
studentot

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

class Student
{
private:
char ime[15];
char prezime[20];

WWW.MATEMATIKA.MK PISI
Programski jazik C++ FUNKCII I KLASI PISI
int ocenka[10];
int brOcenki;
public:
Student()
{
*ime=*prezime='\0';
brOcenki=0;
}
Student(char *i, char *p, int brOc)
{
strcpy(ime,i);
strcpy(prezime,p);
brOcenki=brOc;
}
~Student()
{}
void vnesiOcenki()
{
int i;
for(i=0; i<brOcenki; i++)
{
cout<<"Vnesete ja "<<i+1<<"-ta ocenka : ";
cin>>ocenka[i];
}
}
float getProsek()
{
int i;
float prosek=0.0;
for(i=0; i<brOcenki; i++)
prosek+=ocenka[i];
prosek/=brOcenki;
return prosek;
}
void pecati()
{
cout<<"\nIme : "<<ime<<endl;
cout<<"Prezime : "<<prezime<<endl;
cout<<"Ocenki : ";
for(int i=0; i<brOcenki-1; i++)
cout<<ocenka[i]<<", ";
cout<<ocenka[brOcenki-1]<<endl;

WWW.MATEMATIKA.MK PISI
Programski jazik C++ FUNKCII I KLASI PISI
cout<<"Prosek : "<<getProsek()<<endl;
}
};

int main()
{
int br;
char ime[15], prezime[10];
cout<<"Vnesete go imeto na studentot : ";
cin>>ime;
cout<<"Vnesete go prezimeto na studentot : ";
cin>>prezime;
cout<<"Vnesete broj na ocenki : ";
cin>>br;
Student s(ime,prezime,br);
s.vnesiOcenki();
s.pecati();
return 0;
}
_______________________________________________________
Test primer:

VLEZ:

Vnesete go imeto na studentot : Aleksandar


Vnesete go prezimeto na studentot : Nikoloski
Vnesete broj na ocenki : 5
Vnesete ja 1-ta ocenka : 8
Vnesete ja 2-ta ocenka : 9
Vnesete ja 3-ta ocenka : 10
Vnesete ja 4-ta ocenka : 9
Vnesete ja 5-ta ocenka : 8

Programata pe~ati:

Ime : Aleksandar
Prezime : Nikoloski
Ocenki : 8, 9, 10, 9, 8
Prosek : 8.8

WWW.MATEMATIKA.MK PISI
Programski jazik C++ FUNKCII I KLASI PISI
6. Da se razvie klasa Smetka koja sodr`i ime i prezime na
korisnikot i iznos na smetkata, kako i metod za dodavawe i
podigawe na pari od smetkata i metod za pe~atewe na
podatocite od smetkata.

Re{enie:

Klasa Smetka

char ime[15], prezime[20] ime i prezime na korisnikot

int iznos iznos na smetkata

funkcija za pe~atewe na podatocite


void pecati()
od smetkata
void dodadiSuma(int funkcija za dodavawe pari na
suma) smetkata
void podigniSuma(int funkcija za podigawe pari od
suma) smetkata

Vlezni promenlivi Izlezni promenlivi


promenliva za
suma vnesenite
sumi
s smetka
imeto i
ime[15],
prezimeto na
prezime[20]
korisnikot

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

class Smetka
{
private:
char ime[15];
char prezime[20];

WWW.MATEMATIKA.MK PISI
Programski jazik C++ FUNKCII I KLASI PISI
int iznos;
public:
Smetka(char *i='\0', char *p='\0', int suma=0)
{
strcpy(ime,i);
strcpy(prezime,p);
iznos=suma;
}
~Smetka()
{}
void dodadiSuma(int suma)
{
if(suma<=0)
cout<<"Ne se dodava negativna suma\n";
else
iznos+=suma;
}
void podigniSuma(int suma)
{
if(suma<=0)
cout<<"Ne se podiga negativna suma\n";
else
{
if(iznos-suma<0)
cout<<"Ne e dozvolen minus na
smetkata\n";
else
iznos-=suma;
}
}
void pecati()
{
cout<<"\nIme : "<<ime<<endl;
cout<<"Prezime : "<<prezime<<endl;
cout<<"Iznos na smetka : "<<iznos<<endl;
}
};

int main()
{
int suma;
char ime[15], prezime[10];

WWW.MATEMATIKA.MK PISI
Programski jazik C++ FUNKCII I KLASI PISI
cout<<"Vnesete go imeto na korisnikot : ";
cin>>ime;
cout<<"Vnesete go prezimeto na korisnikot : ";
cin>>prezime;
cout<<"Vnesete poceten iznos na smetkata : ";
cin>>suma;
Smetka s(ime,prezime,suma);
s.pecati();
cout<<"\nDodadete pari na smetkata : ";
cin>>suma;
s.dodadiSuma(suma);
s.pecati();
cout<<"\nPodignete pari od smetkata : ";
cin>>suma;
s.podigniSuma(suma);
s.pecati();
return 0;
}
_______________________________________________________
Test primer:

VLEZ:

Vnesete go imeto na korisnikot : Elena


Vnesete go prezimeto na korisnikot: Doneska
Vnesete po~eten iznos na smetkata : 5000

Programata pe~ati:

Ime : Elena
Prezime : Doneska
Iznos na smetka : 5000

Dodadete pari na smetkata : 1000

Ime : Elena
Prezime : Doneska
Iznos na smetka : 6000

Podignete pari od smetkata : 2500


Ime : Elena
Prezime : Doneska
Iznos na smetka : 3500

WWW.MATEMATIKA.MK PISI
Programski jazik C++ FUNKCII I KLASI PISI

7. Da se razvie klasa Niza koja sodr`i niza od celi broevi,


kako i metod za dodavawe elementi vo nizata i metod za
pe~atewe na nizata, zaedno so zbirot od elementite vo nizata.

Re{enie:

Klasa Niza

int a[100], n nizata i brojot na elementi od nizata

void pecati() funkcija za pe~atewe na nizata

int dodadiElement(int funkcija za dodavawe elementi vo


element) nizata
funkcija za presmetuvawe na zbirot
int presmetajZbir()
na elementite od nizata

Vlezni promenlivi Izlezni promenlivi

pomo{na
broj nova niza
promenliva

#include<iostream>
using namespace std;

class Niza
{
private:
int a[100];
int n;
public:
Niza(int x)
{
n=x;
}
~Niza()
{}
int dodadiElement(int element)

WWW.MATEMATIKA.MK PISI
Programski jazik C++ FUNKCII I KLASI PISI
{
if(n<20)
{
a[n]=element;
n++;
return 1;
}
else
{
cout<<"Nizata e celosno popolneta\n";
return 0;
}
}
int presmetajZbir()
{
int i, suma=0;
for(i=0; i<n; i++)
suma+=a[i];
return suma;
}
void pecati()
{
cout<<"\nElementite na nizata se : \n";
for(int i=0; i<n; i++)
cout<<a[i]<<" ";
cout<<"\nZbirot na elementite od nizata iznesuva
"<<presmetajZbir()<<endl;
}
};
int main()
{
int broj;
Niza nova(0);
cout<<"Vnesete gi elementite od nizata : ";
while(cin>>broj)
{
if(nova.dodadiElement(broj)==0)
break;
}
nova.pecati();
return 0;
}

WWW.MATEMATIKA.MK PISI
Programski jazik C++ FUNKCII I KLASI PISI
_______________________________________________________
Test primer:

VLEZ:

Vnesete gi elementite od nizata : 3 -4 11 -9 17 1 x

Programata pe~ati:

Elementite na nizata se:


3 -4 11 -9 17 1
Zbirot na elementite od nizata iznesuva 19

WWW.MATEMATIKA.MK PISI
Programski jazik C++ FUNKCII I KLASI PISI
8. Da se razvie klasa Niza koja sodr`i niza od celi broevi,
kako i metod za podreduvawe na elementite vo nizata i metod
za pe~atewe na nizata.

Re{enie:

Klasa Niza

int a[20] elementi od nizata

maksimalen broj na elementi od


max, brojac
nizata i broja~ za vnesenite elementi

void pecati() funkcija za pe~atewe na nizata

int dodadiElement(int funkcija za dodavawe elementi vo


element) nizata
funkcija za podreduvawe na
void podreduvanje()
elementite vo nizata

Vlezni promenlivi Izlezni promenlivi

pomo{na
broj nova niza
promenliva

#include<iostream>
using namespace std;

class Niza
{
private:
int a[20];
int max;
int brojac;
public:
Niza(int x)
{
max=x;
brojac=0;

WWW.MATEMATIKA.MK PISI
Programski jazik C++ FUNKCII I KLASI PISI
}
~Niza()
{}
int dodadiElement(int element)
{
if(brojac<max)
{
a[brojac]=element;
brojac++;
return 1;
}
else
{
cout<<"Nizata e celosno popolneta\n";
return 0;
}
}
void podreduvanje()
{
int i, j, pom;
for(i=0; i<brojac-1; i++)
for(j=i+1; j<brojac; j++)
if(a[j]<a[i])
{
pom=a[j];
a[j]=a[i];
a[i]=pom;
}
}
void pecati()
{
cout<<"\nElementite na nizata se : \n";
for(int i=0; i<brojac; i++)
cout<<a[i]<<" ";
cout<<"\n";
}
};

int main()
{
int broj;
cout<<"Kolku najmnogu elementi ke ima nizata? ";

WWW.MATEMATIKA.MK PISI
Programski jazik C++ FUNKCII I KLASI PISI
cin>>broj;
Niza nova(broj);
cout<<"Vnesete gi elementite od nizata : ";
while(cin>>broj)
{
if(nova.dodadiElement(broj)==0)
break;
}
cout<<"\nPred podreduvanje :";
nova.pecati();
nova.podreduvanje();
cout<<"\nPosle podreduvanje :";
nova.pecati();
return 0;
}
_______________________________________________________
Test primer:

VLEZ:

Kolku najmnogu elementi }e ima nizata? 10


Vnesete gi elementite od nizata : 4 -3 7 -11 9 0 x

Programata pe~ati:

Pred podreduvawe :
Elementite na nizata se:
4 -3 7 -11 9 0

Posle podreduvawe :
Elementite na nizata se:
-11 -3 0 4 7 9

WWW.MATEMATIKA.MK PISI
Programski jazik C++ FUNKCII I KLASI PISI
9. Da se razvie klasa Niza koja sodr`i niza od celi broevi i
metod za dobivawe na nizata kako unija od dve drugi nizi.

Re{enie:

Klasa Niza

int a[20], n nizata i brojot na elementi od nizata

void pecati() funkcija za pe~atewe na nizata

int dodadiElement(int funkcija za dodavawe elementi vo


element) nizata
funkcija za dobivawe vrednost na
int zemiElement(int i)
elementot od nizata so indeks i
funkcija koja go dava brojot na
int brojElementi()
elementi od nizata
funkcija koja gi otstranuva
void duplikati()
duplikatite vo nizata
void unija(Niza &niza1, funkcija za dobivawe nova niza kako
Niza &niza2) unija na dve nizi

Vlezni promenlivi Izlezni promenlivi


niza1,
pomo{ni vleznite nizi i
broj, el, i niza2,
promenlivi nizata unija
nizaUnija

#include<iostream>
using namespace std;

class Niza
{
private:
int a[20];
int n;
public:
Niza(int x)

WWW.MATEMATIKA.MK PISI
Programski jazik C++ FUNKCII I KLASI PISI
{
n=x;
}
~Niza()
{}
int dodadiElement(int element)
{
if(n<20)
{
a[n]=element;
n++;
return 1;
}
else
{
cout<<"Nizata e celosno popolneta\n";
return 0;
}
}
int brojElementi()
{
return n;
}
int zemiElement(int i)
{
if(i>=n)
{
cout<<"\nPogresen index\n";
return 0;
}
else
return a[i];
}
void duplikati()
{
int i=0, j, p;
while(i<n)
{
for(j=i+1; j<n; j++)
if(a[i]==a[j])
{
for(p=j; p<n; p++)

WWW.MATEMATIKA.MK PISI
Programski jazik C++ FUNKCII I KLASI PISI
{
a[p]=a[p+1];
}
n--;
}
if(a[i]!=a[i+1])
i++;
}
}
void unija(Niza &niza1, Niza &niza2)
{
int i;
for(i=0; i<niza1.brojElementi(); i++)
dodadiElement(niza1.zemiElement(i));
for(i=0; i<niza2.brojElementi(); i++)
dodadiElement(niza2.zemiElement(i));
duplikati();
}
void pecati()
{
cout<<"\nElementite na nizata se : \n";
for(int i=0; i<n; i++)
cout<<a[i]<<" ";
cout<<"\n";
}
};

int main()
{
int broj, i, el;
Niza niza1(0), niza2(0), nizaUnija(0);
cout<<"Kolku elementi ke ima prvata niza? ";
cin>>broj;
cout<<"Vnesete gi elementite od prvata niza : ";
for(i=0; i<broj; i++)
{
cin>>el;
if(niza1.dodadiElement(el)==0)
break;
}
cout<<"Kolku elementi ke ima vtorata niza? ";
cin>>broj;

WWW.MATEMATIKA.MK PISI
Programski jazik C++ FUNKCII I KLASI PISI
cout<<"Vnesete gi elementite od vtorata niza : ";
for(i=0; i<broj; i++)
{
cin>>el;
if(niza2.dodadiElement(el)==0)
break;
}
nizaUnija.unija(niza1, niza2);
cout<<"\nPrvata niza e :";
niza1.pecati();
cout<<"\nVtorata niza e :";
niza2.pecati();
cout<<"\nUnijata na nizite e :";
nizaUnija.pecati();
return 0;
}
_______________________________________________________
Test primer:

VLEZ:

Kolku elementi }e ima prvata niza? 4


Vnesete gi elementite od prvata niza : 1 2 3 4 x
Kolku elementi }e ima vtorata niza? 5
Vnesete gi elementite od vtorata niza : 3 4 5 6 7 x

Programata pe~ati:

Prvata niza e :
Elementite na nizata se:
1 2 3 4

Vtorata niza e :
Elementite na nizata se:
3 4 5 6 7

Unijata na nizite e :
Elementite na nizata se:
1 2 3 4 5 6 7

WWW.MATEMATIKA.MK PISI
Programski jazik C++ FUNKCII I KLASI PISI
10. Da se razvie klasa Kniga so naslov, avtor i cena, kako i
kopi-konstruktor za knigata.

Re{enie:

Klasa Kniga

char naslov[50], avtor[20] naslovot i avtorot na knigata

int cena cena na knigata

Kniga(Kniga &k) kopi-konstruktor

funkcija za pe~atewe na podatocite


void pecati()
od knigata
char *getNaslov(),char funkcii za dobivawe na naslovot i
*getAvtor() avtorot na knigata
funkcija za dobivawe na cenata na
int getCena()
knigata

Vlezni promenlivi Izlezni promenlivi


pomo{ni
i, c
promenlivi

naslovot i originalnata kniga i


naslov[50],
avtorot na k, kopija
avtor[25] kopijata
knigata
cenata na
cena
knigata

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

class Kniga
{
private:

WWW.MATEMATIKA.MK PISI
Programski jazik C++ FUNKCII I KLASI PISI
char naslov[50];
char avtor[25];
int cena;
public:
Kniga()
{
*naslov=*avtor='\0';
cena=0;
}
Kniga(char *i, char *a, int c)
{
int dolzina=strlen(i);
strncpy(naslov,i, dolzina);
naslov[dolzina]='\0';
dolzina=strlen(a);
strncpy(avtor,a, dolzina);
avtor[dolzina]='\0';
cena=c;
}
~Kniga()
{}
Kniga(Kniga &k)
{
strcpy(naslov,k.getNaslov());
strcpy(avtor,k.getAvtor());
cena=k.getCena();
}
char *getNaslov()
{
return naslov;
}
char *getAvtor()
{
return avtor;
}
int getCena()
{
return cena;
}
void pecati()
{
cout<<"\nNaslov : "<<naslov<<endl;

WWW.MATEMATIKA.MK PISI
Programski jazik C++ FUNKCII I KLASI PISI
cout<<"Avtor : "<<avtor<<endl;
cout<<"Cena : "<<cena<<endl;
}
};

int main()
{
int cena, i;
char naslov[50], avtor[25], c;
cout<<"Vnesete go naslovot na knigata : ";
i=0;
while((c=getchar())!='\n')
{
naslov[i]=c;
i++;
}
naslov[i]='\0';
cout<<"Vnesete go imeto na avtorot : ";
i=0;
while((c=getchar())!='\n')
{
avtor[i]=c;
i++;
}
avtor[i]='\0';
cout<<"Vnesete cena na knigata : ";
cin>>cena;
Kniga k(naslov,avtor,cena);
cout<<"\nVnesenata kniga e ";
k.pecati();
Kniga kopija(k);
cout<<"\nKopiranata kniga e :";
kopija.pecati();
return 0;
}

WWW.MATEMATIKA.MK PISI
Programski jazik C++ FUNKCII I KLASI PISI
_______________________________________________________
Test primer:

VLEZ:

Vnesete go naslovot na knigata : "Zlostorstvo i kazna"


Vnesete go avtorot na knigata : Dostoevski
Vnesete cena na knigata : 400

Programata pe~ati:

Vnesenata kniga e :
Naslov : "Zlostorstvo i kazna"
Avtor : Dostoevski
Cena : 400

Kopiranata kniga e :
Naslov : "Zlostorstvo i kazna"
Avtor : Dostoevski
Cena : 400

WWW.MATEMATIKA.MK PISI
Programski jazik C++ FUNKCII I KLASI PISI
11. Da se razvie klasa Kniga so naslov, avtor i cena, i da se
preoptovari operatorot za pe~atewe na ekran <<.

Re{enie:

Klasa Kniga

char naslov[50], avtor[20] naslov i avtorot na knigata

int cena cena na knigata

friend ostream &


operator<<(ostream preoptovaruvawe na operatorot <<
&prikazi, Kniga &k)
char *getNaslov(),char funkcii za dobivawe na naslovot i
*getAvtor() avtorot na knigata
funkcija za dobivawe na cenata na
int getCena()
knigata

Vlezni promenlivi Izlezni promenlivi


pomo{ni
i, c
promenlivi

naslovot i
naslov[50],
avtorot na k kniga
avtor[25]
knigata
cenata na
cena
knigata

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

class Kniga
{
private:
char naslov[50];
char avtor[25];

WWW.MATEMATIKA.MK PISI
Programski jazik C++ FUNKCII I KLASI PISI
int cena;
public:
Kniga()
{
*naslov=*avtor='\0';
cena=0;
}
Kniga(char *i, char *a, int c)
{
int dolzina=strlen(i);
strncpy(naslov,i, dolzina);
naslov[dolzina]='\0';
dolzina=strlen(a);
strncpy(avtor,a, dolzina);
avtor[dolzina]='\0';
cena=c;
}
~Kniga()
{}
char *getNaslov()
{
return naslov;
}
char *getAvtor()
{
return avtor;
}
int getCena()
{
return cena;
}
friend ostream & operator<<(ostream &prikazi, Kniga &k)
{
prikazi<<"\nKniga :"<<endl;
prikazi<<"Naslov : "<<k.getNaslov()<<endl;
prikazi<<"Avtor : "<<k.getAvtor()<<endl;
prikazi<<"Cena : "<<k.getCena()<<endl;
return prikazi;
}
};

int main()

WWW.MATEMATIKA.MK PISI
Programski jazik C++ FUNKCII I KLASI PISI
{
int cena, i;
char naslov[50], avtor[25], c;
cout<<"Vnesete go naslovot na knigata : ";
i=0;
while((c=getchar())!='\n')
{
naslov[i]=c;
i++;
}
naslov[i]='\0';
cout<<"Vnesete go imeto na avtorot : ";
i=0;
while((c=getchar())!='\n')
{
avtor[i]=c;
i++;
}
avtor[i]='\0';
cout<<"Vnesete cena na knigata : ";
cin>>cena;
Kniga k(naslov,avtor,cena);
cout<<k;
return 0;
}
_______________________________________________________
Test primer:

VLEZ:

Vnesete go naslovot na knigata : "Zlostorstvo i kazna"


Vnesete go avtorot na knigata : Dostoevski
Vnesete cena na knigata : 400

Programata pe~ati:

Kniga :
Naslov : "Zlostorstvo i kazna"
Avtor : Dostoevski
Cena : 400

WWW.MATEMATIKA.MK PISI
Programski jazik C++ FUNKCII I KLASI PISI
12. Da se razvie klasa za rabota so kompleksen broj so
preoptovaruvawe na operatorite +(sobirawe) i *(mno`ewe).

Re{enie:

Klasa Kompleksen

int realen, imaginaren realniot i imaginarniot del

funkcija za pe~atewe na
void pecati()
karakteristikite na triagolnikot
Kompleksen
preotovaruvawe na operatorot +
operator+(Kompleksen k)
Kompleksen
preotovaruvawe na operatorot *
operator*(Kompleksen k)

Vlezni promenlivi Izlezni promenlivi


promenlivi za
realniot i
re, im
imaginarniot
del zbirot i proizvodot
k3, k4
na k1 i k2
kompleksni
k1, k2
broevi

#include<iostream>
using namespace std;

class Kompleksen
{
private:
int realen, imaginaren;
public:
Kompleksen()
{
realen=imaginaren=0;
}
Kompleksen(int r, int i)
{

WWW.MATEMATIKA.MK PISI
Programski jazik C++ FUNKCII I KLASI PISI
realen=r;
imaginaren=i;
}
~Kompleksen()
{}
int getRealen()
{
return realen;
}
int getImaginaren()
{
return imaginaren;
}
void pecati()
{
cout<<"\n"<<realen<<"+ i*("<<imaginaren<<") \n";
}
Kompleksen operator+(Kompleksen k)
{
int re=k.getRealen();
int im=k.getImaginaren();
int pomreal, pomimag;
pomreal=realen+re;
pomimag=imaginaren+im;
Kompleksen pom(pomreal, pomimag);
return pom;
}
Kompleksen operator*(Kompleksen k)
{
int re=k.getRealen();
int im=k.getImaginaren();
int pomreal, pomimag;
pomreal=realen*re-imaginaren*im;
pomimag=realen*im+imaginaren*re;
Kompleksen pom(pomreal, pomimag);
return pom;
}

};

int main()
{

WWW.MATEMATIKA.MK PISI
Programski jazik C++ FUNKCII I KLASI PISI
int re, im;
cout<<"Vnesete go prviot kompleksen broj : ";
cin>>re>>im;
Kompleksen k1(re,im);
cout<<"Vnesete go vtoriot kompleksen broj : ";
cin>>re>>im;
Kompleksen k2(re,im);
Kompleksen k3=k1+k2;
Kompleksen k4=k1*k2;
cout<<"\nPrviot kompleksen broj e ";
k1.pecati();
cout<<"Vtoriot kompleksen broj e ";
k2.pecati();
cout<<"Nivniot zbir iznesuva ";
k3.pecati();
cout<<"Nivniot proizvod iznesuva ";
k4.pecati();
system("pause");
return 0;
}
_______________________________________________________
Test primer:

VLEZ:

Vnesete go prviot kompleksen broj : 6 -11


Vnesete go vtoriot kompleksen broj : 4 17

Programata pe~ati:

Prviot kompleksen broj e


6 + i*(-11)
Vtoriot kompleksen broj e
4 + i*(17)
Nivniot zbir iznesuva
10 + i*(6)
Nivniot proizvod iznesuva
211 + i*(58)

WWW.MATEMATIKA.MK PISI
Programski jazik C++ FUNKCII I KLASI PISI
13. Da se razvie klasa Niza koja sodr`i niza od celi broevi i
da se preoptovari operatorot [ ] za dobivawe na elementite od
nizata.

Re{enie:
Klasa Niza

int a[20], n nizata i brojot na elementi od nizata

int &operator[](int i) preoptovaruvawe na operatorot [ ]

int dodadiElement(int funkcija za dodavawe elementi vo


element) nizata
funkcija za dobivawe na brojot na
int getSize()
elementi od nizata

Vlezni promenlivi Izlezni promenlivi

pomo{na
broj nova niza
promenliva

#include<iostream>
using namespace std;

class Niza
{
private:
int a[20];
int n;
public:
Niza(int x)
{
n=x;
}
~Niza()
{}
int dodadiElement(int element)
{
if(n<20)

WWW.MATEMATIKA.MK PISI
Programski jazik C++ FUNKCII I KLASI PISI
{
a[n]=element;
n++;
return 1;
}
else
{
cout<<"Nizata e celosno popolneta\n";
return 0;
}
}
int getSize()
{
return n;
}
int &operator[](int i)
{
if(i<0 || i>=n)
{
cout<<"\nPogresen index! \n";
exit(-1);
}
else
return a[i];
}
};
int main()
{
int broj;
Niza nova(0);
cout<<"Vnesete gi elementite od nizata : ";
while(cin>>broj)
{
if(nova.dodadiElement(broj)==0)
break;
}
cout<<"\nVnesenata niza e :\n";
for(broj=0; broj<nova.getSize(); broj++)
cout<<nova[broj]<<" ";
cout<<endl;
return 0;
}

WWW.MATEMATIKA.MK PISI
Programski jazik C++ FUNKCII I KLASI PISI
_______________________________________________________
Test primer:

VLEZ:

Vnesete gi elementite od nizata : 13 -21 36 55 -101 x

Programata pe~ati:

Elementite na nizata se:


13 -21 36 55 -101

WWW.MATEMATIKA.MK PISI
Programski jazik C++ FUNKCII I KLASI PISI
14. Da se razvie klasa Delewe koja sodr`i realen broj i da se
preoptovari operatorot za delewe /.

Re{enie:

Klasa Delenje

float broj realen broj

Delenje operator/(Delenje
preoptovaruvawe na operatorot /
d)
funkcija za pe~atewe na vrednosta na
void pecati()
realniot broj
funkcija za dobivawe na realniot
float getBroj()
broj

Vlezni promenlivi Izlezni promenlivi


broj1,
pomo{na objekti od klasata
broj broj2,
promenliva Delewe
rezultat
#include<iostream>
using namespace std;

class Delenje
{
private:
float broj;
public:
Delenje(float x=1.0)
{
broj=x;
}
~Delenje()
{}
Delenje operator/(Delenje d)
{
if(d.getBroj()==0.0)
{
cout<<"\nNema delenje so 0! \n";

WWW.MATEMATIKA.MK PISI
Programski jazik C++ FUNKCII I KLASI PISI
}
else
{
Delenje rez(broj/d.getBroj());
return rez;
}
}
float getBroj()
{
return broj;
}
void pecati()
{
cout<<broj;
}
};
int main()
{
int broj;
cout<<"Vnesete go delenikot : ";
cin>>broj;
Delenje broj1(broj);
cout<<"Vnesete go delitelot : ";
cin>>broj;
Delenje broj2(broj);
Delenje rezultat=broj1/broj2;
broj1.pecati();
cout<<" / ";
broj2.pecati();
cout<<" = ";
rezultat.pecati();
return 0;
}
_______________________________________________________
Test primer:
VLEZ:
Vnesete go delenikot : 10
Vnesete go delitelot : 3
Programata pe~ati:

10 / 3 = 3.33333

WWW.MATEMATIKA.MK PISI
Programski jazik C++ FUNKCII I KLASI PISI
15. Da se napi{e klasa za telo od 3D prostor so funkcii za
povr{ina i volumen. Od nea da se izvedat klasite za sfera i
kvadar.

Re{enie:

Klasa Telo

virtual float povrsina()=0 funkcija za povr{ina na telo

virtual float volumen()=0 funkcija za volumen na telo

funkcija za pe~atewe na podatocite


virtual void pecati()
na teloto

Klasa Sfera

int radius radius na sferata

Klasa Kvadar

int a, b, c strani na kvadarot

Vlezni promenlivi Izlezni promenlivi

s, k sfera i kvadar

#include<iostream>
using namespace std;

class Telo
{
public:
virtual float povrsina()=0;
virtual float volumen()=0;
virtual void pecati()
{

WWW.MATEMATIKA.MK PISI
Programski jazik C++ FUNKCII I KLASI PISI
cout<<"Povrsina : "<<povrsina()<<endl;
cout<<"Volumen : "<<volumen()<<endl;
}
};

class Sfera: public Telo


{
private:
int radius;
public:
Sfera(int r=0)
{
radius=r;
}
float povrsina()
{
return 4*radius*radius*3.14;
}
float volumen()
{
return (4*radius*radius*radius*3.14)/3;
}
void pecati()
{
cout<<"\nKrug so radius "<<radius<<endl;
Telo::pecati();
}
};

class Kvadar: public Telo


{
private:
int a, b ,c;
public:
Kvadar(int x=0, int y=0, int z=0)
{
a=x;
b=y;
c=z;
}
float povrsina()
{

WWW.MATEMATIKA.MK PISI
Programski jazik C++ FUNKCII I KLASI PISI
return 2*(a*b+b*c+c*a);
}
float volumen()
{
return a*b*c;
}
void pecati()
{
cout<<"Kvadar so strani "<<a<<", "<<b<<" i "<<c;
Telo::pecati();
}
};

int main()
{
Sfera s(10);
Kvadar k(2,3,4);
s.pecati();
cout<<endl;
k.pecati();
return 0;
}
_______________________________________________________
Test primer:

Programata pe~ati:

Krug so radius 10
Povr{ina : 1256
Volumen : 4186.67

Kvadar so strani 2, 3 i 4
Povr{ina : 52
Volumen : 24

WWW.MATEMATIKA.MK PISI
Programski jazik C++ FUNKCII I KLASI PISI
16. Da se napi{e klasa za to~ka vo 2D prostor so funkcija za
rastojanie pome|u dve to~ki, i od nea da se nasledi klasa za
to~ka vo 3D, isto taka so funkcija za rastojanie pome|u dve
to~ki vo 3D prostor.

Re{enie:

Klasa Tocka2D

int x, y koordinati na to~kata

funkcii za dobivawe na vrednostite


int getX(), getY()
na x i y
float rastojanie(Tocka2D rastojanie pome|u to~kite od 2D
&t) prostor
funkcija za pe~atewe na koordinatite
void pecati()
na to~kata

Klasa Tocka3D

int z koordinatata z na to~kata

funkcija za dobivawe na vrednosta na


int getZ()
z
float rastojanie(Tocka3D rastojanie pome|u to~kite od 3D
&t) prostor
funkcija za pe~atewe na koordinatite
void pecati()
na to~kata

Vlezni promenlivi Izlezni promenlivi

to~ki od 2D
t1, t2
prostor

to~ki od 3D
k1, k2
prostor

WWW.MATEMATIKA.MK PISI
Programski jazik C++ FUNKCII I KLASI PISI
#include<iostream>
#include<math.h>
using namespace std;

class Tocka2D
{
private:
int x, y;
public:
Tocka2D(int a, int b)
{
x=a;
y=b;
}
~Tocka2D()
{}
int getX()
{
return x;
}
int getY()
{
return y;
}
float rastojanie(Tocka2D &t)
{
int tx=t.getX();
int ty=t.getY();
return sqrt((x-tx)*(x-tx)+(y-ty)*(y-ty));
}
void pecati()
{
cout<<x<<", "<<y;
}
};

class Tocka3D: public Tocka2D


{
private:
int z;
public:
Tocka3D(int a, int b, int c):Tocka2D(a,b)

WWW.MATEMATIKA.MK PISI
Programski jazik C++ FUNKCII I KLASI PISI
{
z=c;
}
~Tocka3D()
{}
int getZ()
{
return z;
}
float rastojanie(Tocka3D &t)
{
int mx=Tocka2D::getX();
int my=Tocka2D::getY();
int tx=t.getX();
int ty=t.getY();
int tz=t.getZ();
return sqrt((mx-tx)*(mx-tx)+(my-ty)*(my-ty)+(z-
tz)*(z-tz));
}
void pecati()
{
Tocka2D::pecati();
cout<<", "<<z;
}
};

int main()
{
Tocka2D t1(3,4);
Tocka2D t2(0,0);
Tocka3D k1(1,2,2);
Tocka3D k2(0,0,0);
cout<<"Tocka vo 2D : (";
t1.pecati();
cout<<")\n";
cout<<"Tocka vo 3D : (";
k1.pecati();
cout<<")\n";
cout<<"\nRastojanie na tockata od 2D do koordinaten pocetok e
"<<t1.rastojanie(t2)<<endl;
cout<<"Rastojanie na tockata od 3D do koordinaten pocetok e
"<<k1.rastojanie(k2)<<endl;

WWW.MATEMATIKA.MK PISI
Programski jazik C++ FUNKCII I KLASI PISI
return 0;
}
_______________________________________________________
Test primer:

Programata pe~ati:

To~ka vo 2D : (3, 4)
To~ka vo 3D : (1, 2, 2)

Rastojanie na to~kata od 2D do koordinaten po~etok e 5


Rastojanie na to~kata od 3D do koordinaten po~etok e 3

WWW.MATEMATIKA.MK PISI
Programski jazik C++ FUNKCII I KLASI PISI
17. Da se razvie klasa Smetka koja sodr`i ime i prezime na
korisnikot i iznos na smetkata, kako i metod za dodavawe i
podigawe pari od smetkata i metod za pe~atewe na podatocite
od smetkata. Od nea da se izvede klasa SmetkaMinus vo koja }e
bide dozvoleno da se odi vo minus do prethodno opredelena
suma.

Re{enie:

Klasa Smetka

char ime[15], prezime[20] imeto i prezimeto na korisnikot

int iznos iznos na smetkata

funkcija za pe~atewe na podatocite


void pecati()
od smetkata
void dodadiSuma(int funkcija za dodavawe pari na
suma) smetkata
void podigniSuma(int funkcija za podigawe pari od
suma) smetkata
funkcija za dobivawe na iznosot na
int getIznos()
pari na smetkata
funkcija za dodeluvawe vrednost na
void setIznos(int i)
iznosot na pari na smetkata

Klasa SmetkaMinus

int minus dozvolen minus (pozitiven broj)

void podigniSuma(int funkcija za podigawe pari od


suma) smetkata

WWW.MATEMATIKA.MK PISI
Programski jazik C++ FUNKCII I KLASI PISI

Vlezni promenlivi Izlezni promenlivi


promenliva za
suma vnesenite
sumi
s smetka
imeto i
ime[15],
prezimeto na
prezime[20]
korisnikot

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

class Smetka
{
private:
char ime[15];
char prezime[20];
int iznos;
public:
Smetka(char *i='\0', char *p='\0', int suma=0)
{
strcpy(ime,i);
strcpy(prezime,p);
iznos=suma;
}
~Smetka()
{}
void dodadiSuma(int suma)
{
if(suma<=0)
cout<<"Ne se dodava negativna suma\n";
else
iznos+=suma;
}
void podigniSuma(int suma)
{
if(suma<=0)
cout<<"Ne se podiga negativna suma\n";
else

WWW.MATEMATIKA.MK PISI
Programski jazik C++ FUNKCII I KLASI PISI
{
if(iznos-suma<0)
cout<<"Ne e dozvolen minus na
smetkata\n";
else
iznos-=suma;
}
}
int getIznos()
{
return iznos;
}
void setIznos(int i)
{
iznos=i;
}
void pecati()
{
cout<<"\nIme : "<<ime<<endl;
cout<<"Prezime : "<<prezime<<endl;
cout<<"Iznos na smetka : "<<iznos<<endl;
}
};

class SmetkaMinus: public Smetka


{
private:
int minus;
public:
SmetkaMinus(char *i='\0', char *p='\0', int suma=0, int
min=0):Smetka(i,p,suma)
{
minus=min*(-1);
}
~SmetkaMinus()
{}
void podigniSuma(int suma)
{
int iz=Smetka::getIznos();
if(suma<=0)
cout<<"Ne se podiga negativna suma\n";
else

WWW.MATEMATIKA.MK PISI
Programski jazik C++ FUNKCII I KLASI PISI
{
if(iz-suma<minus)
cout<<"Ne e dozvolen tolku golem
minus na smetkata\n";
else
{
iz-=suma;
Smetka::setIznos(iz);
}
}
}
};

int main()
{
int suma, minus;
char ime[15], prezime[10];
cout<<"Vnesete go imeto na korisnikot : ";
cin>>ime;
cout<<"Vnesete go prezimeto na korisnikot : ";
cin>>prezime;
cout<<"Vnesete poceten iznos na smetkata : ";
cin>>suma;
cout<<"Vnesete dozvolen minus na smetkata : ";
cin>>minus;
SmetkaMinus s(ime,prezime,suma, minus);
s.pecati();
cout<<"\nDodadete pari na smetkata : ";
cin>>suma;
s.dodadiSuma(suma);
s.pecati();
cout<<"\nPodignete pari od smetkata : ";
cin>>suma;
s.podigniSuma(suma);
s.pecati();
return 0;
}

WWW.MATEMATIKA.MK PISI
Programski jazik C++ FUNKCII I KLASI PISI
_______________________________________________________
Test primer:

VLEZ:

Vnesete go imeto na korisnikot : Elena


Vnesete go prezimeto na korisnikot: Doneska
Vnesete po~eten iznos na smetkata : 5000
Vnesete dozvolen minus na smetkata : 2000

Programata pe~ati:

Ime : Elena
Prezime : Doneska
Iznos na smetka : 5000

Dodadete pari na smetkata : 1000

Ime : Elena
Prezime : Doneska
Iznos na smetka : 6000

Podignete pari od smetkata : 7000

Ime : Elena
Prezime : Doneska
Iznos na smetka : -1000

WWW.MATEMATIKA.MK PISI
Programski jazik C++ FUNKCII I KLASI PISI
18. Da se napi{e klasa za Vraboten koja sodr`i ime, prezime i
plata na vraboteniot, kako i metod za pe~atewe na
podatocite. Od nea da se izvede klasa Menaxer koja sodr`i i
oddel so koj rakovodi menaxerot.

Re{enie:

Klasa Vraboten

char ime[15], prezime[20] imeto i prezimeto na vraboteniot

int plata plata

funkcija za pe~atewe na podatocite


void pecati()
za vraboteniot

Klasa Menadzer

char oddel[20] oddel so koj rakovodi menaxerot

funkcija za pe~atewe na podatocite


void pecati()
za menaxerot

Vlezni promenlivi Izlezni promenlivi

plata plata

ime[15], imeto,
prezime[20], prezimeto i v, m vraboten i menaxer
oddel[20] oddelot

pomo{na
c
promenliva

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

WWW.MATEMATIKA.MK PISI
Programski jazik C++ FUNKCII I KLASI PISI
class Vraboten
{
private:
char ime[15];
char prezime[20];
int plata;
public:
Vraboten(char *i='\0', char *p='\0', int pl=0)
{
strcpy(ime,i);
strcpy(prezime,p);
plata=pl;
}
~Vraboten()
{}
void pecati()
{
cout<<"\nIme : "<<ime<<endl;
cout<<"Prezime : "<<prezime<<endl;
cout<<"Plata : "<<plata<<" denari"<<endl;
}
};

class Menadzer: public Vraboten


{
private:
char oddel[20];
public:
Menadzer(char *i='\0', char *p='\0', int suma=0, char
*o='\0'):Vraboten(i,p,suma)
{
strcpy(oddel,o);
}
~Menadzer()
{}
void pecati()
{
cout<<"\nMenadzer :";
Vraboten::pecati();
cout<<"Oddel : "<<oddel<<endl;
}

WWW.MATEMATIKA.MK PISI
Programski jazik C++ FUNKCII I KLASI PISI
};

int main()
{
int plata;
char ime[15], prezime[20], oddel[20], c;
cout<<"Vnesete go imeto na vraboteniot : ";
cin>>ime;
cout<<"Vnesete go prezimeto na vraboteniot : ";
cin>>prezime;
cout<<"Vnesete ja platata na vraboteniot : ";
cin>>plata;
cout<<"Dali vraboteniot e menadzer (Y/N) : ";
cin>>c;
c=toupper(c);
if(c=='Y')
{
cout<<"Vnesete go oddelot na menadzerot : ";
cin>>oddel;
Menadzer m(ime,prezime,plata,oddel);
m.pecati();
}
else
{
Vraboten v(ime,prezime,plata);
v.pecati();
}
return 0;
}
_______________________________________________________
Test primer:

VLEZ:

Vnesete go imeto na vraboteniot : Marko


Vnesete go prezimeto na vraboteniot: Bo`inovski
Vnesete ja platata na vraboteniot: 25000
Dali vraboteniot e menaxer (Y/N) : y
Vnesete go oddelot na menaxerot : Nabavki

WWW.MATEMATIKA.MK PISI
Programski jazik C++ FUNKCII I KLASI PISI
Programata pe~ati:

Menaxer :
Ime : Marko
Prezime : Bo`inovski
Plata : 25000
Oddel : Nabavki

WWW.MATEMATIKA.MK PISI
Programski jazik C++ FUNKCII I KLASI PISI
19. Da se razvie klasa Delewe koja sodr`i realen broj i da se
preoptovari operatorot za delewe / koj pri delewe so nula
dava poraka za gre{ka.

Re{enie:

Klasa Delenje

float broj realen broj

Delenje operator/(Delenje preoptovaruvawe na operatorot / so


d) throw(char*) poraka za gre{ka pri delewe so nula
funkcija za pe~atewe na vrednosta na
void pecati()
realniot broj
funkcija za dobivawe na realniot
float getBroj()
broj

Vlezni promenlivi Izlezni promenlivi


broj1,
pomo{na objekti od klasata
broj broj2,
promenliva Delewe
rezultat

#include<iostream>
using namespace std;

class Delenje
{
private:
float broj;
public:
Delenje(float x=1.0)
{
broj=x;
}
~Delenje()
{}
Delenje operator/(Delenje d) throw(char*)
{
if(d.getBroj()==0)

WWW.MATEMATIKA.MK PISI
Programski jazik C++ FUNKCII I KLASI PISI
{
char *pom;
pom="Greska! So nula ne se deli!.\n";
throw pom;
}
Delenje rez(broj/d.getBroj());
return rez;

}
float getBroj()
{
return broj;
}
void pecati()
{
cout<<broj;
}
};

int main()
{
int broj;
cout<<"Vnesete go delenikot : ";
cin>>broj;
Delenje broj1(broj);
cout<<"Vnesete go delitelot : ";
cin>>broj;
Delenje broj2(broj);
try
{
Delenje rezultat=broj1/broj2;
cout<<endl;
broj1.pecati();
cout<<" / ";
broj2.pecati();
cout<<" = ";
rezultat.pecati();
cout<<endl;
}
catch(char *s)
{
cout<<s;

WWW.MATEMATIKA.MK PISI
Programski jazik C++ FUNKCII I KLASI PISI
}
return 0;
}
_______________________________________________________
Test primer:

VLEZ:

Vnesete go delenikot : 15
Vnesete go delitelot : 0

Programata pe~ati:

Gre{ka! So nula ne se deli!

WWW.MATEMATIKA.MK PISI
Programski jazik C++ FUNKCII I KLASI PISI
20. Da se razvie klasa Niza koja sodr`i niza od celi broevi i
da se preoptovari operatorot [ ] za dobivawe na elementite od
nizata koj dava poraka za gre{ka pri nevaliden indeks.

Re{enie:

Klasa Niza

int a[20], n nizata i brojot na elementi od nizata

preoptovaruvawe na operatorot [ ] koj


int &operator[](int i)
dava poraka za gre{ka pri nevaliden
throw(int)
indeks
int dodadiElement(int funkcija za dodavawe elementi vo
element) nizata

Vlezni promenlivi Izlezni promenlivi

pomo{ni
broj, n, i nova niza
promenlivi

#include<iostream>
using namespace std;

class Niza
{
private:
int a[20];
int n;
public:
Niza(int x)
{
n=x;
}
~Niza()
{}
int dodadiElement(int element)
{
if(n<20)
{

WWW.MATEMATIKA.MK PISI
Programski jazik C++ FUNKCII I KLASI PISI
a[n]=element;
n++;
return 1;
}
else
{
cout<<"Nizata e celosno popolneta\n";
return 0;
}
}
int &operator[](int i) throw(int)
{
if(i<0 || i>=n)
throw i;
else
return a[i];
}
};

int main()
{
int broj, n, i;
Niza nova(0);
cout<<"Kolku elementi ke ima nizata? ";
cin>>n;
cout<<"Vnesete gi elementite od nizata :\n";
for(i=0; i<n; i++)
{
cout<<"a["<<i<<"] = ";
cin>>broj;
nova.dodadiElement(broj);
}
try
{
cout<<"Vnesete indeks na elementot koj ve interesira : ";
cin>>broj;
cout<<nova[broj];
}
catch(int i)
{
cout<<"Ne postoi element a["<<i<<"] \n";
}

WWW.MATEMATIKA.MK PISI
Programski jazik C++ FUNKCII I KLASI PISI
return 0;
}
_______________________________________________________
Test primer:

VLEZ:

Kolku elementi }e ima nizata ? 5


Vnesete gi elementite od nizata:
a[0]=33
a[1]= -7
a[2]=12
a[3]=0
a[4]=10

Vnesete indeks na elementot koj ve interesira : 7

Programata pe~ati:

Ne postoi element a[7].

WWW.MATEMATIKA.MK PISI

You might also like