C/C++

  • Креатор на темата Креатор на темата Драган
  • Време на започнување Време на започнување
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 и тоа ќе е :)
 
Шо му фали шо не го компајлира? :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 то ми е целта.
 
Функцијата стави ја над main или над main напиши float func(float, int); (декларираш дека има таква функција некаде подоле) за програмава да знае дека постои таква функција
 
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;
}
 
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);
 
Како да направам тука у овој случај кај IF да ми се исклучи програмот одкога прогрес барот ќе се наполни???

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

}
 
Како да направам тука у овој случај кај IF да ми се исклучи програмот одкога прогрес барот ќе се наполни???
}
Веројатно нешто од типот:
Код:
if(progressBar1->Value >= progressBar1->Maximum)
{
    //....
}
 
Имам направено мени и како можам сеа преку менито да отворам да кажеме калкулатор со (+ и -) и калкулатор со (* и /) а калкулаторот со (+ и -) и калкулаторот со (* и /)ми се во TabControl посебно на tabPage1 i tabPage2 .. еве сликава ќе ви објасни каде сакам да отидам..
 

Attachments

  • untitled.JPG
    untitled.JPG
    196,6 KB · Прегледи: 13
Да се пресмета 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;
}
Неможам да си најдам грешката.
Фала однапред. :)
 
Ај за покажувачи да прашам пошто не ми е најјасно баш. Нели покажувачот кон константна меморија може да се пренасочи да покажува кон друга локација, но не може да се промени содржината на мемориската локација.
Прашањето ми е, ако се пренасочи кон друга локација, автоматски не би значело тоа промена на содржината, односно нова содржина не би била таа запишана на новата мемориска локација?
 
Емкаа

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

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

влез:

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 програмски јазик..
 
Некој задачава можи да ми ја реши?

Ова е делот што ти ја наоѓа новата матрица. Со другиот дел од програмата не би требало да имаш проблем. 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

Back
На врв Bottom