ACCEDI

Password dimenticata?

×
Seguici su Instagram Feed RSS Seguici su YouTube
Pagina 1 di 3 123 UltimaUltima
Visualizzazione risultati da 1 a 10 su 22

Programmare in C++

  1. #1
    FdT svezzato
    Uomo 37 anni
    Iscrizione: 15/5/2007
    Messaggi: 160
    Piaciuto: 0 volte

    Predefinito Programmare in C++

    ma qualcuno sa spiegarmi cosa c'è che non va qui sotto per favore???

    codice:
    #include <iostream>
    #include <vector>
    #include "complesso.cpp"
    
    using namespace std;
    
    main () {
         vector <complesso> a(10);
         
         for (int i=0;i<a.size();i++) {
          cout<<a[i]<<endl;
             };
             
    }


    Ultima modifica di obo; 17/2/2010 alle 22:54 Motivo: aggiunto i tag [code]

  2. #2
    pls Paperoga
    36 anni
    Iscrizione: 27/3/2007
    Messaggi: 10,322
    Piaciuto: 2197 volte

    Predefinito

    il compilatore che errore ti restituisce?


    da quel che ricordo il ; alla fine del ciclo for non serve... ma a livello di c++ sono un po arrugginito

    edit: ma poi.. ora che riguardo, fai una stampa di un vettore non inizializzato?
    Ultima modifica di Paperoga; 17/2/2010 alle 21:40

  3. #3
    Vivo su FdT Loller156
    Uomo 34 anni da Lecco
    Iscrizione: 13/8/2007
    Messaggi: 4,944
    Piaciuto: 1612 volte

    Predefinito

    le parentesi dopo il for puoi evitarle visto che fa una sola operazione e come dice il papero il ";" non dev'essere presente dopo una parentesi di chiusura.

    fai copia e incolla dell'errore che ti dice che errore è, e scrivici anche la RIGA a cui si verifica l'errore...


    comunque per capire dove sbagli dovresti fare un fantastico STEP OVER(f7 f8 mi pare) che passo per passo ti esamina le istruzioni..dove si blocca devi capire perchè...

  4. #4
    FdT svezzato
    Uomo 37 anni
    Iscrizione: 15/5/2007
    Messaggi: 160
    Piaciuto: 0 volte

    Predefinito

    il ; dopo uno statement non mi ha mai dato problemi.. infatti se lo tolgo e compilo non cambia nulla. L'errore è segnalato alla riga 11 dentro il ciclo for, precisamente:

    cout<<a[i]<<endl;

    il mio sospetto però è che il problema sia legato all'uso di vector. Il messaggio d'errore recita infatti:

    no match for 'operator<<' in 'std::cout << (&a)->std::vector<_Tp, _Alloc>:: operator[] [with _Tp = complesso, _Alloc = std::allocator<complesso>](((unsigned int)i))'


    Ma poi... con questa sintassi... vector<complesso> a(10).. io sto inizializzando un vettore chiamato a di 10 elementi di tipo complesso..giusto?? o sbaglio??

    Grazie mille per l'aiuto

  5. #5
    pls Paperoga
    36 anni
    Iscrizione: 27/3/2007
    Messaggi: 10,322
    Piaciuto: 2197 volte

    Predefinito

    a mio avviso lo dichiari e basta, non è inizializzato, quindi fai il cout di una variabile non inizializzata, probabilmente l'errore è li...

  6. #6
    pls Paperoga
    36 anni
    Iscrizione: 27/3/2007
    Messaggi: 10,322
    Piaciuto: 2197 volte

    Predefinito

    Ho trovato questa reference

    vector - C++ Reference

    in particolare le dichiarazioni

    codice:
    // empty vector of ints
      vector<int> first;   
    // four ints with value 100                             
      vector<int> second (4,100);                       
    // iterating through second
      vector<int> third (second.begin(),second.end());  
    // a copy of third
      vector<int> fourth (third);

    da ciò posso intuire che la dichiarazione

    codice:
    vector <complesso> a(10);
    dichiara un vettore di 10 elementi non inizializzati di tipo complesso, a meno che in complesso.cpp tu abbia implementato il costruttore in modo che inizializzi l'oggetto di tipo complesso ad un valore di dafault

    correggimi se sbaglio eh, sono arrugginito col c++ pensa che vector non l'ho quasi mai usato, se non per i compiti in classe, i vettori li ho sempre trattati normalmente con il vecchio e caro

    int vett[10];

  7. #7
    FdT svezzato
    Uomo 37 anni
    Iscrizione: 15/5/2007
    Messaggi: 160
    Piaciuto: 0 volte

    Predefinito

    Scusami.. ma continuo a non capire il problema.. come faccio ad inizializzare a(10) quindi???
    In complesso.cpp io ho solo specificato cosa deve fare il costruttore.. ( in sostanza crea lo zero complesso )..

    Grazie per l'avermi dedicato il tuo tempo

  8. #8
    Vivo su FdT
    Uomo 36 anni da Milano
    Iscrizione: 30/4/2005
    Messaggi: 3,821
    Piaciuto: 12 volte

    Predefinito

    scusatemi, non ho mai usato cpp quindi potrei dire una castroneria.
    Per analogia a quanto riportato da paperoga:
    codice:
    // four ints with value 100                             
      vector<int> second (4,100);
    forse dovresti fare:
    codice:
    vector <complesso> a(10,0,0);
    dove 0 e 0 sono una la parte reale del complesso e la seconda la parte immaginaria. Cioè, mi sembra di capire che la sintassi sia:
    vector <tipo> var(n,value);
    siccome un numero complesso ha parte reale e parte immaginare, value non è altro che un "vettore" nel senso di due parametri. Ovviamente il costruttore di compless dev'essere implementato in modo tale da inizializzare n numeri complessi in quel modo...

  9. #9
    pls Paperoga
    36 anni
    Iscrizione: 27/3/2007
    Messaggi: 10,322
    Piaciuto: 2197 volte

    Predefinito

    Concordo con preiser, tutto sta nel costruttore...

    anche se non mi convince molto la scrittura

    codice:
    vector <complesso> a(10,0,0);
    cioè intendi che un vettori di complessi sia, in sostanza, una matrice?

  10. #10
    Vivo su FdT
    Uomo 36 anni da Milano
    Iscrizione: 30/4/2005
    Messaggi: 3,821
    Piaciuto: 12 volte

    Predefinito

    Un numero complesso è un vettore:
    c = (a, b)
    ossia
    c = a + i*b
    dove i è l'unità immaginaria, tale che i^2 = -1.
    Esprimi un complesso come vettore perché così lo puoi rappresentare sul piano di gauss molto comodamente, e diventa quindi una classica rappresentazione cartesiana dove il modulo del vettore, ossia r = sqrt(a^2 + b^2), è la lunghezza del vettore e arg(c) è l'angolo che il vettore forma con l'asse dei numeri reali. Tradotto cartesianamente r è la lunghezza del segmento centrato nell'origine e arg(c) è l'angolo che il segmento forma con l'asse delle x.

    Dunque, un array di vettori è, come dici tu, una matrice. Spesso in informatica si fa confusione tra vettore, array, matrice etc.. un numero complesso è un vettore, un array di vettori è una matrice. Ma è anche vero che un vettore a n componenti è una matrice 1xn, ossia un array unidimensionale.

Pagina 1 di 3 123 UltimaUltima

Discussioni simili

  1. programmare da Dio...
    Da Usher nel forum Barzellette e testi divertenti
    Risposte: 5
    Ultimo messaggio: 1/11/2006, 14:18