Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2007
    Messaggi
    5

    [Devc++ 4.01]Errore inesistente

    Oggi ho iniziato a fare un programma. Sono arrivato ad un certo punto e ho compilato per vedere se funzionava o c'era un errore. Dopo aver controllato più volte, l'errore non c'è, eppure non mi compila il listato mi aiutate?
    Ecco il listato del programma:
    /*
    Titolo: In una fabbrica le scatole del materiale vengono inserite come
    codice in una coda a mano a mano che arrivano.
    3 operai usano il materiale presente in una pila d cui prelevano
    la scatola che si trova in testa. Esiste unba pila per ogni operaio.
    Un altro operaio, a richiesta, prende la prima scatola della coda
    e la inserisce nella pila richiesta.
    Realizzare un programma che gestisca:
    1. All'arrivo di un materiale l'inserimento di un codice nella
    coda delle scatole disponibili
    2. Spostamento di una scatola da una coda a una pila interessata
    3. Estrazione di una scatola da una delle pile
    4. Stampa di tutti i codici della coda

    */

    /* ULTIMA MODIFICA: 08/01/2007 */

    #include <iostream.h>
    #include <stdlib.h>
    #include <string>

    void Inscodice();
    void spostamento();
    void estrazione();
    void stampacoda();


    int main()
    {
    //Dichiaro le variabili
    short int maxt=30;
    short int maxc=100;
    string coda[maxc];
    string pila1[maxt];
    string pila2[maxt];
    string pila3[maxt];
    short int fine=-1;
    short int testa1=maxt;
    short int testa2=maxt;
    short int testa3=maxt;
    short int scelta=0;

    do{
    system("cls");
    cout<<" ----Programma per la gestione delle merci---- ";
    cout<<"\n\nScegli l'azione da compiere:";
    cout<<"\n1. Accodo una scatola allo smistamento";
    cout<<"\n2. Smisto la prima scatola della coda tra gli operai";
    cout<<"\n3. Estraggo una scatola da uno degli operai";
    cout<<"\n4. Stampo i codici della coda di smistamento";
    cout<<"\n5. Uscita";
    cout<<"\nScelta: ";
    cin>> scelta;

    switch(scelta)
    {
    case 1: Inscodice();
    break;
    case 2: spostamento();
    break;
    case 3: estrazione();
    break;
    case 4: stampacoda();
    break;
    case 5: system("cls");
    cout<<"Hai scelto di uscire. Alla prossima.\n\n";
    break;
    default: cout<<"La tua scelta deve essere compresa tra 1 e 5.";
    }
    }while(scelta!=5);
    system("PAUSE");
    return 0;
    }
    E l'errore che mi dà è questo:
    C:\DOCUME~1\HP_PRO~1\IMPOST~1\Temp\ccMFcaaa.o: In function `main':
    //c/docume~1/hp_pro~1/desktop/luigi/scuola/inform~1/scatol~1/scatol~1.cpp:62: undefined reference to `Inscodice(void)'
    //c/docume~1/hp_pro~1/desktop/luigi/scuola/inform~1/scatol~1/scatol~1.cpp:64: undefined reference to `spostamento(void)'
    //c/docume~1/hp_pro~1/desktop/luigi/scuola/inform~1/scatol~1/scatol~1.cpp:66: undefined reference to `estrazione(void)'
    //c/docume~1/hp_pro~1/desktop/luigi/scuola/inform~1/scatol~1/scatol~1.cpp:68: undefined reference to `stampacoda(void)'

  2. #2
    Hem.. Ma quelle quattro funzioni esistono ?
    01010011 01100001 01101101 01110101 01100101 01101100 01100101 01011111 00110111 00110000
    All errors are undocumented features waiting to be discovered.

  3. #3
    Utente di HTML.it
    Registrato dal
    Jan 2007
    Messaggi
    5
    le ho dichiarate prima dell'"int main()". Non le ho sviluppate ma non dovrebbe essere un problema penso.

  4. #4
    Se richiami una funzione devi dichiararla (inserendone il prototipo, come hai fatto) e definirla, ossia scrivere il codice ad essa associata, altrimenti il compilatore quando la richiami non sa cosa fare; nello specifico devi inserire in fondo al listato
    codice:
    void Inscodice()
    {
        //codice di Inscodice
        return;
    }
    void spostamento()
    {
        //codice di spostamento
        return;
    }
    void estrazione()
    {
        //codice di estrazione
        return;
    }
    void stampacoda()
    {
        //codice di stampalacoda
        return;
    }
    Amaro C++, il gusto pieno dell'undefined behavior.

  5. #5
    Utente di HTML.it
    Registrato dal
    Jan 2007
    Messaggi
    5
    Avete ragione, funzione. Grazie per avermi risolto il problema. Cmq quando usi una funzione di tipo void è inutile usare il comando return(almeno io ho fatto sempre così e mi è andata sempre bene).

  6. #6
    Lo so, ma un return alla fine non ha mai fatto male a nessuno e rende il codice più chiaro.
    Amaro C++, il gusto pieno dell'undefined behavior.

  7. #7
    Utente di HTML.it
    Registrato dal
    Jan 2007
    Messaggi
    5
    ok, grazie ancora

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 © 2024 vBulletin Solutions, Inc. All rights reserved.