You are on page 1of 5

Дополнително, да се имплементира метод dostignuvanje, што го пресметува достигнувањето

на тимот на следниот начин: (15 поени)За клуб се пресметува како се пресметува како збир
од просекот на постигнати голови помножен со 5 и бројот на титули помножен со 50За
репрезентација - како збир од од просекот на постигнати голови помножен со 5 и 60/40/20
ако репрезентацијата освоила едно од првите три места на европско п./светско
п./олимпијада. (пр. просек = 30.0, место = {2,0,0}, резултат = 30 * 5 + 40 = 190)

float dostignuvanje(){ int bodovi=0; for(int i=0;i<3;i++){ if(rank[i]==1){ bodovi+=60; }else


if(rank[i]==2){ bodovi+=40; }else if(rank[i]==3){ bodovi+=20; } } return (prosek*5)+bodovi; }

Да се дефинира метод najdobar што на влез прима низа од покажувачи кон тимови и
нивниот број и го печати името и достигнувањето на најдобриот тим (тимот со најголемо
достигнување) (15 поени).

-void najdobar(TimRakomet **t,int n){ int max=-999; int maxi=0; for(int i=0;i<n;i++)
{ if(t[i]>dostignuvanje() > max){ max=t[i]->dostignuvanje(); maxi=i; } }

cena() - Ако називот на пијалокот е вино, тогаш основната цена се зголемува десет пати ако е
произведелно по 2010 година, односно 15 пати ако е произведено во или пред 2010 година.
За алкохолните пијалоци чија основна состојка е компир, основната цена се зголемува за 50
денари, а за оние чија основна состојка е јачмен, основната цена се зголемува за 70 денари.
За сите останати алкохолни пијалоци, цената се зголемува за 100 денари.

float cena(){ float cena = Pijalok::cena(); if(!strcmp("Vino", getNaziv())){ if(godina > 2010)
{ cena*=10; }else cena*=15; } else if(!strcmp("kompir", getOS())){ cena+=50; }else if(!
strcmp("jacmen", getOS())){ cena+=70; }else cena+=100; return cena; }

int primiAPijalok(char* naziv, char* osnovnaSostojka, float kolicina, float alkohol, int godina) – со
која се додава алкохолен пијалок со дадените информации во низата од алкохолни пијалоци.
Како резултат се враќ а бројот на алкохолни пиалоци во одделот. (5 поени)

void pecati(int alkohol); (5 поени) во која се печатат називот и цената на сите алкохолни
пијалоци во одделот со повисок степен на алкохол од проследениот, во следниот формат:

Povisok stepen na alkohol od [alkohol] imaat:

[nazivX cenaX]

[nazivY cenaY]

int primiAPijalok(char* naziv, char* osnovnaSostojka, float kolicina, float alkohol, int godina)
{ pijaloci[br_pijaloci] = new AlkoholenPijalok(naziv, osnovnaSostojka, kolicina, alkohol, godina);
br_pijaloci++; return br_pijaloci; }
void pecati(int alkohol){ cout << "Povisok stepen na alkohol od " << alkohol << " imaat:" << endl;
for(int i = 0; i < br_pijaloci; ++i){ if(pijaloci[i]->getStepen() > alkohol) cout << pijaloci[i]-
>getNaziv() << " " << pijaloci[i]->cena() << endl; }

За секоjа од класите да се напишат потребните коструктори, set и get методи (10 поени).

Да се обезбеди функција float cena() за пресметување на продажната цена на влезниците на


следниот начин (15 поени):За влезница за седење, цената се зголемува за 40% од основната
цена, ако влезницата е за седиште што се наоѓа под осми ред, односно, за 20% од основната
цена, ако седиштето се наоѓа меѓу осми и петнаесетти ред. Во сите други случаи продажната
цена на влезницата е еднаква на основната цена.За влезница за стоење, цената се зголемува
за 30% од основната цена, ако влезницата е за јужната трибина. Во сите други случаи
продажната цена на влезницата е еднаква на основната цена.

float cena(){float cena; if (red<8) return get_cena()+(get_cena()*40/100);else if


(red>=8&&red<=15)return get_cena()+(get_cena()*20/100); else

return get_cena(); };

Да се напише функциjа najmalaCena, што како аргумент прима низа од покажувачи кон
влезници и нивниот број и го печати натпреварот и цената на влезницата со најмала
продажна цена. (15 поени)

void najmalaCena(Vleznica **v,int n)( Vleznica *pom; int i=0; for(int j=i;j<n;j++)

if (v[i]->cena()>v[j]->cena()){ pom=v[i]; v[i]=v[j]; v[j]=pom; }

cout<<v[i]->get_natprevar()<<endl<<v[i]->cena();

за автомобилисти: ако бројот на трки е поголем од 10 стапката на данок е 15% од


заработката, инаку 10% од заработката.за мотоциклисти: ако е ветеран стапката на данок е
25% од заработката, инаку 20% од заработката.

float danok()

if(brTrki>10) return zarabotuvacka()*15.0/100;

else return zarabotuvacka()*10.0/100;

Да се напше надворешна функција soIstaZarabotuvachka која како аргументи прима низа од


покажувачи од класата Vocac, нивниот број, како и покажувач кон ојбект од возач и враќ а
како резултат бројот на возачи кои имаат иста заработувачка по трка со проследениот
возач.
int soIstaZarabotuvachka(Vozac **v, int n, Vozac *v1)

{ int vk=0; for(int i=0;i<n;i++) if(*v[i]==*v1)vk++;

return vk;}

метод float presmetajCena() за пресметување на цената на посебните видови звучници на


следниот начин: (10 поени)за TowerSpeaker - цената се зголемува за 10% од основната ако
звучникот има појачало и за 5% од основната ако видот на столбот е full за MonitorSpeaker -
цената се зголемува за 10% од основната ако звучникот има појачало и за 15% од основната
ако е наменет за во студио.

float presmetajCena() { float cena = osnovnaCena; if (daliImaPojacalo) cena += osnovnaCena * 0.10;

if (fullSemi) cena += osnovnaCena * 0.05; return cena;

Да се имплементира надворешна функција со потпис void lowestPrice(Speaker** s, int n)што


ќ е го отпечати звучникот со најмала цена. (10 поени)Во класата Speaker се чува целобројна
променлива која е заедничка за сите звучници и го означува данокот на додадена вредност
(ДДВ) кој се плаќ а за овие производи. Иницијалната вредност на оваа променлива е 18.

void lowestPrice(Speaker **s,int n){ int min=9999; int index; int i;

for(i=0;i<n;i++){if(s[i]->presmetajCena()< min){ min = s[i]->presmetajCena();index=i;}}

cout<< s[index]->model <<" nema pojachalo "<<min<< endl;}

За работа со оваа променлива да се имплементираат следните статички методи: (5 поени)

void vkupnoDDV(Speaker** s, int n) која ја печати вкупната цена што треба да се плати за сите
звучници и вкупниот ДДВ.

static void vkupnoDDV(Speaker** s, int n)

float VkupnaCena=0; float ddv=0; for(int i=0;i<n;i++) VkupnaCena += s[i]->presmetajCena();

for(int d=0;d<n;d++) ddv += s[d]->presmetajCena()*s[d]->getDDV()/100.0;

cout<<"Vkupna cena: "<<VkupnaCena<<endl;

cout<<"Vkupno DDV: "<<ddv<<endl;

}
Ако се направи обид за додавање на зделка со негативна вредност на дополнителниот
попуст, треба да се генерира исклучок NegativnaVredniost. (10 поени) using namespace std;

class OutOfBoundException{

public: void msg(){

cout<<"Negativna vrednost"<<endl; }

Функција najprodavaniZdelki во која се печатат сите зделки за кои се продадени повеќ е


купони од просечниот број на продадени купони од сите зделки во низата (10 поени)

void najprodadeniZdelki(int povekjeKuponi){

int vkupno=0;for(int i=0;i<broj;i++){ vkupno+=zdelki[i]->getProdKuponi();


if(povekjeKuponi>vkupno){ cout<<zdelki[i]<endl; }

Дополнително за изведените класи да се дефинираат методи price() и rentalPrice(int days)


кои ќ е треба соодветно да ги пресметуваат цените за купување односно изнајмување на
камерата за одреден број на денови. Цените на камерите се пресметуваат на следниот начин
(15 поени):

const float price() const {float total = 100 + (resolution * 20); if (raw) return total + 50; return
total; }

const float rental_price(int days) const { float total = ((1 / float(100)) * price());

if (days > 7) return total - (20 / float(100)) * total; return total; }

За PhotoCamera цената на купување (изразена во евра) е: 100 + MP*20 каде MP e бројот на


мегапиксели.Доколку камерата поддржува работа со RAW формат, тогаш цената се
зголемува за 50 евра.

const float price() const { float total = resolution * 80; if (seconds > 3600)

return total + (40 / float(100)) * total; return total; }

const float rental_price(int days) const { float total = ((1 / float(100)) * price());if (days > 7)

return total - (20 / float(100)) * total; return total; }

За VideoCamera основната цената на купување (изразена во евра) е: MP*80 каде MP e бројот


на мегапиксели. Доколку камерата поддржува снимање на видеа подолги од 60 минути,
цената се зголемува за 40%.Филмската камера има почетна цена од 50000 евра, а доколку
камерата поддржува снимање со брзина поголема од 30fps,за секој fps преку 30, цената се
зголемува за 5000.
Цената на изнајмување на PhotoCamera и VideoCamera по ден е една стотина (1/100) од
цената на камерата.Доколку камерата се изнајмува за повеќ е од 7 дена, тогаш цената се
намалува за 20%.

const float price() const { float total = 50000; if (fps > 30) { return total + ((fps - 30) * 5000); }

return total; }

const float rental_price(int days) const { float total = 500 * days; /*if (fps == 60) return 2 * total;*/

return total; }

float production(Camera **c, const int num, const int days) { float total = 0; for (int i = 0; i < num; +
+i) total += c[i]->rental_price(days); return total;}

char *mostExpensiveCamera(Camera **c, int num) { Camera *max = c[0]; for (int i = 1; i < num; ++i)

if (*max < *c[i])max = c[i]; return max->getModel();}

You might also like