Arat (Normal User)
Newbie
Messaggi: 8
Iscritto: 24/09/2014
|
Ciao a tutti, ho appena iniziato il corso di laurea in informatica e la mia conoscenza fino a oggi del C ma di programmazione in generale era pari a 0, quindi abbiate pietà se la domanda è una stupidata.
Per questa settimana la prof ci ha dato un banale esercizio in cui dobbiamo stampare a video "Hello World" (è un pò più complesso in realtà ma non è quello che importa). Il problema mi sorge quando ho il dubbio se inserire system("pause"); prima della fine del programma o meno. Teoricamente se non lo inserissi la console si dovrebbe chiudere immediatamente ma in realtà vedevo che questo succede solo se uso Visual Studio come IDE, mentre usando Dev C++ o CodeBlocks non succede e la console rimane aperta anche senza mettere il system("pause");
Dato che questo esercizio devo consegnarlo, dite che è meglio che lo inserisco o meno la pausa nel file sorgente che devo inviare alla prof? Grazie mille e scusate la domanda scema.
|
|
nessuno (Normal User)
Guru^2
Messaggi: 6403
Iscritto: 03/01/2010
|
Non è mai necessario il system("PAUSE") anzi è pure sbagliato utilizzare un comando del DOS in un programma che potrebbe girare su Linux ...
Con Visual Studio basta avviare con Ctrl F5
Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti ( uno dei padri fondatori del moderno Calcolo delle probabilità ) chiamava il gioco del Lotto Tassa sulla stupidità. |
|
TheDarkJuster (Member)
Guru^2
Messaggi: 1620
Iscritto: 27/09/2013
|
Usare il metodo system è sempre sconsigliato e una pratica da evitare come l'uso dei goto in un linguaggio diverso dall'assembly. Comunque quando si parla di c ci sono veramente poche domande banali, e questa non rientra in quella categoria.
|
|
pierotofy (Admin)
Guru^2
Messaggi: 6230
Iscritto: 04/12/2003
|
Postato originariamente da TheDarkJuster:
da evitare come l'uso dei goto in un linguaggio diverso dall'assembly |
ci sono alcune rare situazioni in cui l'uso del goto e' piu' che accettabile in molti linguaggi.
|
|
nessuno (Normal User)
Guru^2
Messaggi: 6403
Iscritto: 03/01/2010
|
Postato originariamente da pierotofy:
Postato originariamente da TheDarkJuster:
da evitare come l'uso dei goto in un linguaggio diverso dall'assembly |
ci sono alcune rare situazioni in cui l'uso del goto e' piu' che accettabile in molti linguaggi. |
Sì, conosco la discussione relativa alla questione del "buon uso del goto" ma il fatto è che è molto complesso determinare queste rare situazioni e i programmatori non molto esperti non lo saprebbero fare (creando quindi casini).
In genere, alle nuove leve, è bene dire di non usare goto. Quando saranno guru, sapranno come e dove usarlo da soli ...
Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti ( uno dei padri fondatori del moderno Calcolo delle probabilità ) chiamava il gioco del Lotto Tassa sulla stupidità. |
|
()
Newbie
Messaggi:
Iscritto:
|
In genere, alle nuove leve, è bene dire di non usare goto. Quando saranno guru, sapranno come e dove usarlo da soli ... |
Non sono certo un "guru" (lemma che mi riporta alla mente animali come i gufi, o ancor più le tortore), però i "goto" li uso ugualmente ogni volta che mi sembra il caso e... sono tutt'ora vivo!
Gli strumenti sono validi o non validi a seconda dell'obiettivo che ci si propone di raggiungere, ma la loro validità dipende anche dalla mano che li utilizza, e le mani non sono tutte uguali. Ad esempio, la mia compagna per liberarsi del "sottovuoto" che rende difficile aprire i barattoli è solita far leva con un coltello, laddove io preferisco il manico d'una forchetta. Cosa è meglio, purché il vasetto si apra docilmente? |
|
nessuno (Normal User)
Guru^2
Messaggi: 6403
Iscritto: 03/01/2010
|
Beh, non si è mai detto che con i goto si muore, né la faccenda del coltello/forchetta ci aiuta nello specifico.
Ognuno può fare come vuole, nel suo "privato", ma se lavori in un gruppo di programmatori professionisti per un'azienda magari che produce software, e presenti un codice C con una marea di goto e codice "spaghetti", beh, non sei sicuramente ben visto e diciamo che non ci lavorerai per molto ... Però avrai tanto tempo in più per aprire i tuoi barattoli ...
Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti ( uno dei padri fondatori del moderno Calcolo delle probabilità ) chiamava il gioco del Lotto Tassa sulla stupidità. |
|
()
Newbie
Messaggi:
Iscritto:
|
se presenti un codice C con una marea di goto e codice "spaghetti", beh, non sei sicuramente ben visto e diciamo che non ci lavorerai per molto |
Diciamo così: se usi una marea di goto è perché probabilmente non sai usare altro, e quello è sicuramente un problema anche per il "fai da te" hobbistico. Sarebbe altrettando un problema se uno usasse sempre e solo degli switch, o sempre e solo cicli while anche dove sarebbe più pratico e conciso usare dei cicli for e così via. Io i goto li uso a cuor leggero (nel senso che se mi sembrano opportuni in una certa situazione non mi pongo problemi) ma sicuramente non si può dire che ne usi "una marea"!
A livello meno "ideologico", ho realizzato da non molto che non si possono usare i goto in C++ se dichiari delle variabili tra un'etichetta e l'altra. Questo crea situazioni scomode e sicuramente mi sta incoraggiando a limitare ulteriormente il mio già scarso ricorso ai goto. Il che non significa che li ripudi in toto.
=============
Tralasciando la questione dei goto, ho già trovato un sacco di riferimenti al cosiddetto "codice spaghetti", ma non ho mai trovato qualcuno che cercasse di tracciare un limite chiaramente identificabile tra il codice "come si deve" e lo "spaghetti code". Che tu sappia esiste una trattazione sistematica sul tema? Mi interessa davvero, perché ammetto che il codice pasticciato è poco efficiente e fa perdere rapidamente il senso di quel che si sta facendo, e vorrei mettere una toppa ad alcuni difetti che, da autodidatta ho sicuramente accumulato.
Edit: Ho cercato da me e ora sto leggendo http://www.html.it/guide/guida-antipattern/. Può essere un buon punto di partenza? Ultima modifica effettuata da il 29/09/2014 alle 22:00 |
|
pierotofy (Admin)
Guru^2
Messaggi: 6230
Iscritto: 04/12/2003
|
Postato originariamente da AldoBaldo:
non ho mai trovato qualcuno che cercasse di tracciare un limite chiaramente identificabile tra il codice "come si deve" e lo "spaghetti code". |
Sono stati fatti diversi studi per capire quali sono le "pratiche buone" da seguire. Un buon testo che sommarizza molti concetti e' Code Complete 2 di Steve McConnell. Un po' lungo, ma da leggere dall'inizio alla fine.
|
|