C/C++

M

Mr.InF3ction

Гостин
sidel

Како мислиш што значат буквите ? Буква си е буква, има такво знаечење како што програмерот ќе сака да има. Пр кога ги ппрограмирале функциите како printf, scanf буквите си имаат некое значење за тоа кој податочен тип печати или чита, s-string, c-char, d - decimal number, f - floating point number итн..
Не сфатив бш дали прашањето ти за ова што спомнав или нешто сосема трето...
 
Член од
5 јануари 2008
Мислења
2.801
Поени од реакции
3.053
1.(50 поени)Да се напише класа Lek кпја ппишува даден лек пд фармацевската индустрија. За секпј лек се знае иметп на лекпт (максимум 30 знаци), брпј на таблети вп пакуваое (цел брпј), милиграми пп таблета (цел брпј), преппрачана дпза дневнп (брпј на таблети), ph-фактпр (реален брпј). За класата да се пбезбедат кпнструктпри и деструктпри. Да се препптпвари пператпрпт++ за згплемуваое на милиграмите пп таблета за 1. Да се препптпвари пператпрпт += за згплемуваое на милиграмите пп таблета за пдредена вреднпст. Да се препптпвари пператпрпт == за сппредуваое на лекпви така штп лекпвите се кпмпатибилни дпкплку ph-фактпрпт им се разликува за најмнпгу 5. Да се препптпвари пператпрпт<<за печатеое на екран.
Да се напише класа Apteka кпја ќе има инфпрмации за иметп на аптеката (низа пд 50 знаци), листа (динамички алпцирана) пд Lek-пви кпи се на распплагаое вп аптеката, какп ибрпј на различни лекпви вп аптеката. За класата да се пбезбедат кпнструктпри и деструктпри. Да се препптпвари пператпрпт += за дпдаваое на нпв лек вп аптеката (да се направи прпверка дали лекпт веќе ппстпи вп аптеката сппред иметп на лекпт). Да се препптпвари пператпрпт -= кпј гп брише лекпт пд листата на лекпви (лекпт се дпбива какп десен аргумент на пперацијата)

Надвпр пд класите да се напише функција kompatibilnost кпја какп аргумент дпбива аптека и лек, а на екран ќе ги испечати сите oние лекoви што ги има во аптеката и се компатибилни со тој лек (ph-факторот им се разликува најмногу за 5).


Како да ја направам функцијава со болдов? нешо вака..

PHP:
void kompatibilnost(apteka & x,lek & x)
{
  .... for()
      {
            if... (niza.getneso.. i da go iskoristam operatorot == od prethodno za ph ?)
??
?
 
M

Mr.InF3ction

Гостин
Се сеќавам имаше една слична задача со чај...па еве го тоа делот што ти треба во условот..

PHP:
 bool operator !=(const Caj &c){
      if((kofein > c.kofein ? kofein : c.kofein) - (kofein > c.kofein ? c.kofein : kofein) <= 3){
        return true;
      }
        return false;
    }
Само на крај ќе ставиш петка. Инаку можеш и на друг начин ако ова ти изгледа лошо, прво најди кој е поголем, помал број во други променливи и после само поголем- помал < 5 , или со абсолутна вредност..сеедно има еден куп начини.

А циклусот ќе тераш да иде од 0 до бројот на лекови што се наоѓаат во фирмата и ќе споредиш вака :
apteka.lek.getPhFaktor();
lek.getPhFactor();
 
Член од
5 јануари 2008
Мислења
2.801
Поени од реакции
3.053
Мене ме буни вика која како аргумент добива аптека и лек, а на екран ќе ги испечати сите оние лекови кои се компатибилни со тој лек.
а тоа нели би изгледало вака ?
...
void kompatibilnost(apteka & x,lek & x)
 
M

Mr.InF3ction

Гостин
Да, значи функцијата не е дел од класата и затоа како влезен аргумент мора да има аптека, за да знае од која аптека да ги листа лековите..и лек за да знае со кој лек да ги споредите лековите од таа аптека. :) И на задачата вика треба да се преоптовари за операторотт << па ако се исполни условот само ќе ставиш cout << x.lek ;
 
Член од
5 јануари 2008
Мислења
2.801
Поени од реакции
3.053
Да се напише класа Sportist, којa ќе содржи
o Име на спортистот (низа од 20 знаци),
o број на дрес
Во класата да се дефинираат конструктор со влезни аргументи соодветни на приватните променливи на класата copy конструктор деструктор get и set функции функција за печатење на спортистот.
Дополнително да се напише класа Odbojkar, која ќе наследува од класата Sportist и во која дополнително ќе се чуваат информации за:
o позиција на која игра (цел број од 1 до 6)
o дали е капитен (bool променлива)
Во класата да се дефинираат конструктор со влезни аргументи соодветни на приватните променливи на класата copy конструктор деструктор get и set функции функција за печатење на одбојкарот. Да се преоптовари операторот == за споредба на двајца одбојкари според нивниот дрес.

На крај да се напише класа OdbojkarskiTim, која ќе содржи:
o Име на тимот (низа од 30 знаци)
o Низа од одбојкари (динамички алоцирана)
o Број на одбојкари во тимот
-Во класата да се дефинираат Default конструктор
конструктор со параметри што одговараат на сите атрибути на класата деструктор функција за печатење на целиот тим - Да се преоптовари операторот += за додавање на нов одбојкар во тимот. Да се внимава дали неговиот дрес е веќе зафатен. Во спротивно да се испечати соодветна порака. Покрај тоа, не треба да се дозволи додавање на втор капитен на тимот, ако истиот веќе има капитен.
- Да се напише main функција во која ќе се тестираат имплементираните функции во класите.

Јас го напишав кодот ама незнам како да ја тестирам програмата. Ај ако сака некој нека го напише main и да работи да видам како ќе изледа тестирањето.

PHP:
#include<iostream>
#include<cstring>
using namespace std;
 
class Sportist
{
    private:
    char ime[20];
    int dres;
    public:
    Sportist (char *ime1,int dres1)
    {
        strcpy(ime,ime1);
        dres=dres1;
    }
    Sportist (const Sportist & x)
    {
        strcpy(ime,x.ime);
        dres=x.dres;
    }
    ~Sportist (){}
 
    char *getime(){return ime;}
    int get dres(){return dres;}
    void setime(char *ime1){strcpy(ime,ime1);}
    void setdres(int dres1){dres=dres1;}
 
    void pecatiSportist()
    {
        cout<<"Ime:"<<ime<<"dres:"<<dres<<endl;    //nemash return vo void be kopuk!
    }
};
 
class Odbojkar:public Sportist
{
    private:
    int poz;
    bool kap;
    public:
    Odbojkar (char *ime1, int dres1,int poz1,bool kap1):Sportist(ime1,dres1)
    {
        poz=poz1;
        kap=kap1;
    }
    Odbojkar (const Odbojkar & x):Sportist(x)
    {
        poz=x.poz;
        kap=x.kap1;
     
    }
    ~Odbojkar (){}
    int getpoz(){return poz;}
    bool getkap(){return kap;}
    void setpoz(int poz1){poz=poz1;}
    void setkap(bool kap1){kap=kap1;}
 
    void pecatiOdbojkar()
    {
      void pecatiSportist();
        cout<<"Pozicija:"<<poz<<"Dres:"<<dres<<endl;
    }
    bool operator ==(Odbojkar & x)
    {
        return (getdres()==x.getdres())
    }
 
};
class OdbojkarskiTim
{
    private:
    char ime[30];
    Odbojkar *niza;
    int brod;
    public:
    OdbojkarskiTim(char *ime1,Odbojkar *niza1, int brod1)
    {
        strcpy(ime,ime1);
        niza=new Odbojkar[niza1];
        for(int i=0;i<brod;i++)
        niza[i]=niza1[i];
        brod=brod1;
    }
    ~OdbojkarskiTim(){delete [] niza;}
    void pecatiTim()
    {
        pecatiOdbojkar();
        for(int i=0;i<brod;i++)
        cout<<niza[i].pecatiOdbojkar()<<endl;
     
    }
    OdbojkarskiTim & operator +=(Odbojkar & x)
    {
        for(int i=0;i<brod;i++)
        {
        If(x.getdres()==niza[i].getdres())
        {
            cout<<"Negoviot dres e zafaten"<<endl;
            return *this;
        }
        if(niza[i].getkap()==true && x.getkap()==true)
        return *this;
     
    }
    Odbojkar *pom;
    pom=new Odbojkar[brod+1];
    for(int i=0;i<brod;i++)
    pom[i]=niza[i];
    pom[brod]=x;
    delete [] niza;
    niza=pom;
    brod++;
    return *this;
 
 
}
};
int main()
{
 
}
 
M

Mr.InF3ction

Гостин
Па у принцип тестирањето треба да е најлесноиот дел кога креираш програма а не знам зошто доста колеги од факс се мачат со тоа...
Значи за било која класа креираш објект, повикуваш функциите што си ги куцал..и то.
Еве пример...а и средив многу грешки во синтакса...изгледа те мрзел да компајлираш барем еднаш :icon_lol:
PHP:
#include<iostream>
#include<cstring>
using namespace std;
 
class Sportist {
private:
    char ime[20];
    int dres;
public:
    Sportist() {
    }
    Sportist (char *ime1,int dres1) {
        strcpy(ime,ime1);
        dres=dres1;
    }
    Sportist (const Sportist & x) {
        strcpy(ime,x.ime);
        dres=x.dres;
    }
    ~Sportist () {}
 
    char *getime() {
        return ime;
    }
    int getDres() {
        return dres;
    }
    void setime(char *ime1) {
        strcpy(ime,ime1);
    }
    void setdres(int dres1) {
        dres=dres1;
    }
 
    void pecatiSportist() {
        cout<<"Ime:"<<ime<<"dres:"<<dres<<endl;    //nemash return vo void be kopuk!
    }
};
 
class Odbojkar:public Sportist {
private:
    int poz;
    bool kap;
public:
    Odbojkar():Sportist() {
 
    }
    Odbojkar(char *ime1, int dres1,int poz1,bool kap1):Sportist(ime1,dres1) {
        poz=poz1;
        kap=kap1;
    }
    Odbojkar (const Odbojkar & x):Sportist(x) {
        poz=x.poz;
        kap=x.kap;
 
    }
    ~Odbojkar () {}
    int getpoz() {
        return poz;
    }
    bool getkap() {
        return kap;
    }
    void setpoz(int poz1) {
        poz=poz1;
    }
    void setkap(bool kap1) {
        kap=kap1;
    }
 
    void pecatiOdbojkar() {
        pecatiSportist();
        cout << "Pozicija:"<<this->poz<<"Kap:"<<this->kap<<endl;
    }
 
    bool operator ==(Odbojkar & x) {
        return (getDres()==x.getDres());
    }
 
};
class OdbojkarskiTim {
private:
    char ime[30];
    Odbojkar *niza;
    int brod;
public:
    OdbojkarskiTim(char *ime1,Odbojkar *niza1, int brod1) {
        strcpy(ime,ime1);
        niza = new Odbojkar[brod1];
        for(int i=0; i<brod1; i++)
            niza[i]=niza1[i];
        brod=brod1;
    }
    ~OdbojkarskiTim() {
        delete [] niza;
    }
    void pecatiTim() {
        for(int i=0; i<brod; i++)
            niza[i].pecatiOdbojkar();
 
    }
    OdbojkarskiTim & operator +=(Odbojkar & x) {
        for(int i=0; i<brod; i++) {
            if(x.getDres()==niza[i].getDres()) {
                cout<<"Negoviot dres e zafaten"<<endl << endl;
                return *this;
            }
            if(niza[i].getkap()==true && x.getkap()==true) {
                cout << "Timot veke ima kapiten" << endl << endl;
                return *this;
            }
        }
        Odbojkar *pom;
        pom=new Odbojkar[brod+1];
        for(int i=0; i<brod; i++)
            pom[i]=niza[i];
        pom[brod]=x;
        delete [] niza;
        niza=pom;
        brod++;
        return *this;
 
 
    }
};
int main() {
    Odbojkar sportisti[5] = {Odbojkar("sportist",1,1,false), Odbojkar("sportist2",2,2,true), Odbojkar("sportist3",3,3,false), Odbojkar("sportist4",4,4,false), Odbojkar("sportist5",5,5,false)};
    OdbojkarskiTim tim("Tim", sportisti, 5);
    tim.pecatiTim();
    Odbojkar odb("NovIgrac",1,1,false);
    Odbojkar odb2("NekoJPameten",13,31,true);
    cout << endl << endl << "Dodavanje nov igrac vo timot " << endl << endl;
    tim+=odb;
    tim.pecatiTim();
 
    cout << endl << endl << "Dodadovme nov igrac vo timot " << endl << endl;
    tim+=odb2;
 
    tim.pecatiTim();
}
 
Член од
5 јануари 2008
Мислења
2.801
Поени од реакции
3.053
Odbojkar():Sportist() {} што е ова во после public vo Odbojkar?

ова .. cout << "Pozicija:"<<this->poz<<"Kap:"<<this->kap<<endl;
this-> мора да се пишува? или исто е

Се мачам сега ги проучувам постепено грешките од стариот код,
 
M

Mr.InF3ction

Гостин
Odbojkar():Sportist() {}
Odbojkar() е конструктор на класата Odbojkar. Бидејќи класата Odbojkar наследува од класата Sporisti при повикување на конструкторот на Odbrojkar треба да се повика и конструкторот на класата од која што наследува т.е Sportisti. затоа што во класата Odbojkar има информации што се од друга класа па и тоа треба да се креира
Ти советувам да читнеш материјали ако имаш од предавања, ако не од тука читни. добро објаснето е се,

А тоа this и тоа го има на предавања или на линкот што е погоре, но накратко this покажува на тековниот објект во кој што работиш.
Пр во += операторот на крај враќаш *this тоа значи врати го тековниот објект, објектот што ја повикал таа функција. Друго негде што се користи ..пример кога некоја класа има променлива ime и на конструктор ставаш влезен аргумент Ime1 за да се разликуваат променливите и ќе напишеш ime = ime1 но што ако сакаш и тоа да се вика ime,,,и во телото на функцијата ќе имаш ime =ime и нема да знаеш за кое име се однесува, дали од класата, или аргумент од функцијата, е затоа се користи this, што значи барај ја таа променлива во класата и тогаш можеш да напишеш this-ime = ime , каде што this->ime е променлива што е дел од класата, a ime е влезниот аргумент за функцијата.

И да прашањето да одговорам. не, не мора да се користи но препорачувам да ти стане навика да го користиш, пр во конструктор не ставај ime1, dres1 итн туку директно ставај ime, prezime, dres итн и после ќе користиш this ( -> стрелката мора ваљда знаеш од Ц ова со покажувачи ). по прегледен е кодот, вака ime1 не знам дали е привремена променлива, влез од функција или е податок од класата...
 
M

Mr.InF3ction

Гостин
marija_p


Како што можеш да видиш значи сума, почнвува од M (твојот случај 1) и иде до N твојот случај 'i'.(за циклусот вака нешто for(int suma1 = 1; suma1 < i; suma++ ) и доле ќе пресметаш тоа што треба..

Другото :

Производ, исто како за сума, само што ќе множиш внатре во цикслуот
Кодот ќе изгледа нешто вака :
Код:
float rezulta, rez1,rez2;
rezuktat = 1;
for( /* toa sto rekov gore */){
    rez1 = 0;
    for(/* za suma */){
    rez += /* izrazot tuka*/
    }
    rez2 = 0;
for(/* za suma */){
    rez2 += /* izrazot tuka*/
    }
  rezultat = rezultat * rez1/rez2
}
 
Член од
5 јануари 2008
Мислења
2.801
Поени од реакции
3.053
Имам два кода.
Прашањата се внатре во кодот.

Во првиот заглавувам кај virtuel ми наоѓа грешка која не можам да ја лоцирам...

Ако може некој да ми помогне сегде каде што имам грешка во кодотovite да ми укаже. (najcesto e sintaksa i kaj funkciite)

еве го тектот на првиот код:


Да се креира хиерархија на класи за репрезентација на музичко и сликарско уметничко дело. За потребите на оваа хиерархија да се дефинира апстрактна класа UmetnickoDelo од која ќе бидат изведени двете класи MuzickoDelo и SlikarskoDelo. Во класата UmetnickoDelo се чуваат податоци за авторот на уметничкото дело (динамички алоцирана низа од знаци) и цената на уметничкото дело (float).
За класата MuzickoDelo дополнително се чува годината кога е направено делото (int).
За класата SlikarskoDelo дополнително се чува степенот на оштетеност на делото во проценти (int).
За секој објект од двете изведени класи треба да бидат на располагање следниве методи:
- Конструктор со aргументи кои одговараат на податочните членови
- Copy конструктор
- Set и get методи
- Метода за пресметување на цената на уметничките дела
o Иницијалната цена на музичкото дело се зголемува за 10% доколку тоа е изработено во 17 век.
o Иницијалната цена на сликарското дело процентуално се намалува за степенот на неговата оштетеност (пр. Ако процентот на оштетеност на делото е 30% неговата иницијална цена се намалува за 30%).
- Проптоварување на операторот ==, кој ги споредува уметничките дела според нивната цена
- Преоптоварување на операторот << за печатење на сите податоци за уметничките дела
Сите променливи во класите се чуваат како приватни.

PHP:
#include<iostream>
#include<cstring>
using namespace std;
 
class UD
{    private:
        char *pod;
        float cena;
    public:
        UD(char *pod1,float cena1)
        {
            pod=new char[strlen(pod1)+1];
            strcpy(pod=pod1);
            cena=cena1;
        }
        UD(const UD & x)
        {
            pod=new char[strlen(x.pod)+1];
            strcpy(pod=x.pod);
            cena=x.cena;
        }
        char *getpod(){return pod;}
        float getcena(){return cena;}
        void setpod(char *pod1){
        pod=new char[strlen(pod1)+1];
        strcpy(pod,pod1);
          }
          void setcena(float cena1){cena=cena1;}
 
          virtual float cena()= 0;  // sto e tuka greshkata :@ ??
 
          friend bool operator ==(UD & a,UD & b)
          {
              return (a.cena()==b.cena());  //cena se povikuva kako funkcija
          }                          //nemoj slucajno getcena da si stavil
 
          friend ostream & oprerator<<(ostream & out,UD & x)
          {
              out<<"podatoci:"<<x.pod<<"cena:"<<x.cena<<endl;  //vnimavaj na X.pod.. na X
              return out;
          }
};
classMD:public UD
{    private:
        int god;
    public:
    MD(char *pod1,float cena1,int god1):UD(pod1,cena1)
    {
        god=god1;
    }
    MD(const MD & x):UD(x)
    {
        god=x.god;
    }
    int getgod(){return god;}
    void setgod(int god1){god=god1;}
 
    float cena()
    {
        if(god<1700 && god>1600)
          getcena()+=((getcena()/100)*10);
          return getcena();        // dali cenata se menuva vo nejzinata adresa?
                                //ili samo ja zemame kako kopija?
            //zatoa sto ako tuka return getcena i ostane cena vo private smeneta togas
            //sleden pat od drugata klasa koga kje povikame cena nema da bide taa tuku ovaa.
 
    }
    friend ostream & operator<<(ostream & out,MD & x)
    {
        out<<(UD)x;
        out<<"godina"<<x.god;
        return out;
    }
 
 
 
};
class SD:public UD
{
    private:
        int oshtetenost;
    public:
    SD(char *pod1,float cena1,int o):UD(pod1,cena1)
    {
        oshtetenost=o;
    }
    SD(const SD & x):UD(x)
    {
        oshtetenost=x.o;
    }
    int getoshtetenost(){return oshtetenostl;}
    void setoshtetenost(int o){oshtetenost=o;}
 
    float cena()
    {
        return (getcena()-((getcena()/100)*oshtetenost));
 
    }
    friend ostream & operator<<(ostream & out,SD & x)
    {
        out<<(UD)x;
        out<<"oshtetenost:"<<x.oshtetenost<<endl;
        return out;
    }
 
};
int main()
{
    return 0;
}

Eве го текстот за вториот код. (место 'о' ми го копира со 'п' ама се разбира)

2.(50 поени)Да се напише класа Osiguruvanje кпја ќе спдржи инфпрмации за пплисите издадени пд една псигурителна кпмпанија. За секпе псигуруваое се впдат инфпрмации за: иметп на псигуреникпт (низа пд 30 знаци), цената на премијата штп се плаќа за псигуруваое (реален брпј) и земјите за кпи штп важи псигуруваоетп (динамички алпцирана низа пд динамички алпцирани низи пд знаци). За класата да се пбезбеди кпнструктпр, copy кпнструктпр и (чисто виртуелна)функција за пресметка на сппдветната вкупна премија штп треба да се плати .
Од пваа класа да се изведат класи за ппишуваое на патничко осигурување (Patnicko) и каско осигурување (Kasko).
За патничките осигурувањае пптребенбрпјпт на паспш на псигуреникпт (низа пд 8 знаци), сумата дпплатена за ппсебни услуги (акп не се кпристат ппсебни услуги сумата е 0) и евентуалнипт пппуст изразен вп прпценти (реален брпј). При пресметуваоетп на вкупната премија, на пснпвната сума се дпдава сумата за ппсебни услуги, а пптпа се пресметува пппустпт.
За каско осигурувањата се чува регистарскипт брпј на автпмпбилпт (низа пд 8 знаци), мпделпт на впзилп (низа пд 30 знаци)и старпста на впзилптп изразена во месеци (цел брпј). При пресметуваое на вкупната премија, сумата кпја треба да се плати се згплемува за 3% на секпи 5 години старпст на впзилптп.
Да се препптпвари пператпрпт <за сппредба на вкупната премија кпја треба да се плати за да рабпти сп псигуруваоа пд билп какпв тип (и патнички и каскп). Пптпа да се напише функција кпја за дадена низа пд псигуруваоаќе гп испечати псигуреникпт кпј платил најгплема премија.

PHP:
#include<iostream>
#include<cstring>
using namespace std;
 
class Osiguruvanje
{
    private:
        char ime[30];
        float prem;
        char **niza;
        int br;
    public:
        Osiguruvanje(char *ime1,float prem1,char **niza1,int br1)
        {
            strcpy(ime,ime1);
            prem=prem1;
            niza=new char*[br1];
            for(int i=0;i<br1;i++)
            {
                niza[i]=new char[strlen(niza1[i])+1];
                strcpy(niza[i],niza1[i]);
            }
            br=br1;
        }
        Osiguruvanje(const Osiguruvanje & x)
        {
            strcpy(ime,x.ime);
            prem=x.prem;
            niza=new char*[x.br];
            for(int i=0;i<x.br;i++)
            {
                niza[i]=new char[strlen(x.niza[i])+1];
                strcpy(niza[i],x.niza[i]);
            }
            br=x.br;
        }
        virtual float premija()=0;
 
        friend bool operator<(Osiguruvanje & a, Osiguruvanje & b)
        {
            return (a.premija()<b.premija());
        }
      void pecati(Osiguruvanje **niza, int br)
        {
            for(int i=0;i<br;i++)
            {
                //koja najgolema premija da se ispecati?
            }
        }
 
};
class Patos:public Osiguruvanje
{
    private:
    char pasos[8];          //sekogash imaat konstruktor i copy constr.
    int suma;
    float popust;
    public:
    Patos(char *ime1,float prem1,char **niza1,int br1,char *pasos1,int suma1,float popust1):Osiguruvanje(ime1,prem1,niza1,br1)
    {
        strcpy(pasos,pasos1);
        suma=suma1;
        popust=popust1;
    }
    Patos(const Patos & x):Osiguruvanje(x)
    {
        strcpy(pasos,x.pasos);
        suma=x.suma;
        popust=x.popust;
 
    }
    float premija()
    {
        float vk;
        if(suma!=0)
        {
        vk=getprem()+suma;
        return ( vk-((vk/100)*popust));  // go odzemash popustot
    }
    return (getprem() - ((getprem/100)*popust));
}
};
class Kasko:public Osiguruvanje
{
    private:
          char reg[8];
          char model[30];
          int star;
    public:
    Kasko(char *ime1,float prem1,char **niza1,int br1,char *reg,char *model1,int star1):Osiguruvanje(ime1,prem1,niza1,br1)
    {
        strcpy(reg,reg1);
        strcpy(model,model1);
        star=star1;
    }
    Kasko(const Kasko & x):Osiguruvanje(x)
    {
        strcpy(reg,x.reg);
        strcpy(model,x.model);
        star=x.star
    }
    float premija()
    {
        int god=(star/(5*12))
        for(int i=0;i<god;i++)
          getprem()=getprem()*(3/100);
          return getprem();
 
    }
};
int main()
{
    return 0;
}
            //sto znacese toa deka site promenlivi se privatni?
 
M

Mr.InF3ction

Гостин
Out Of Reality

На првиот код колку што видов не ти работи затоа што горе имаш float cena; променлива а подоле virtual float cena() = 0; и сега компајлерот дава грешка пошти има 2 променливи со исто име, не знам зошто не преознава дека е функција, секој случај смени името на функцијата cenaFunk или што и да прави таа функција.
А други грешки нема освен тоа што си пишал oprerator или strcpy(nesto = nesto) ,,,ама тоа изгледа при брзо куцање :)
А за второто имаш грешки од типот фали точка запирка, си утнал името на функцијата итн.
Изгледа набрзина сакаш да положиш или научиш за ц++ но такви грешки не би требало да правиш, а посебно и сам може да ги средиш :)
 
Член од
5 јануари 2008
Мислења
2.801
Поени од реакции
3.053
Out Of Reality

На првиот код колку што видов не ти работи затоа што горе имаш float cena; променлива а подоле virtual float cena() = 0; и сега комапјлевор дава грешка пошти има 2 променливи со исто име, не знам зошто не преознава едка е функција, секој случај смени името на функцијата cenaFunk или што и да прави таа функција.
А други грешки нема освен тоа што си пишал oprerator или strcpy(nesto = nesto) ,,,ама тоа изгледа при брзо куцање :)
А за второто имаш грешки од типот фали точка запирка, си утнал името на функцијата итн.
Изгледа набрзина сакаш да положиш или научиш за ц++ но такви грешки не би требало да правиш, а посебно и сам може да ги средиш :)
ужасно ми е досаден предметов и не ми е предизвик, една задача ја пишувам цела вечер на секој ред код правам пауза од пола саат, и да ме мрзи МНОГУ да го куцам. :place:

btw во првиот код ова ми беа прашањата

/ dali cenata se menuva vo nejzinata adresa?
ili samo ja zemame kako kopija?
zatoa sto ako tuka return getcena i ostane cena vo private smeneta togas
//sleden pat od drugata klasa koga kje povikame cena nema da bide taa tuku ovaa.


ве

И во вториот код ако може само функцијата што ми фали на почеток.
PHP:
void pecati(Osiguruvanje **niza, int br)
        {
            for(int i=0;i<br;i++)
            {
                //koja najgolema premija da se ispecati? како е кодот?
            }
        }
(последно барање од задачата)

и што значи тоа на крај што вика "site promenlivi se privatni?" во задачите? Треба да пазам на нешо или онака само ?
 
M

Mr.InF3ction

Гостин
Знам колку се досадни задачиве, но шематски се.
getCena враќа број, не враќа адреса или покажувач за после да можеш да смениш тоа што има во таа адреса. Пример имаш цената е 50 , тоа ќе ти врати 50, и ти после пишуваш: 50 = +=50 *100/10 или што и да е..неа смисла, можеш да напишеш setCena( getCena()+getCena() * 50 itn);...тогаш резултатот од пресметката ќе се запише во цена.
Сите променливи да се приватни значи дека сите променливи треба да се ставас во private: и да имаш сет и гет методи за сите :) Не треба да пазиш за тоа туку по дифолт така пишувај ги секад, променливи private, функции public :
И тоа со функцијата не сфатиш баш што бара?
 

Kajgana Shop

На врв Bottom