Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
C/C++ - Dubbio da principiante in C
Forum - C/C++ - Dubbio da principiante in C

Pagine: [ 1 2 ] Precedente | Prossimo
Avatar
Arat (Normal User)
Newbie


Messaggi: 8
Iscritto: 24/09/2014

Segnala al moderatore
Postato alle 17:59
Mercoledì, 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.

PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 6402
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 20:01
Mercoledì, 24/09/2014
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à.
PM Quote
Avatar
TheDarkJuster (Member)
Guru^2


Messaggi: 1620
Iscritto: 27/09/2013

Segnala al moderatore
Postato alle 21:50
Mercoledì, 24/09/2014
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.

PM Quote
Avatar
pierotofy (Admin)
Guru^2


Messaggi: 6230
Iscritto: 04/12/2003

Segnala al moderatore
Postato alle 22:58
Domenica, 28/09/2014
Testo quotato

Postato originariamente da TheDarkJuster:
da evitare come l'uso dei goto in un linguaggio diverso dall'assembly



:ot: ci sono alcune rare situazioni in cui l'uso del goto e' piu' che accettabile in molti linguaggi.


Il mio blog: https://piero.dev
PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 6402
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 11:14
Lunedì, 29/09/2014
Testo quotato

Postato originariamente da pierotofy:

Testo quotato

Postato originariamente da TheDarkJuster:
da evitare come l'uso dei goto in un linguaggio diverso dall'assembly



:ot: 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à.
PM Quote
Avatar
()
Newbie


Messaggi:
Iscritto:

Segnala al moderatore
Postato alle 18:40
Lunedì, 29/09/2014
Testo quotato

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?

PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 6402
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 18:54
Lunedì, 29/09/2014
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à.
PM Quote
Avatar
()
Newbie


Messaggi:
Iscritto:

Segnala al moderatore
Postato alle 20:40
Lunedì, 29/09/2014
Testo quotato

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
PM Quote
Avatar
pierotofy (Admin)
Guru^2


Messaggi: 6230
Iscritto: 04/12/2003

Segnala al moderatore
Postato alle 22:09
Lunedì, 29/09/2014
Testo quotato

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.


Il mio blog: https://piero.dev
PM Quote
Pagine: [ 1 2 ] Precedente | Prossimo