Problema parentesi

di il
22 risposte

22 Risposte - Pagina 2

  • Re: Problema parentesi

    Hai il codice non aggiornato,vedi quello della risposta alle 22.29
  • Re: Problema parentesi

    Con quello delle 23:29 il compilatore che usi non dà errori ma io ho questi errori

    Errore C4700 utilizzata variabile locale 'nuovo' non inizializzata
    Errore C4700 utilizzata variabile locale 'x' non inizializzata
  • Re: Problema parentesi

    A prescindere da quegli errori, se scrivi
    
    		cin >> scelta2;
     		scelta2 = inputc2();
    
    stai facendo 2 volte l'input di scelta2. Perché?
  • Re: Problema parentesi

    Ok ora ho tolto questo errore del cin ma gli altri non so quali sono
  • Re: Problema parentesi

    Ad esempio

    " utilizzata variabile locale 'x' non inizializzata "

    vedi dove utilizzi x come contatore che non ha un valore iniziale assegnato
  • Re: Problema parentesi

    Ok,ho risolto diversi problemi ma ora ho problemi a riproporre il menu dopo la creazione del nodo o dopo aver fatto qualsiasi operazione, come faccio? metto il codice aggiornato
    #include <iostream>
    using namespace std;
    
    struct s_nodo
    {
    	char codice_foto [30];
    	struct s_nodo *next;
    };
    typedef struct s_nodo nodo;
    typedef nodo* p_nodo;
    
    void CreaNodo();
    void inserimento_coda(p_nodo, p_nodo);
    void inserimento_pila(p_nodo, p_nodo);
    int inputc(int, int);
    void menu();
    void menu2();
    bool ListaVuota(p_nodo);
    void EstrazioneT(p_nodo);
    void Visualizzazione(p_nodo);
    void Ricerca(p_nodo);
    void elimina_lista(p_nodo);
    void case_1(p_nodo,p_nodo,int );	
    
    
    int main()
    {
    	p_nodo pTesta=NULL, p1, p2, nuovo;
    	int scelta, scelta2,x=0;
    	do{
    			menu();
    	cout<<"Fai la tua scelta: "<<endl;
    	scelta = inputc(1,3);
        switch(scelta){
            
            case 1: 
            menu2();
            scelta2=inputc(1,4);
            switch(scelta2){
                
                case 1:
                inserimento_pila(pTesta,nuovo);
                break;
                case 2:
                EstrazioneT(pTesta);
                break;
                case 3:
                Visualizzazione(pTesta);
                break;
                case 4:
    			Ricerca(pTesta);
    			break;	
    			
    			do{
    			 case_1(pTesta,nuovo,scelta);	
    			cout<<"se vuoi selzionare un'altra voce del menu digitare 1"<<endl;
    			cin>>x;
    			}while(x==1);
    				
            }
            break;
            
            case 2:
            menu2();
            scelta2=inputc(1,4);
            switch(scelta2)
    		{
                
                case 1:
             	inserimento_coda(pTesta,nuovo);
                break;
                case 2:
                EstrazioneT(pTesta);
                break;
                case 3:
                Visualizzazione(pTesta);
                break;
                case 4:
    			Ricerca(pTesta);
            
            	break;
            }
            	case 3:
            	elimina_lista(pTesta);
            	break;
           
        }
        cout<<"digitare 1 per scegliere un'altra opzione"<<endl;
        cin>>x;
    	}while(x==1);
    
         return 0;
    }
    
    void CreaNodo()
    {
        char cod[30];
       p_nodo p1;
        double num;
        cout<<"\nDigita il codice della foto da inserire nel nodo...:  ";
        cin>>cod;
        cout<<"\nscrivere la dimensione in bytes...:  ";
        cin>>num;
        p1 = new nodo;     
        p1->codice_foto[30]=cod[30];      
                                 
        p1->next=NULL;                         
    } 
    
    void inserimento_coda(p_nodo p, p_nodo nuovo)
    {
    p_nodo p1;
    int x=0;
    do{
    CreaNodo();
    if(p==NULL)
    {
    p=nuovo;	
    }
    else
    {
    p1=p;
    while(p1->next != NULL)
    {
    p1=p1->next;	
    }
    p1->next=nuovo;
    }	
    cout<<"digitare 1 per aggiungere un nuovo codice"<<endl;
    cin>>x;
    }while(x==1);
    
    return;
    }
    
    void inserimento_pila(p_nodo p, p_nodo nuovo)
    {
    	int y=0;
    	do{
    	cout<<"Inserisci in testa il nuovo codice"<<endl;
    	CreaNodo();
    	if(p!=NULL)
    	{
    	nuovo->next=p;
    	}
    	cout<<"digitare 1 per aggiungere un nuovo codice"<<endl;
    	cin>>y;
    	p=nuovo;	
    	}while(y==1);
    	
    	return ;
    }
    
    int inputc(int vmin, int vmax)
    {
    	int valore=0;	
    	do
    	{
    	    cin>>valore;
    	    if (valore<vmin || valore>vmax)
    	    {
    	    	cout<<"Valore inserito non accettabile.\n";
    	    	cout<<"Inserire un valore compreso tra "<<vmin<<" e "<<vmax<<": ";
    		}
    	}while(valore<vmin || valore>vmax);
    	
    return valore;
    }
    
    void menu()
    {
    	cout<<"//////////////////////////////////////////"<<endl;
    	cout<<"Premi 1 se vuoi una lista gestita in coda"<<endl;
    	cout<<"Premi 2 se vuoi una lista gestita in pila"<<endl;
    	cout<<"Premi 3 se vuoi deallocare una lista"<<endl;
    	cout<<"//////////////////////////////////////////"<<endl;
    }
    
    void menu2()
    {
    	cout<<"//////////////////////////////////////////"<<endl;
    	cout<<"digita 1 se vuoi creare un nodo"<<endl;
    	cout<<"digita 2 se vuoi estrarre"<<endl;
    	cout<<"digita 3 se vuoi visualizzare"<<endl;
    	cout<<"digita 4 se vuoi cercare in base al codice foto"<<endl;
    	cout<<"//////////////////////////////////////////"<<endl;
    
    }
    
    bool ListaVuota(p_nodo p)
    {
      bool vuota = true;
      if ( p == NULL)    
        {
          cout <<" ATTENZIONE !! Lista vuota. "<<endl;   
          vuota = false;
        }
     
      return vuota;
    }
    
    void EstrazioneT(p_nodo p)
    {
    	 p_nodo p1;
        cout<<"\n===============================";
        cout<<"\n==== Estrazione di un nodo ====";
        cout<<"\n===============================\n";
      
      if (ListaVuota(p) == true)
        {
           p1 = p;   
           cout << " Nodo estratto --->  " << p1->codice_foto<<endl;
           if (p1->next == NULL)
               {
    		   p = NULL;
    		   }
        }
    
    }
    
    void Visualizzazione(p_nodo p)
    {
    	p_nodo p1;
    	int x;
     if (ListaVuota(p) == true)
       {
         p1 = p;            
         while (p1 != NULL)  
            {
              x++;    //posizione 
              cout <<" Nodo "<<x<<"--> "<< p1->codice_foto<<endl;
              p1 = p1->next;
            }
        } 
       
    }  
    
    void Ricerca(p_nodo p)
    {
     p_nodo p1;
     bool flag=false;
     int x=0;
          cout<<"\n========================================\n";
          cout<<"==== Ricerca di un nodo nella lista ====\n";
          cout<<"========================================\n";
     if (ListaVuota(p) == true)
       {
          cout<<"\n digita il codice foto da ricercare .....: ";
          cin>>p->codice_foto;
          p1 = p;
          while (p1 != NULL && flag == false)
             {
               x++;    
    		    if (p1->codice_foto == p->codice_foto)
                  {
                     flag=true;
                  }
               else
                  {
                     p1 = p1->next;   
                  }
             }
         if (flag == true)
              {cout << "\n la foto occupa "<<x+4<<" byte \n";}
         else
              {cout << "\n codice foto non trovato !!\n";}
     
       }
    }
    void elimina_lista(p_nodo p)
    {
     if (ListaVuota(p) == true)
     {
    p = NULL;   
                    
    cout<<"Lista eliminata!";
     }    
         
    }
    
    
    
    
    void case_1(p_nodo p, p_nodo nuovo,int scelta)
    {
            switch(scelta){
                
                case 1:
                inserimento_pila(p,nuovo);
                break;
                case 2:
                EstrazioneT(p);
                break;
                case 3:
                Visualizzazione(p);
                break;
                case 4:
    			Ricerca(p);
    			break;				
            }
            return;
    }
    
  • Re: Problema parentesi

    Il forum non è una chat. I thread affrontano un problema alla volta con un titolo adeguato.
  • Re: Problema parentesi

    Ti consiglio di scaricare un compilatore/ambiente di sviluppo da usare in locale, il sito che indichi mi sembra fatto bene, ma usare un programma in locale secondo me è meglio.

    Non seguo molto l'aggiornamento di questi ambienti di sviluppo e non penso di essere la persona ideale per darti un consiglio, dipende anche dal sistema che stai usando.


    per quanto riguarda il problema ti consiglio di ripartire da capo ( brutto a dirsi lo so ) e cominciare a sviluppare le 3 funzioni ( lista o pila con la quale vuoi cominciare )

    - crea nuovo nodo ( e credi vari nodi giusto per provare )
    - stampa lista completa
    - cancella lista.

    una volta che hai pronto questo crei i menu e colleghi.
Devi accedere o registrarti per scrivere nel forum
22 risposte