Visualizzazione dei risultati da 1 a 5 su 5

Visualizzazione discussione

  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2011
    Messaggi
    10

    Classe funzione inserimento

    File.h
    codice:
    #include<iostream>
    
    using namespace std;
    
        struct elem {
            int valore;
            int indice;
            elem* pun;
            };
    class Vettoresparso {
            elem* primo;
            int dim;
    
        public:
        
        Vettoresparso( int );
         void set( const int,  const int);
        
    friend ostream& operator << (ostream&, const Vettoresparso&);
        
        /*void visualizzadenso(int );
        void reset(int);
        Vettoresparso operator *=(int);
        ~Vettoresparso();*/
    };
    File.cpp

    codice:
    #include "vettore.h"
    
        /*struct elem {
            int valore;
            int indice;
            elem* pun;
            };*/
     
     Vettoresparso::Vettoresparso(int d)
     {    
     dim=d;
      primo=NULL;
    }
     
     ostream& operator << (ostream& os, const Vettoresparso& s)
      {    int conta=0;
          elem* p;
          
          for( p=s.primo;p!=NULL;p=p->pun)
              {
              conta++;         
              }
          os<<"["<<s.dim<<"] ";
                p=s.primo;
          for( p=s.primo;p!=NULL;p=p->pun)
              {
          os<<"["<<p->valore<<","<< p->indice<<"]";    
              }
      
     return os;
      }
      
      void Vettoresparso::set(const int v, const int i)
      {    
          elem* p, *r;
    
              
      if(v==0||i<0)
      
          {return;}
       if (primo==NULL)
              {
              primo=new elem;
              primo->indice = i;
            primo->valore = v;
            p->pun=primo;
                  }
    
      for( p=primo;p!=NULL;p=p->pun)
          {
                  
          if (p->indice > i||p->pun==NULL)
              {
                  r=new elem;
                  r->indice=i;
                  r->valore=v;
                  r->pun=p->pun;
                  p->pun=r;
                  
                  }
              }
          return;
              
              }
    ho dei problemi con il costruttore, il ompilatore mi dice che:

    ettore.cpp: In constructor ‘Vettoresparso::Vettoresparso(int)’:
    vettore.cpp:12:2: error: ‘dim’ was not declared in this scope
    vettore.cpp: In function ‘std:stream& operator<<(std:stream&, const Vettoresparso&)’:
    vettore.cpp:24:15: error: ‘const class Vettoresparso’ has no member named ‘dim’

    come mai? dim è la dimensione del vettore ma non capisco perchè non possa usarli...potete aiuarmi?

    l'esercizio mi chiede di creare queste funzioni
    Costruttore di default,
    che inizializza un VettoreSparso
    Inizialmente s è privo di entrate.
    s
    di dimensione d.

    s.set(v,i);

    Operazione che aggiunge l’entrata (v,i) al vettore sparso s. In particolare, l’operazione
    deve lasciare s invariato:
    nel caso in cui l’indice i sia fuori dall’intervallo ammissibile, oppure
    nel caso in cui v sia pari a zero (sarebbe sbagliato aggiungere una entrata a valore
    nullo, in quanto la non presenza di una entrata con quello stesso indice indica già che
    quell’elemento del vettore vale zero).
    Nel caso in cui sia i che v siano validi, l’operazione:
    se è già presente una entrata con indice i, si limita ad aggiornarne il campo valore a v;
    altrimenti, aggiunge alla lista la nuova entrata (v,i).

    cout<<s;
    Operatore di uscita per il tipo VettoreSparso. L’uscita ha la seguente forma:
    [7]{(-2,1)(4,3)(8,5)}

    non vi chiedo la soluzione voglio degli indizi per arrivarci da solo, altrimenti non imparerò mai!
    grazie mille
    Ultima modifica di Tuono94; 12-02-2014 a 11:57

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.