C/C++

Член од
10 јули 2012
Мислења
87
Поени од реакции
54
Toa значи декаhttp://codepad.org/wcbQQ4KL овој код ми е точен? (печатењето?)

ova so операторот == не го сфатив баш дали е точно како едниот код или како другиот .. тоа ме интересира, како изгледа тоа во код зошто вака на објаснување многу слабо ми се разјаснува. Ако сакаш стави го во еден од кодовите како треба да биде. и paste :\

Ako делот со преоптоварување на == во задачава е точен. Тогаш мислам дека ми е јасно.

Само во задачава кај == операторот употребува get.. а се наоѓа во истата класа :\ точно е ?
Вака со печатењето е веќе подобро ;)... за виртуелниот оператор.. сакаш да го користиш за сите под-класи, а незнаеш кој објект ќе го направи повикувањето. Го дефинираш како виртуелен во базовата класа со атрибут покажувач кон базовата класа, преку кого можеш да имаш достап до сите под класи. За овој случај во класата Disc.. Добиваш достап до сите функции, фактички и до елементите. Тебе ти треба getProizvoditel(). Со неа го земаш стрингот и го споредуваш. Вака некако би било.
Код:
Disc
{
    char* getProizvoditel();
public:
    virtual bool operator==(Disc *ob)= 0;
};
 
class CD : Disc
{
    bool operator==(Disc *ob)
    {
        return strcmp(this->getProizvoditel(), ob->Getproizvoditel());
    }
};
Истото го правиш и во класата BlueRay и тоа ќе е :)
 
Член од
5 декември 2009
Мислења
439
Поени од реакции
66
Шо му фали шо не го компајлира? :s conflycting type for 'func' вика

Код:
#include<stdio.h>
int main ()
{
    int n;
    float x,rez;
    scanf("%d",&n);
 
    for(x=-4.0;x<4.0;x+=0.1)
  {
    rez=0;
    if(x>=0)
    {
    rez= x + func(x,n)/n + func(x,n)*func(x,2)/(n+2);
    }
    else
    {
    rez= -(func(x,n)/x)/(n-1) + func(x,n)*x/(n+1);
    }
  printf("%f\t%f\n",x,rez);
  }
}
float func(float x,int n)
{
    int i;
    float stepen=1.0;
    for(i=1;i<=n;i++)
    {
        stepen*=x;
    }
    return stepen;
}
primerrrrrrrrrrrr.jpg
со функција степен да пресметам остатоко во main то ми е целта.
 
M

Mr.InF3ction

Гостин
Функцијата стави ја над main или над main напиши float func(float, int); (декларираш дека има таква функција некаде подоле) за програмава да знае дека постои таква функција
 
M

Mr.InF3ction

Гостин
naturebum

PHP:
#include <iostream>
#include <string.h>
using namespace std;
 
class TelefonskiBroj
{
private:
    char *ime;
    int prefiks;
    int telefonski_broj;
public:
    TelefonskiBroj()
    {
        ime = NULL;
        prefiks = -1;
        telefonski_broj = -1;
    }
    TelefonskiBroj(char *i,int p, int t)
    {
        ime=new char[strlen(i)+1];
        strcpy(ime,i);
        prefiks = p;
        telefonski_broj=t;
    }
    int getBroj()
    {
        return telefonski_broj;
    }
    int getPrefiks()
    {
        return prefiks;
    }
 
    TelefonskiBroj(const TelefonskiBroj &t)
    {
        prefiks=t.prefiks;
        telefonski_broj=t.telefonski_broj;
        ime= new char [strlen(t.ime)+1];
        strcpy(ime,t.ime);
 
    }
 
    friend ostream & operator <<(ostream & out, TelefonskiBroj &t)
    {
        out<<"Telefonski broj: "<< "0" << t.getPrefiks() << " - " <<t.getBroj()<<" Ime:"<<t.ime<<endl;
    }
    bool operator != (TelefonskiBroj t)
    {
        return !(prefiks == t.getPrefiks() && telefonski_broj == t.getBroj());
    }
 
 
 
    ~TelefonskiBroj()
    {
        delete[]ime;
    }
 
 
};
 
class Razgovor
{
private:
    TelefonskiBroj povik_razgovor;
    int vreme_razgovor;
public:
    Razgovor() {
        vreme_razgovor = -1;
    };
    Razgovor(TelefonskiBroj p, int v)
    {
        povik_razgovor=p;
        vreme_razgovor=v;
    }
    Razgovor(const Razgovor &r)
    {
        povik_razgovor=r.povik_razgovor;
        vreme_razgovor=r.vreme_razgovor;
    }
    int getVremerazgovor()
    {
        return vreme_razgovor;
    }
    ~Razgovor()
    {
 
    }
    TelefonskiBroj getBroj(){
        return povik_razgovor;
    }
    friend ostream & operator << (ostream & out, Razgovor &r)
    {
        out<<"Vkupno vreme: "<<r.getVremerazgovor()/60<<(r.getVremerazgovor()%60)<<endl;
        return out;
    }
 
    float getMinuti()
    {
        return getVremerazgovor()/60;
    }
 
};
 
class TelefonskaSmetka
{
private:
    TelefonskiBroj sopstvenik;
    Razgovor *razgovori;
    int broj_razgovori;
    const int pretplata = 500;
public:
    TelefonskaSmetka(){
        razgovori = NULL;
    }
 
    TelefonskaSmetka(TelefonskiBroj s, Razgovor *r, int b)
    {
        sopstvenik=s;
        broj_razgovori=b;
        razgovori= new Razgovor[20];
        for(int i=0; i<b; i++) // tuka treba da ide do broj na razgovori od vlez, ako ides do 20 , na objektot razgovor ako ima samo 10 na 11 ke ti dade greska posto ne postoi toa
        {
            razgovori[i]=r[i];
        }
    }
    friend ostream & operator <<(ostream & out, TelefonskaSmetka &s)
    {
        out<<"Broj napraveni razgovori: "<<s.broj_razgovori<<endl;
        out<<"Vkupno naplata"<<s.presmetajVkupnaCena()<<endl;
        return out;
 
    }
    TelefonskaSmetka(const TelefonskaSmetka &t)//koga kreiras copy constructor sekade stavi const imeNaKlasa& promenliva,,mora const da ima na poceotk
    {
        sopstvenik=t.sopstvenik;
        broj_razgovori=t.broj_razgovori;
        razgovori = new Razgovor[20];
        for(int i=0; i<broj_razgovori; i++) // isto  i tuka treba da ide do broj na kompjuteri
        {
            razgovori[i] = t.razgovori[i];
        }
    }
    ~TelefonskaSmetka()
    {
 
        delete[] razgovori;
 
    }
  const int getPretplata()
    {
        return pretplata;
    }
    int getBrojRazgovori(){
        return broj_razgovori;
    }
  Razgovor getRazgovor(int i ){
        return razgovori[i];
    }
    float presmetajVkupnaCena()
    {
        float smetka=0;
        for(int i=0; i<broj_razgovori; i++)
        {
            smetka+=razgovori[i].getMinuti()*7+500;
        }
        return smetka;
    }
    TelefonskiBroj getSopstvenik(){
        return sopstvenik;
    }
    int getBrojNaRazgovoriKon(TelefonskaSmetka ts){
        int brRazgovori = 0;
        for(int i = 0; i < broj_razgovori; i++){
            if(ts.getSopstvenik() != razgovori[i].getBroj()){
                brRazgovori++;
            }
        }
        return brRazgovori;
  }
 
 
};
 
int main ()
{
    TelefonskiBroj broj("Ivana", 72 , 123456);
    TelefonskiBroj nekoj("nekoj", 70, 132654);
    cout << broj;
    Razgovor razgovori[] = {Razgovor(broj, 12),Razgovor(broj, 123), Razgovor(nekoj, 12)};
    TelefonskaSmetka naIvana(broj, razgovori, 3);
    cout << naIvana;
}
 
Член од
5 јануари 2008
Мислења
2.801
Поени од реакции
3.053
Me интересира за enum, дали вака се дефинира со enum и после
Tip tip; ќе ми биде инт променлива од 0 до 4 така ? Точно е вака?

PHP:
#include<iostream>
#includre<cstring>
using namespace std;
[B]enum Tip(Camec=0,Aluminiumski=1,Cruser=2,Jahta=3);[/B]
class Brod
{
    private:
    char *ime;
    int golemina;
[B]    Tip tip;[/B]
    int km;
    int cena;
    public:
 
}
--- надополнето: 24 јануари 2013 во 16:41 ---
Koga vika на пример тип char производител од 20 знаци. тоа 20 знаци
ни кажува дека strncpy(model,model1,20); ова треба да го направиме во конструкторот или сум во заблуда? Како се ограничуваше?

strcpy(model=model1);
strncpy(model,model1,20);
 
Член од
15 јуни 2012
Мислења
56
Поени од реакции
4
Како да направам тука у овој случај кај IF да ми се исклучи програмот одкога прогрес барот ќе се наполни???

private: System::Void timer1_Tick(System::Object^ sender, System::EventArgs^ e) {
this->progressBar1->Increment(10);
if(){
Application::Exit();
}

}
 
Член од
10 јули 2012
Мислења
87
Поени од реакции
54
Како да направам тука у овој случај кај IF да ми се исклучи програмот одкога прогрес барот ќе се наполни???
}
Веројатно нешто од типот:
Код:
if(progressBar1->Value >= progressBar1->Maximum)
{
    //....
}
 
Член од
15 јуни 2012
Мислења
56
Поени од реакции
4
Имам направено мени и како можам сеа преку менито да отворам да кажеме калкулатор со (+ и -) и калкулатор со (* и /) а калкулаторот со (+ и -) и калкулаторот со (* и /)ми се во TabControl посебно на tabPage1 i tabPage2 .. еве сликава ќе ви објасни каде сакам да отидам..
 

Attachments

Член од
14 ноември 2010
Мислења
708
Поени од реакции
140
Да се пресмета n-ти степен на дводимензионална низа.
Код:
#include <iostream>
using namespace std;
 
int main()
{
    int n,m,i,j,a[50][50],b[50][50],k,l,s,p;
    p=1;
    cout<<"Vnesi redici: ";
    cin>>n;
    cout<<"Vnesi koloni: ";
    cin>>m;
    cout<<"Vnesi gi elementite na matricata:\n";
    for(i=0;i<n;i++)
    for(j=0;j<m;j++)
    {
        cout<<"a["<<i<<"]"<<"["<<j<<"]=";
        cin>>a[i][j];
    }
    cout<<"Za kolku da se stepenuva matricata: ";
    cin>>s;
    for(i=0,k=0;i<n;i++,k++)
    for(j=0,l=0;j<m;j++,l++)
    {
        while(s>0)
        {
            p*=a[i][j];
            s--;
        }
        b[k][l]=p;
    }
    for(k=0;k<n;k++)
    for(l=0;l<m;l++)
    {
        cout<<"b["<<k<<"]"<<"["<<l<<"]="<<b[k][l]<<endl;
    }
    return 0;
}
Неможам да си најдам грешката.
Фала однапред. :)
 

Емкаа

the worst thing about prison was the dementors.
Член од
14 мај 2008
Мислења
4.930
Поени од реакции
12.422
Ај за покажувачи да прашам пошто не ми е најјасно баш. Нели покажувачот кон константна меморија може да се пренасочи да покажува кон друга локација, но не може да се промени содржината на мемориската локација.
Прашањето ми е, ако се пренасочи кон друга локација, автоматски не би значело тоа промена на содржината, односно нова содржина не би била таа запишана на новата мемориска локација?
 
M

Mr.InF3ction

Гостин
Емкаа

Епа сега зависи како го сфаќаш тоа промена на содржина, ако смениш локацијата каде што покажува покажувачот, да, ќе покажува на нешто друго каде што содржината ќе биде нешто ново но тоа не значи дека е сменета содржината на тој блок од меморијата.
Промена на содржина е ако некаде во меморија има Емкаа и јас со помош на покажувач пристапам таму и вo ТАА ИСТА ЛОКАЦИЈА запишам семкаа.
Покажувач кон константна меморија се користи ако сакаш некој корисник да може да чита податоци а да не може да менува..и то.
 
Член од
5 декември 2009
Мислења
439
Поени од реакции
66
Некој задачава можи да ми ја реши?

Да се состави програма која ќе изврши замена на секој елемент на дадена матрица со разликата на сумата на елементите од редот и сумата на елементите од колоната на кои им припаѓа ((сума на ред)-(сума на колона)). Притоа вредноста на елементот кој го заменуваме не влегува во сумите. Почетната матрица се внесува од тастатура, а резултато се сместува во нова матрица која потоа се печати.

влез:

1 2 4 5
2 3 4 6
1 6 8 3

излез:

8 1 -4 -2
11 4 -1 1
14 7 2 4

Во C програмски јазик..
 
Член од
10 јули 2012
Мислења
87
Поени од реакции
54
Некој задачава можи да ми ја реши?
Ова е делот што ти ја наоѓа новата матрица. Со другиот дел од програмата не би требало да имаш проблем. matrix е внесената матрица, а matrix1 е новата матрица.

Код:
    int matrix1[r][c];
    for(int i = 0; i < r; i++)
    {
        for(int j = 0; j < c; j++)
        {
            int suma_red = 0, suma_col = 0;
 
            for(int loop = 0; loop < c; loop++)
            {
                suma_red += loop != j ? matrix[i][loop] : 0;
            }
            for(int loop = 0; loop < r; loop++)
            {
                suma_col += loop != i ? matrix[loop][j] : 0;
            }
 
            matrix1[i][j] = suma_red - suma_col;
        }
 
    }
 

Kajgana Shop

На врв Bottom