Professional Documents
Culture Documents
PDF Metode Programiranja Zadaci - Compress
PDF Metode Programiranja Zadaci - Compress
PDF Metode Programiranja Zadaci - Compress
class Pravougaonik {
protected:
double a, b;
public:
Pravougaonik(double aa=1, double bb=2) { a=aa; b=bb; }
Pravougaonik(const Pravougaonik &p) { a=p.a; b=p.b; }
void setA(double aa) { a=aa; }
void setB(double bb) { b=bb; }
double getA() const { return a; }
double getB() const { return b; }
double getO() const { return 2*a+2*b; }
double getP() const { return a*b; }
};
#include "pravougaonik.hpp
"pravougaonik.hpp""
// datoteka: test.cpp
#include "kvadrat.hpp"
#include <iostream>
using namespace std;
int main() {
Pravougaonik p1(2,5);
cout<<"Obim p1: "<<p1.getO()<<endl;
cout<<"Povrsina p1: "<<p1.getP()<<endl;
Kvadrat k1(4);
cout<<"Obim k1: "<<k1.getO()<<endl;
cout<<"Povrsina k1: "<<k1.getP()<<endl;
return 0;
}
2. Napisati klasu trougao. Iz klase trougao izvesti klasu jednakokraki trougao. Kreirati
konstruktor bez parametara, konstruktor sa parametrima, konstruktor kopije, get i set metode i
metode za racunanje obima i povrsine.
#ifndef TROUGAO_H
#define TROUGAO_H
class trougao
{
private:
double a;
double b;
double c;
double hA;
public:
trougao(){a=b=c=hA=0;}
trougao(double xA, double xB, double xC, double xHA){a=xA,b=xB,c=xC,hA=xHA;}
trougao(trougao &);
~trougao(){}
virtual double obim(){return a+b+c;}
virtual double povrsina(){return (a*hA)/2;}
double getA(){return a;}
double getB(){return b;}
double getC(){return c;}
double getHA(){return hA;}
void setA(double xA){a=xA;}
void setB(double xB){a=xB;}
void setC(double xC){a=xC;}
void setHA(double xHA){hA=xHA;}
};
#include"trougao.h"
trougao::trougao(trougao& xTrougao)
{
a=xTrougao.getA();
b=xTrougao.getB();
c=xTrougao.getC();
hA=xTrougao.getHA();
}
#ifndef JEDNAKOKRAKI_H
#define JEDNAKOKRAKI_H
#include "trougao.h"
class jednakokraki : trougao
{
public:
#include "jednakokraki.h"
jednakokraki::jednakokraki(double xA, double xB, double xHA)
{
setA(xA);
setB(xB);
setHA(xHA);
}
#endif // TROUGAO_H
#include <stdio.h>
#include "trougao.h"
#include "jednakoKraki.h"
int main()
{
trougao a, b(10, 10, 10, 10);
a.setA(12);
a.setB(12);
a.setC(12);
a.setHA(10);
trougao c(a);
jednakoKraki d(5, 10, 14);
printf("trougao a ima obim %lf, i povrsinu
povrsinu %lf\n", a.obim(), a.povrsina());
printf("trougao b ima obim %lf, i povrsinu %lf\n",
%lf\n", b.obim(), b.povrsina());
printf("trougao c ima obim %lf, i povrsinu
povrsinu %lf\n", c.obim(), c.povrsina());
printf("trougao d ima obim %lf, i povrsinu %lf\n",
%lf\n", d.obim(), d.povrsina());
return 0;
}
#ifndef COMPLEX_DEF
#define COMPLEX_D
COMPLEX_DEF
EF
#include <iostream>
using namespace std;
class Complex {
private:
double re;
double im;
public:
Complex();
Complex(double, double);
Complex(const Complex&);
double getRe() const;
double getIm() const;
void setRe(double);
void setIm(double);
Preklapanje oduzimanja
Complex& Complex::operator=(const
Complex::operator=(const Complex &z) {
re=z.re; im=z.im;
return *this;
}
ostream& operator<<(ostream
operator<<(ostream &out, const Complex &z) {
if(z.re==0 && z.im!=0) out<<z.im<<"i";
if(z.re!=0 && z.im==0) out<<z.re;
if(z.re!=0 && z.im>0) out<<z.re<<"+"<<z.im<<"i";
if(z.re!=0 && z.im<0) out<<z.re<<z.im<<"i";
return out;
}
#include <iostream>
using namespace std;
template
class Niz <class
{ T, int D>
private:
T el[D];
int brEl;
public:
Niz() { brEl=0; } -konstrukotr
-konstrukotr
~Niz() {} -Destruktor
int getBrEl() const { return brEl; }
T operator[](int i) const { return el[i]; } - Operator
T& operator[](int i) { return el[i]; } -Indeksiranja
Niz<T,D>& operator=(const Niz<T,D>&);
Niz<T,D>&); - Operator za dodelu vrednosti
bool operator==(const Niz<T,D>&);
Niz<T,D>&); - Operat
Operator
or za proveru jednakosti
jednakosti da li je
jednoko?
bool operator!=(const Niz<T,D>&);
Niz<T,D>&); -Operator
-Operator za proveru jednakosti
jednakosti da li nije
jednako?
void printNiz() const;
bool insertNiz(const
insertNiz(const T&);
};
Niz<T,D>& Niz<T,D>::operator=(
Niz<T,D>::operator=(const
const Niz<T,D> &rn) {
for(brEl=0; brEl<rn.brEl; brEl++)
el[brEl]=rn[brEl];
return *this;
}
template <class T, int D>
bool Niz<T,D>::operator==(const
Niz<T,D>::operator==(const Niz<T,D>
Niz<T,D> &rn) {
if(brEl!=rn.brEl)
return false;
for(int i=0; i<brEl; i++)
if(el[i]!=rn.el[i])
return false;
return true;
}
template <class T, int D>
bool Niz<T,D>::operator!=(const
Niz<T,D>::operator!=(const Niz<T,D>
Niz<T,D> &rn) {
if(brEl!=rn.brEl)
return true;
for(int i=0; i<brEl; i++)
if(el[i]!=rn.el[i])
return true;
return
} false;
if(brEl<D) {
el[brEl]=t;
brEl++;
return true;
}
else
return false;
}
#include "niz.hpp"
int main() {
Niz<int,10> iNiz;
iNiz;
iNiz.insertNiz(1);
iNiz.insertNiz(2);
iNiz.insertNiz(3);
iNiz.insertNiz(4);
iNiz.insertNiz(5);
iNiz.insertNiz(6);
iNiz.printNiz();
return 0;
}
5.Napisati genericku klasu List(jednostrukospregnuta lista). Iz klase List izvesti klasu FIFO.
Napisati kratak test program.
#include <stdlib.h>
#include <iostream>
using namespace std;
bool read(int,
funkcija T&)const; //ocitani element se smesti
vraca uspelo-neuspelo smesti u T -
void clear();
};
#include "list.hpp"
cout<<endl<<endl;
}
#endif
// datoteka: ilt.cpp
#include "queue_lnk.hpp"
#include <iostream>
using namespace std;
int main(){a;
IntQueue
a.addToQueue(1);
a.addToQueue(2);
a.addToQueue(3);
cout<<"Queue: ";
printOut(a);
cout<<endl;
cout<<"--------------------"<<endl;
cout<<"Obavlja se uklanjanje iz reda"<<endl;
a.removeFromQueue();
cout<<"Queue: ";
printOut(a);
cout<<endl;
cout<<"--------------------"<<endl;
cout<<"Obavlja se uklanjanje iz reda"<<endl;
a.removeFromQueue();
cout<<"Queue: ";
printOut(a);
cout<<endl;
cout<<"--------------------"<<endl;
cout<<"Dodavanje u red broja 45"<<endl;
a.addToQueue(45);
cout<<"Queue: ";
printOut(a);
cout<<endl;
cout<<"--------------------"<<endl;
cout<<"Pokusaj samo citanja (ne i uklanjanja) iz reda"<<endl;
int ret;
if(a.readFromQueue(ret))
cout<<"Obavljeno citanje iz reda: "<<ret<<endl<<endl;
else
cout<<"Citanje nije obavljeno - Prazan red!!!"<<endl<<endl;
cout<<"--------------------"<<endl;
cout<<"Obavlja se uklanjanje iz reda"<<endl;
a.removeFromQueue();
cout<<"Queue: ";
printOut(a);
cout<<endl;
cout<<"--------------------"<<endl;
cout<<"Obavlja se uklanjanje iz reda"<<endl;
a.removeFromQueue();
cout<<"Queue: ";
printOut(a);
cout<<endl;
cout<<"--------------------"<<endl;
cout<<"Pokusaj samo citanja (ne i uklanjanja) iz reda"<<endl;
if(a.readFromQueue(ret))
cout<<"Obavljeno citanje iz reda: "<<ret<<endl<<endl;
else
cout<<"Citanje nije obavljeno - Prazan red!!!"<<endl<<endl;
cout<<"--------------------"<<endl;
cout<<"Dodavanje u red broja 100"<<endl;
a.addToQueue(100);
cout<<"Queue: ";
printOut(a);
return 0;