Dubbi Programma Numeri Complessi

di il
4 risposte

Dubbi Programma Numeri Complessi

Salve a tutti ragazzi , come da titolo sono alle prese con un ' esercitazione sui numeri complessi e mi sono incartato su quella che sembra essere una sciocchezza ; vi descrivo brevemente a che punto del programma sono :

Ho creato la classe numComplessi e sono riuscoto ad inserire/stampare numeri complessi con notazione "algebrica" e "polare" e a convertire le misure nel caso vengano inserita con una notazione piuttosto che l' altra .

Ora arriva il punto in cui mi sono bloccato : devo , attraverso il sovraccarico dei vari operatori , impostare le funzioni di somma , prodotto , assegnamento e comparazione(verificare se un numComplesso è uguale a un altro o meno) , penso di aver capito come impostarle ma non riesco a mandare in stampa le informazioni relative alla "somma" ...
float Complex::getAddendoS(float &reale, float & compl)

{
	numCompl addendo (reale, compl);
	cout << "Inserisci parte reale dell ' addendo "; cin >> addendo.reale;
	cout << endl << "Inserisci la parte immaginaria"; cin >> addendo.compl;
	return addendo.reale;
	return addendo.compl;
	
}
numCompl numCompl :: operator+ (const numCompl  addendo)

{
	
	numCompl somma(reale, compl);
	somma.reale = reale + addendo.reale;
	somma.compl= compl+ addendo.compl;

	
	return somma;


}

Tralasciando che posso scrivere meglio la funzione che richiede l ' inserimento dell' "addendo" , quando provo a stampare il risultato della "somma" , applicando alla variabile le funzioni di stampa della parte reale e di quella immaginaria mi vengono restituiti su schermo solo due zeri ... Qualcuno che mi può dare uno spunto ?

4 Risposte

  • Re: Dubbi Programma Numeri Complessi

    Beh, non riesci perchè nell'operator+ "reale" e "compl" che vai a mettere nel costruttore sono valori che lui non conosce (tra l'altro è strano che ti dia degli zeri, dovrebbe darti errore in compilazione... o forse qualcosa mi sfugge).
    ma anziché fare tutto 'sto lavoro, perché non chiedi all'utente 2 istanze di numCompl e dopo le sommi tra di loro?
  • Re: Dubbi Programma Numeri Complessi

    A mio avviso la gestione dell'input, in questo caso con cin, non deve far parte della tua classe Complex. Invece dovresti fornire diversi metodi per convertire in Complex da formati diversi come due float, due interi, una o due stringhe.
    Il tuo obiettivo deve essere la creazione di una classe che sia semplice ed immediata da utilizzare e non la creazione di una classe in cui hai inserito tutto quello che conosci!
  • Re: Dubbi Programma Numeri Complessi

    @Clyki : l ' esercizio da svolgere mi impone di seguire questo iter e sinceramente vorrei seguirlo anche indipendentemente dalla richiesta del' esercizio per imparare a padroneggiare questi strumenti.

    @candaluar : capisco perfettamente ciò che vuoi dire ed è il mio primo obiettivo ogni volta che mi metto a programmare , purtroppo o per deficit nozionistico o per non so cosa non riesco a trovare una soluzione adeguata al problema . In ogni caso devo seguire l ' iter che descrivevo .

    Ho utilizzato l ' inserimento dei float attraverso "cin" perchè da esercizio questi sono i tipi delle due componenti della parte algebrica e attraverso questi e all ' istituzione della classe numComplessi devo riuscire ad ottenere le operazione di somma , prodotto , assegnazione e confronto ...
    Non voglio assolutamente mettere tutto nel calderone e aspettare che venga fuori anche un qualcosa di vagamente simile al risultato che voglio ottenere , ma non riesco proprio a capire come sommare due elementi di tipo "numComplesso" se appunto non c ' è nessuna operazione legittima del programma che possa accettarli.

    Correggimi se sbaglio candalaur , ma l ' idea (in questo caso utilizzando l ' overload di operatori ) è quella di creare un ""operazione di somma """ (e tutte le altre) ad esempio che mi permetta , ipotizzando un ' allargameto del programma , di sommare tutti i numComplessi inseriti e sommarli con rapidità e facilità .
    Partendo da due valori di tipo float , la mia idea era quella di sviluppare all' interno della funzione le nozioni matematiche relative ai numeri complessi (per la somma si parla del codice in figura) per poi testarla . Purtroppo sto ancora imparando ad usare il c++ , quindi nonostante voglia rendere le cose il più agevoli possibili ora vorrei solo imparare a padroneggiare gli strumenti , anche se inizialmente do vita a funzioni prolisse e metto troppe variabili .

    Vorrei solo che mi aiutaste a capire : 1) se ho impostato l ' operator+ in maniera sbagliata , o anche se prolissa può workare .
    2) Nel caso sia giusta come fare a stampare i valori desiderati (dato che non mi riesce) o meglio ancora la motivazione della non riuscita della stampa e una correzione al codice .
    3)Pur mantenedo le premesse dell' esercizio , utilizzare il tipo "float" per le due parti della notazione algebrica , in che modo voi inserireste l' addendo per provare diverse combinazioni rispetto ad un numero complesso inserito in precedenza.
  • Re: Dubbi Programma Numeri Complessi

    Quello che volevo farti capire é che va bene usare cin ma l'inserimento dei dati non deve far parte della classe. Immagina un'applicazione con interfaccia grafica, non può usare cin ma deve fare la sua gestione con due campi numerici: la tua classe deve solo fornire dei metodi per caricare questi valori, da costruttore o con appositi Set, oltre naturalmente a permettere di fare le varie operazioni. La gestione dell'input utente non deve essere a carico della tua classe, tutto qui.
    Siccome credo di essere OT e rischio solo di confonderti le idee chiudo qui.
Devi accedere o registrarti per scrivere nel forum
4 risposte