Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 25
  1. #1
    Utente di HTML.it L'avatar di freetom
    Registrato dal
    Nov 2001
    Messaggi
    3,725

    [c++] Come fare per rieseguire il programma senza dover...

    Come fare per rieseguire il programma senza dover
    ricliccare necessariamente sull' exe?

    Il mio programma termina con questo codice:

    codice:
    cout << "\n\n";
    cout << "Press ENTER to continue..." << endl; 
    cin.get();
    return 0;
    Ora sia che metta sia che rimuova return 0;
    Il programma una volta fatti correttamente tutti i calcoli
    si chiude chiudendo anche la finestra dos corrispondente.

    Mentre io vorrei aggiungere una riga del tipo :

    codice:
    cout << "Elaborazione richiesta terminata. Se ne vuole fare un'altra? "
    cin >> decisione;
    
    if (decisione=="si") {
    
    //riesegui il programma dall'inizio...
    
    
    }
    
    else 
    
    {
    //termina il programma
    return 0;
    }
    Che codice devo mettere sotto il commento //riesegui il programma dall'inizio... ???

    Grazie a tutti/e e buon 1° maggio


  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Devi includere tutto il codice in un ciclo while che controlli con la condizione per il riavvio.
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    Utente di HTML.it L'avatar di Scara95
    Registrato dal
    Jul 2009
    residenza
    Zimella (VR)
    Messaggi
    2,589
    O richiamare ricorsivamente il main
    "Quid enim est, quod contra vim sine vi fieri possit?" - Cicerone, Ad Familiares

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Originariamente inviato da Scara95
    O richiamare ricorsivamente il main
    Non lo diciamo neanche per scherzo perché lo fa ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  5. #5
    Utente di HTML.it L'avatar di Scara95
    Registrato dal
    Jul 2009
    residenza
    Zimella (VR)
    Messaggi
    2,589
    A dirla tutta potrebbe funzionare e molto probabilmente verrebbe trasformato in un ciclo dalle ottimizzazioni dei compilatori recenti...
    "Quid enim est, quod contra vim sine vi fieri possit?" - Cicerone, Ad Familiares

  6. #6
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Originariamente inviato da Scara95
    A dirla tutta potrebbe funzionare e molto probabilmente verrebbe trasformato in un ciclo dalle ottimizzazioni dei compilatori recenti...
    "Quanto" recenti?

    L'uso del main sarebbe vietato dallo standard C++ ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  7. #7
    Utente di HTML.it L'avatar di Scara95
    Registrato dal
    Jul 2009
    residenza
    Zimella (VR)
    Messaggi
    2,589
    La funzione principale/quella che contiene le istruzioni che vuoi eseguire ciclicamente.
    "Quid enim est, quod contra vim sine vi fieri possit?" - Cicerone, Ad Familiares

  8. #8
    Originariamente inviato da oregon
    L'uso del main sarebbe vietato dallo standard C++ ...
    Questo, e soprattutto non ha senso da un punto di vista concettuale un main ricorsivo (al di la del fatto che la tail-call optimization lo trasforma in un loop)... Un while è la soluzione più semplice e corretta.
    Amaro C++, il gusto pieno dell'undefined behavior.

  9. #9
    Utente di HTML.it L'avatar di rsdpzed
    Registrato dal
    Aug 2001
    Messaggi
    764
    Originariamente inviato da MItaly
    tail-call
    non sapevo si chiamasse cosi, volevo un nome per "questa cosa" in un post di ieri .
    Questa ottimizzazione credo che esista solo per non caricare lo stack di variabili inutili che poi non verranno usate dai chiamanti (credo che non potrebbe avvenire se i chiamanti in qualche modo utilizzano poi i valori di ritorno e cioè sfruttano davvero il concetto di ricorsione), il che deriva comunque da codice non scritto bene. Con questa premessa sarebbe davvero brutto affidarsi a questa ottimizzazione per controllare un flusso: voto anch'io per il while

  10. #10
    Utente di HTML.it L'avatar di Scara95
    Registrato dal
    Jul 2009
    residenza
    Zimella (VR)
    Messaggi
    2,589
    Vai a dirlo ai linguaggi fuzionali
    In ogni caso non è vero che un main ricorsivo non ha senso:
    Tu hai una funzione che svolge un determinato compito, quando ti serve che quel compito venga svolto chiami quella funzione, quindi alla fine ha un senso logico chiamare la funzione ricorsivamente se alla fine di quella funzione ti serve che venga svolta quell'azione.

    Vedi che molti algoritmi sono molto più semplici da definire ricorsivamente proprio per questo motivo, e sempre per questo i linguaggi funzionali sono più concisi e comprensibili.

    Una lista infinita di tutti i numeri primi in Haskell si definisce con una decina di righe, forse meno, prova a farla in C ^^
    Fra l'altro un'algoritmo complesso rischia di andare più veloce in Haskell che non in c, ovviamente il c va più veloce se ottimizzato, ma voglio vedere le ore che perdi a ottimizzarlo, oltre al fatto che ci metti di sicuro più del doppio del tempo a scriverlo.
    "Quid enim est, quod contra vim sine vi fieri possit?" - Cicerone, Ad Familiares

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.