-
Posts
18 -
Joined
-
Last visited
Posts posted by seaza
-
-
am o clasa complex ptr nr complexe, cu constructori, supraincarcarea op. +, -, *,<<, >>, cu de toate:D.
treb' sa +, -, *, matrici de nr complexe memorate ca vectori.
imi mai trebuie o clasa nush vector sa zicem, in care vreau din nou o supraincarcare a operatorilor >> si <<, sa apara cv de genul:
linia1 coloana1
partea reala:
partea imag:
linia1 coloana2
..................
iar in main am cv de genul:
vector A, B;
A.setLinii(3); //metoda din clasa mostenita, vector
A.setColoane(3); //metoda din clasa mostenita, vector
cin>> A;
cout<<A<<endl;
B.setLinii(3);
B.setColoane(3);
cin>> B;
cout<<B<<endl;
vector C;
C=A+B;
cout<<C<<endl;
//----------------si la partea asta imi cam da cu virgula:-s
o idee ar fi cv d genul:
//la inceput am:
//#define nrlin 1000
//#define nrcol 1000
class vector: public complex{
complex v[nrlin*nrcol];
int linii, coloane;
public:
vector(int n=0, int m=0){linii=n; coloane=m;}
void setLinii(int L){linii=L;}
void setColoane(int C){coloane=C;}
int getLinii(){return linii;}
int getColoane(){return coloane;}
//metodele ptr +, - etc..
friend istream& operator >>(istream& , vector& );
friend ostream& operator <<(ostream& , vector );
...........
istream& operator>>(istream& IN, vector& W)
{
.......................
{
cout<<"Linia "<<linii<<" Coloana "<<coloane<<" : "<<endl;
........................
}
return IN;
}nu prea am priceput cu "mostenirea ", so i need help, ce ar trebui in locul punctelor........
sau ma rog, alta idee daca are cineva?
-
pai la o lista, poti efectua urmatoarele operatii:
-accesul la oricare nod al listei in scopul citii sau modificarii informatiei continute de acesta
-adaugarea unui nod, indiferent de pozitia pe care o ocupa in lista
-stergerea unui element, indiferent de pozitia pe care o ocupa in lista
-schimbarea pozitiei unui nod in cadrul listei.
ex1: creaza o lista simplu inlantuita recursiv, si afieaza nodurile in ordinea in care au fost introduse
#include<iostream>
struct nod{
int info;
nod* adr_urm;
};
nod* v;
nod* adaug()
{
nod* c;
int nr;
cout<<"dati numarul: ";
cin>>nr;
if(nr)
{
c=new nod;
c->adr_urm=adaug();
c->info=nr;
return c;
}
else
return 0;
}
void tiparire(nod* v)
{
nod* c=v;
while(c)
{
cout<<c->info<<endl;
c=c->adr_urm;
}
}
int main()
{
v=adaug();
tiparire();
}pentru listele dublu inlantuite, avantajul este ca le poti parcurge in ambele sensuri;
operatii:
-creare; adaugare la stanga, la dreapta, in interiorul listei; stergere la stanga, la dreapta, din interiorul listei,; listare de la stanga la dreapta, si invers.
o coada este o lista pentru care toate inserarile sunt facute la unul din capete, toate stergerile la celalalt capat.
#include<iostream.h>
struct nod
{int info;
nod *next;
}nod *v, *sf; //v=retine adresa elementului ce urmeaza a fi scos, iar sf=va retine adresa ultimului element introdus in coada
int n;
void push(nod *&v, nod *&sf, int n)
{
nod *c;
if(!v)
{
v=new nod;
v->info=n;
v->next=0;
sf=v;
}
else
{
c=new nod;
sf->next=c;
c->info=n;
c->next=0;
sf=c;
}
}
void pop(nod *&v)
{
nod *c;
if(!v)
cout<<"coada este vida";
else
{
cout<<"am scos "<<v->info;
c=v;
v=v->next;
delete c;
}
}
void listare(nod *c)
{
nod *c=v;
while(c)
{cout<<c->info<<" ";
c=c->next; //trec la urmatorul
}
cout<<endl;
}
main()
{
push(v, sf, 3;
push(v, sf, 5);
push(v, sf, 7);
listare(v);
pop(v);
listare(v);
//s.a.m.
} -
dap...
multime multime:: operator+(multime& m)
{
multime m1;
int i;
for(i=1; i<100; i++)
m1.mult=mult | m.mult;
return m1;
}
thks:D
-
am urmatoarea eroare la build solution:
error LNK2019: unresolved external symbol "public: class multime __thiscall multime::operator+(class multime &)" (??Hmultime@@QAE?AV0@AAV0@@Z) referenced in function _maincodul este:
//se genereaza doua multimi si se afiseaza reuniunea lor
#include<iostream>
#include "incapsulare_multimi.cpp"
using namespace std;
int main()
{
multime m, m1, m2;
int i;
m=m+15;
m=m+7;
m=m+23;
m=17+m;
m=m+799;
m1=m1+11;
m1=7+m1;
m1=0+m1;
m1=1+m1;
m=m+m1;
for(i=0; i<800; i++)
if(m.in(i))
cout<<i<<" ";
system("PAUSE");
return 0;
}"incapsulare_multimi.cpp"
class multime
{
char mult[100];
public:
int i;
multime();
int in(int n);
multime operator+(multime& m);
multime operator-(multime& m);
multime operator*(multime& m);
friend multime operator+(multime& m, int n);
friend multime operator+(int n, multime& m);
};
multime::multime()
{
for(i=0; i<100; i++)
mult[i]=0;
}
int multime::in(int n)
{
unsigned char nr_bit=7-n%8, masca=1;
int nr_octet=n/8;
masca=masca<<nr_bit;
if(mult[nr_octet] && masca)
return 1;
else
return 0;
}
multime operator+(multime& m, int n)
{
multime m1=m;
unsigned char nr_bit=7-n%8, masca=1;
int nr_octet=n/8;
masca=masca<<nr_bit;
m1.mult[nr_octet]=m1.mult[nr_octet]|masca;
return m1;
}
multime operator+(int n, multime& m)
{
multime m1=m;
unsigned char nr_bit=7-n%8, masca=1;
int nr_octet=n/8;
masca=masca<<nr_bit;
m1.mult[nr_octet]=m1.mult[nr_octet]|masca;
return m1;
}
multime multime::operator-(multime& m)
{
multime m1;
int i;
for(i=0; i<100; i++)
m1.mult[i]=m1.mult[i]& (mult[i]^m.mult[i]);
return m1;
}
multime multime::operator*(multime& m)
{
multime m1;
int i;
for(i=0; i<100; i++)
m1.mult[i]=mult[i] & m.mult[i];
return m1;
}any ideas?
-
lucrez in visual studio, iar strcpy nu merge daca nu incluzi si header.ele d care zice @cmiN, si anume: #include <cstring>
#include <cstdlib>
...de care eu uitasem:D
iar in visual studio nu mai ai <__.h>, d asta folosisem strcpy_s..
greetings @cmiN!
-
am urmatorul progr:
#include<iostream>
#include<string>
using namespace std;
class persoana
{
int varsta;
public:
char *pnume;
persoana(char *n,int v):varsta(v)
{
pnume=new char[strlen("Anonim")+1];
strcpy_s(pnume, n);
}
int spune_varsta()
{
return varsta;
}
};
int main()
{
persoana p1("vasilache",45);
persoana p2=p1;//apel constructor de copiere
cout<<"\n"<<p1.pnume<<"are"<<p1.spune_varsta()<<"ani";
cout<<"\n"<<p2.pnume<<"are"<<p2.spune_varsta()<<"ani";
strcpy(p2.pnume,"Gigi");
cout<<"\n"<<p1.pnume<<"are"<<p1.spune_varsta()<<"ani";
cout<<"\n"<<p2.pnume<<"are"<<p2.spune_varsta()<<"ani";
system("PAUSE");
return 0;
}am o eroare la linia 12.. ma ajuta cnva?
-
probleme rezolvate pe C / C++ / C# - PC Troubleshooting ptr cei care vor mai multe, dati buzz: skyler_sdf@yahoo.com
-
daca aici se pun progr. gen "copy-paste" si fara sa functioneze, pai atunci imi dau demisia si pun un link catre ...vxheavens de ex..DAR tot ce e acolo merge! so....
-
hey bun venit:D e de ajuns sa stii pascal, si nu iti va veni foarte greu sa inveti C++...
-
bun venit!:)
-
thks:)
-
salutare tuturor!! foarte interesant aici la voi; am de gand sa raman ceva timp, mai ales ca aveti si un "colt al programatorilor"!
regula?
in Programare
Posted · Edited by seaza
sall.
am o inmultire d matrici reprezentate ca vectori, si incercam sa gasesc o "regula" ptr inmultire.
unde v este: complex v[nrlin*nrcol], intr o clasa mostenita din complex, by default nrlin si nrcol sunt date cu #define nrlin 10, respc. #define nrcol 10
doar ca nu merge chiar asa bine...are cnva vreo mica idee unde e greseala ?