Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    Mi aiutate a capire questa classe (c++)?

    Ho questa classe:

    codice:
    class CPolynom
    {
          private:
                  int degree;
                  double * coeff;
          public:
                 CPolynom(const CPolynom &);
                 CPolynom(int d) {coeff = new double[d+1]; degree=d;};
                 virtual ~CPolynom() {delete [] coeff;};
                 int get Degree() const {return degree;};
                 double* getCoeff() const {return coeff;};
                 
                 CPolynom deriv() const;
                 CPolynom multiply(const CPolynom& p) const;
    }
    E mi è stato dato questo costruttore che non capisco però:

    codice:
    CPolynom::CPolynom(const CPolynom & p){
           degree = p.getDegree();
           coeff = new double[degree+1];
           double* coeff2 = p.getCoeff();
           for(int i=0; i<=degree; i++) coeff[i]=coeff2[i];
    }
    Il mio esercizio è di implementare la funzione:

    codice:
    CPolynom CPolynom::deriv() const.
    Che deve fare la derivata di un polinomio (per esempio 10x^3 + 10x^2 + 11x + 2 deve diventare 30x^2+38x+11).

    Solo che non so da dove partire, non so dove li prendo i coefficienti e gli esponenti, e fatico anche a capire cosa vogliono dire diverse cose, tipo per esempio CPolynom::deriv() perchè usa questo tipo di scrittura? Cosa vuol dire?

    Sono in alto mare, mi date qualche delucidazione?

  2. #2
    Utente di HTML.it L'avatar di shodan
    Registrato dal
    Jun 2001
    Messaggi
    2,381

    Re: Mi aiutate a capire questa classe (c++)?

    Originariamente inviato da syndrome89
    E mi è stato dato questo costruttore che non capisco però:
    E' il costruttore di copia, che serve a duplicare i dati interni della classe.
    Se non ci fosse, coeff sarebbe cancellato due volte con crash del programma.

    non so dove li prendo i coefficienti e gli esponenti,
    Nemmeno io se è per quello. Per come è impostata, non trovo il senso generale di quella classe.

    e fatico anche a capire cosa vogliono dire diverse cose, tipo per esempio CPolynom::deriv() perchè usa questo tipo di scrittura? Cosa vuol dire?
    Premesso che questo è più o meno l'ABC delle classi, quella sintassi indica che deriv() è una funzione appartenente solo alle istante di CPolynom.
    This code and information is provided "as is" without warranty of any kind, either expressed
    or implied, including but not limited to the implied warranties of merchantability and/or
    fitness for a particular purpose.

  3. #3
    Utente di HTML.it
    Registrato dal
    Mar 2001
    Messaggi
    117

    Re: Mi aiutate a capire questa classe (c++)?

    Originariamente inviato da syndrome89
    Solo che non so da dove partire, non so dove li prendo i coefficienti e gli esponenti
    Gli esponenti sono probabilmente associati in ordine crescente (o decrescente, andrebbe specificato in una documentazione della classe) ai coefficienti in coeff e, ad eventuali potenze mancanti, andrebbe dato un coefficiente zero.
    Tuttavia trovo abbastanza assurdo che non ci sia alcun modo per specificare i coefficienti. A mio avviso il costruttore, anziché semplicemente allocare un vettore di lunghezza d (che risulterà non inizializzato, ma leggibile dalla funzione getCoeff()), dovrebbe prendere in ingresso anche i coefficienti stessi ed impostarli correttamente nel vettore.

    Per me l'esercizio è mal formulato. O meglio, in teoria puoi anche creare una funzione di derivazione del polinomio, ma non avrai mai possibilità di testarla se non modifichi opportunamente la classe data.

  4. #4
    Eheh ok grazie a tutti, non c'ho capito molto ma vabbe, domani ho l'esame come andrà andrà

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.