Professional Documents
Culture Documents
ispit
10. siječanj 2003.
1. (25 bodova)
Za zadanu klasu:
class point {
int x, y;
public:
point(int x, int y) : x(x), y(y) {}
};
napišite operator- (vraća centralno simetričnu točku) kao funkciju član i operator<< kao globalnu
funkciju koja ispisuje točku u obliku (x, y).
2. (35 bodova)
Napišite interface za geometrijski lik te implementaciju za krug i kvadrat.
U programu u listu pointera na lik stavite nekoliko objekata i pozovite funkciju koja ispisuje ukupnu površinu
svih likova. Obavezno obrisati sve alocirane objekte.
3. (40 bodova)
Napišite program koji sa standardnog ulaza učitava cijele brojeve i stavlja ih u vektor dok se ne unese nula.
Tada se na standardni izlaz ispišu svi brojevi sortirani od većeg ka manjem.
Objektno orijentirano programiranje
rješenja ispita
10. siječanj 2003.
1.
class point {
int x, y;
public:
point(int x, int y) : x(x), y(y) {}
2.
#include <iostream>
#include <list>
using namespace std;
int main(){
list<shape*> sl;
sl.push_back(new circle(1.5));
sl.push_back(new square(4.));
print_total_area(sl);
for(list<shape*>::iterator it = sl.begin(); it != sl.end(); ++it)
delete *it;
}
3.
#include <iostream>
#include <algorithm>
#include <vector>
#include <functional>
int main(){
using namespace std;
vector<int> nums;
while(true){
int n;
cin >> n;
if(0 == n)
break;
nums.push_back(n);
}
sort(nums.begin(), nums.end(), greater<int>());
copy(nums.begin(), nums.end(), ostream_iterator<int>(cout, "\n"));
}