Problema compilazione

di il
11 risposte

Problema compilazione

Salve a tutti,
sono nuova di questo forum.... Avrei bisogno di una mano per un programma che sto cercando di far partire.
Evidentemente ho un po di problemi con le dichiarazione....
Il programma tratta dell'allocazione dinamica di una lista ed il pezzettino di codice su cui mi da errore è questo

// direttive di inclusione
#include <iostream>
#include <alloc>
#include <stdlib.h>
#include "lista.h"

using namespace std;


//prototipi delle funzioni
void ListaVuota (nodo *l);
nodo * InserisciElem (nodo *l, Bool ordine);
nodo * RimuoviElem (nodo *l, Bool ordine);
nodo * CercaElem (nodo *l, Bool ordine);
nodo * AppendElem (nodo *l, Bool &ordine);
nodo * PushElem (nodo *l, Bool &ordine);
nodo * PopElem (nodo *l);

l'errore che mi da sono:
` nodo' was not declared in this scope
oppure
field `Bool' has incomplete type

qualcuno mi può aiutare...

11 Risposte

  • Re: Problema compilazione

    Io non sono molto esperto, ma forse ti da gli errori perchè nella dichiarazione delle funzioni devi mettere solo il tipo e non il nome della variabile.
  • Re: Problema compilazione

    Ciao, nodo dove è dichiarato??
    1) hai incluso il file dove è dichiarato nodo?
    2)hai dichiarato nodo in maniera che sia visibile all'esterno?
    prova a fare queste verifiche...
  • Re: Problema compilazione

    Ma come dovrei dichiararlo??
    io ho provato ma mi da sempre errore...forse sbaglio qualcosa!
  • Re: Problema compilazione

    Purtroppo in quel poco di codice che hai postato non è possibile capire dove è la causa del problema, dovresti postare l'intero codice,
    ciao
  • Re: Problema compilazione

    Questo è il programma che sto cercando di far partire


    // direttive di inclusione
    #include <iostream>
    #include <alloc>
    #include <stdlib.h>
    #include "lista.h"

    using namespace std;

    //prototipi delle funzioni
    void ListaVuota (nodo *l);
    nodo * InserisciElem (nodo *l, Bool ordine);
    nodo * RimuoviElem (nodo *l, Bool ordine);
    nodo * CercaElem (nodo *l, Bool ordine);
    nodo * AppendElem (nodo *l, Bool &ordine);
    nodo * PushElem (nodo *l, Bool &ordine);
    nodo * PopElem (nodo *l);

    //funzioni

    void ListaVuota (nodo *l){
    if (is_empty_list(l)) cout<<"\n la lista e' vuota \n ";
    else cout<<"la lista e' non vuota" ;
    }// fine del sottoprogramma ListaVuota

    nodo * InserisciElem (nodo *l, Bool ordine){
    int elemento;
    if (ordine == VERO) { // se la lista e' ordinata procede
    cout<<"\nElemento da inserire: ";
    cin>>elemento;
    l = insert_list (l,elemento);
    }
    else{ // se la lista e' non ordinata avverte l'utente
    cout<<"\nImpossibile procedere: la lista e' non ordinata \n;
    }
    return l;
    }// fine del sottoprogramma Inserisci

    nodo * RimuoviElem (nodo *l, Bool ordine){
    int elemento;
    if (ordine == VERO){ // se la lista è ordinata procede
    cout<<"\nElemento da eliminare: ";
    cin>>elemento;
    l = delete_list (l,elemento);
    }else { // se la lista e' non ordinata avverte l'utente
    cout<<"\nImpossible procedere: la lista e' non ordinata\n";
    }
    return l;
    }// fine del sottoprogramma RimuoviElem

    nodo * CercaElem (nodo *l, Bool ordine){
    int elemento;
    if (ordine == VERO) { // se la lista e' ordinata procede
    cout<<"\nElemento da cercare: ";
    cin>>elemento;
    if (search_list (l,elemento)) cout<<"\nElemento presente\n;
    else cout<<"\nElemento non presente\n";
    } else { // se la lista e' non ordinata avverte l'utente
    cout<<"\nImpossibile procedere: la lista e' non ordinata\n";
    }
    return l;
    }// fine del sottoprogramma CercaElem

    nodo * AppendElem (nodo *l, Bool ordine){
    int elemento;
    ordine == FALSO;
    cout<<"\nElemento da inserire in coda: ";
    cin>>elemento;
    return append_list (l,elemento);
    } // fine del sottoprogramma AppendElem

    nodo * PushElem (nodo *l, Bool ordine){
    int elemento;
    ordine == FALSO;
    cout<<"\nElemento da inserire in testa: ";
    cin>>elemento;
    return push_list (l,elemento);
    }// fine del sottoprogramma PushElem

    nodo * PopElem (nodo *l){
    int elemento;
    nodo *lista;
    if (l !=NULL) { // se la lista e' non vuota
    lista = pop_list (l,elemento);
    cout<<"\nLa lista e' vuota\n";
    lista = l;
    }
    return lista;
    } // fine del sottoprogramma PopElem

    //main
    int main(int argc, char *argv[])
    {nodo *lista;
    Bool uscita = FALSO;
    Bool ordine;
    int selezione;

    init_lista (&lista); //inizializza la lista

    do {
    if (is_empty_list(lista)) ordine = VERO; // una lista vuota e' ordinata
    cout<<"\n***************************************************"
    <<"*****************************************************"
    <<"* Men-per la gestione di una lista "
    <<"di reali allocata dinamicamente *"
    <<" Digitare: "
    <<"* 0 per uscire dal programma "
    <<"* 1 per verificare se la lista e' vuota "
    <<"* 2 per inserire un elemento di una lista ordinata "
    <<"* 3 per eliminare un elemento di una lista ordinata "
    <<"* 4 per cercare un elemento di una lista ordinata "
    <<"* 5 per inserire un elemento alla fine di una lista "
    <<"* 6 per inserire un elemento all'inizio di una lista"
    <<"* 7 per prelevare l'elemento in cima alla lista "
    <<"* 8 per invertire la lista "
    <<"* 9 per stampare la lista sullo schermo "
    <<" *"
    <<"*****************************************************"
    <<"***************************************************\n";
    do {
    cout<<"Digitare selezione: " ;
    cin>> selezione;
    }while (selezione<0 || selezione > 9);

    switch (selezione){
    case 0 : uscita = VERO; break;
    case 1 : ListaVuota (lista); break;
    case 2 : lista = InserisciElem (lista,ordine); break;
    case 3 : lista = RimuoviElem (lista,ordine); break;
    case 4 : CercaElem (lista,ordine); break;
    case 5 : lista = AppendElem (lista,ordine); break;
    case 6 : lista = PushElem (lista,ordine); break;
    case 7 : lista = PopElem (lista); break;
    case 8 : lista = inverti_list (lista); ordin = FALSO; break;
    case 9 : print_list (lista); cout<<"\n\n"; break;
    }
    }while (uscita == FALSO);

    system("PAUSE");
    return 0;
    }// fine del main
  • Re: Problema compilazione

    Devi postare anche il codice di lista.h
  • Re: Problema compilazione

    Che vuol dire.... ho mandato tutto il codice cosi come l'ho fatto!
  • Re: Problema compilazione

    All'inizio del codice quando hai fatto le inclusioni hai incluso lista.h

    #include "lista.h"

    devi postare il codice contenuto all'interno di lista.h, perchè molto probabilmente è li che è stato dichiarato nodo...
  • Re: Problema compilazione

    Prova a dare un occhiata a questo sito http://joujou.org/tutorials/cpp/1_lista_bdr_ptr/index.html.
    in lista.h c'è una classe che fai poi riferimento ad un file dove è dichiarata la classe nodo.
    ciao
  • Re: Problema compilazione

    Ti ringrazio tanto... ho provato a guardare il link che mi hai mandato ma ancora non ho risolto definitivamente il problema...
    dovrò essere un po' tardiva
    cmq grazie mille
    domani a mente lucida riproverò.
  • Re: Problema compilazione

    Se mi dici il tuo problema , magari posso aiutarti.
    ciao
Devi accedere o registrarti per scrivere nel forum
11 risposte