[c++] Sommare double a elemento array- Per Esperti
- COM_EASYSOCIAL_GUEST_NAME
-
Autore della discussione
- Visitatori
-
20 Anni 9 Mesi fa #8852
da COM_EASYSOCIAL_GUEST_NAME
[c++] Sommare double a elemento array- Per Esperti è stato creato da COM_EASYSOCIAL_GUEST_NAME
Salve a tutti, ho un problema.
Non riesco a capire perchè il codice seguente, che effettua una somma di un valore double ad ogni componente di un array(metodo Add), non funziona. Chiedo aiuto
Grazie.
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <iostream.h>
class MYCLASS
{
private:
double *mioarray;
int c;
int d;
public:
MYCLASS()
{c = 0;
d = 0;
mioarray = 0x00;}
MYCLASS(int nc, int nr)
{d = nc;
c = nr;
mioarray = new double[d*c];}
// Genero un costruttore di copia
MYCLASS(const MYCLASS &ris)
{d = ris.d;
c = ris.c;
mioarray = new double[d*c];
int total = d * c;
for (int i=0;i<total;i++){Set(i,Get(i));}
}
MYCLASS Add(MYCLASS ris, double cosB)
{MYCLASS *risultato = new MYCLASS(ris.d,ris.c);
int num_pos = (risultato->d) * (risultato->c);
double Val;
double cosA;
for (int i=0;i<num_pos;i++)
{
cosA = ris.Get(i);
Val = cosA + cosB;
risultato->Set(i,Val);}
return *risultato;
}
double Get(int i) { return mioarray; }
double Get(int i, int j) { return mioarray; }
void Set(int i, double Val) { mioarray = Val; }
void Set(int i, int j, double Val) { mioarray = Val; }
};
void main()
{
MYCLASS *prova = new MYCLASS(2,2);
MYCLASS *prova1 = new MYCLASS(2,2);
double a = 1.00;
prova->Set(0,0,3.22);
prova->Set(0,1,5.60);
prova->Set(1,0,11.55);
prova->Set(1,1,12.32);
prova1->Add(*prova,a);
}
Non riesco a capire perchè il codice seguente, che effettua una somma di un valore double ad ogni componente di un array(metodo Add), non funziona. Chiedo aiuto
Grazie.
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <iostream.h>
class MYCLASS
{
private:
double *mioarray;
int c;
int d;
public:
MYCLASS()
{c = 0;
d = 0;
mioarray = 0x00;}
MYCLASS(int nc, int nr)
{d = nc;
c = nr;
mioarray = new double[d*c];}
// Genero un costruttore di copia
MYCLASS(const MYCLASS &ris)
{d = ris.d;
c = ris.c;
mioarray = new double[d*c];
int total = d * c;
for (int i=0;i<total;i++){Set(i,Get(i));}
}
MYCLASS Add(MYCLASS ris, double cosB)
{MYCLASS *risultato = new MYCLASS(ris.d,ris.c);
int num_pos = (risultato->d) * (risultato->c);
double Val;
double cosA;
for (int i=0;i<num_pos;i++)
{
cosA = ris.Get(i);
Val = cosA + cosB;
risultato->Set(i,Val);}
return *risultato;
}
double Get(int i) { return mioarray; }
double Get(int i, int j) { return mioarray; }
void Set(int i, double Val) { mioarray = Val; }
void Set(int i, int j, double Val) { mioarray = Val; }
};
void main()
{
MYCLASS *prova = new MYCLASS(2,2);
MYCLASS *prova1 = new MYCLASS(2,2);
double a = 1.00;
prova->Set(0,0,3.22);
prova->Set(0,1,5.60);
prova->Set(1,0,11.55);
prova->Set(1,1,12.32);
prova1->Add(*prova,a);
}
Si prega Accedi o Crea un account a partecipare alla conversazione.
- COM_EASYSOCIAL_GUEST_NAME
-
- Visitatori
-
20 Anni 9 Mesi fa #8878
da COM_EASYSOCIAL_GUEST_NAME
Ti consiglierei, se non ottieni presto la soluzione su questo forum, di provare su quello di Ingegneria Informatica , decisamente più frequentato.
Risposta da COM_EASYSOCIAL_GUEST_NAME al topic [c++] Sommare double a elemento array- Per Esperti
Che errore ti dà il compilatore? Per che esame ti serve?Salve a tutti, ho un problema.
Non riesco a capire perchè il codice seguente, che effettua una somma di un valore double ad ogni componente di un array(metodo Add), non funziona. Chiedo aiuto
Grazie.
Ti consiglierei, se non ottieni presto la soluzione su questo forum, di provare su quello di Ingegneria Informatica , decisamente più frequentato.
Si prega Accedi o Crea un account a partecipare alla conversazione.
- COM_EASYSOCIAL_GUEST_NAME
-
- Visitatori
-
20 Anni 5 Mesi fa #13366
da COM_EASYSOCIAL_GUEST_NAME
Risposta da COM_EASYSOCIAL_GUEST_NAME al topic [c++] Sommare double a elemento array- Per Esperti
:shock: :shock: :shock: :shock: :shock: :shock: :shock: :shock: :shock: :shock: ho compilato il tuo codice e il mio COMPIUTER e' morto di MORTE VIOLENTA
D1O CI SCAMPI DALL'ALLOCAZIONE CIECA DELLA TALPA
D1O CI SCAMPI DALL'ALLOCAZIONE CIECA DELLA TALPA
Si prega Accedi o Crea un account a partecipare alla conversazione.
- COM_EASYSOCIAL_GUEST_NAME
-
- Visitatori
-
20 Anni 2 Mesi fa #15574
da COM_EASYSOCIAL_GUEST_NAME
Risposta da COM_EASYSOCIAL_GUEST_NAME al topic [c++] Sommare double a elemento array- Per Esperti
So che la mia risposta nn è tempestiva...infatti la scrivo per pura informazione.magari potrebbe essere utile a qualcun'altro.
Cmq il tuo problema è semplicemente di puntatori..infatti avresti dovuto richiamare al funzione prova1->Add(*prova,a); (situata nella funzione main() ) come un semplice puntatore (e quindi cambiare anke l'header della funzione)
quindi in main avresti dovuto chiamare semplicemente
prova1->Add(prova,a);
e la suddetta funzione sarebbe diventata
MYCLASS Add(MYCLASS *ris, double cosB)
{
MYCLASS *risultato = new MYCLASS(ris->d,ris->c);
int num_pos = (risultato->d) * (risultato->c);
double Val;
double cosA;
for (int i=0;i<num_pos;i++)
{
cosA = ris->Get(i);
Val = cosA + cosB;
risultato->Set(i,Val);
}
return *risultato;
}
insomma,come ho detto un semplice problema di putatori
3nigma
Cmq il tuo problema è semplicemente di puntatori..infatti avresti dovuto richiamare al funzione prova1->Add(*prova,a); (situata nella funzione main() ) come un semplice puntatore (e quindi cambiare anke l'header della funzione)
quindi in main avresti dovuto chiamare semplicemente
prova1->Add(prova,a);
e la suddetta funzione sarebbe diventata
MYCLASS Add(MYCLASS *ris, double cosB)
{
MYCLASS *risultato = new MYCLASS(ris->d,ris->c);
int num_pos = (risultato->d) * (risultato->c);
double Val;
double cosA;
for (int i=0;i<num_pos;i++)
{
cosA = ris->Get(i);
Val = cosA + cosB;
risultato->Set(i,Val);
}
return *risultato;
}
insomma,come ho detto un semplice problema di putatori
3nigma
Si prega Accedi o Crea un account a partecipare alla conversazione.