Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Test ride Can-Am Origin: la moto elettrica che fa dimenticare il motore a scoppio (ma occhio all'autonomia)
Test ride Can-Am Origin: la moto elettrica che fa dimenticare il motore a scoppio (ma occhio all'autonomia)
Abbiamo provato per una settimana intera la Can-Am Origin, la Dual Sport elettrica del gruppo canadese BRP: ecco com'è andata tra città, autostrada e un primo assaggio di sterrato
Logitech G325, G305 e G316 X: il tris per chi non vuole rinunciare a nulla, spendendo poco
Logitech G325, G305 e G316 X: il tris per chi non vuole rinunciare a nulla, spendendo poco
Nelle ultime settimane abbiamo provato il mouse Logitech G305, la tastiera G316 X 98 e le cuffie G325. Si tratta del setup entry-level di Logitech che ormai, di "entry-level" ha ben poco. Tastiera e mouse offrono prestazioni di livello competitivo con quasi nessuna rinuncia e un livello di personalizzazione estremamente elevato. Le cuffie, invece, hanno mostrato qualche debolezza, ma propongono un ventaglio di funzionalità completo che consente di abbandonare completamente i cavi
Recensione POCO F9 pro: potenza da vero top di gamma, display da 185 Hz e finalmente una fotocamera da prendere sul serio
Recensione POCO F9 pro: potenza da vero top di gamma, display da 185 Hz e finalmente una fotocamera da prendere sul serio
POCO F9 Pro arriva sul mercato con l'obiettivo di portare prestazioni da smartphone top di gamma in una fascia di prezzo "più aggressiva", senza rinunciare a un comparto fotografico finalmente all'altezza. Dopo averlo testato sul campo, emerge uno smartphone molto più completo rispetto alla generazione precedente, ma anche con alcuni piccoli compromessi che diventano difficili da ignorare quando il prezzo di listino sfiora i 1.000 euro.
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 07-11-2015, 20:28   #1
Akali
Junior Member
 
L'Avatar di Akali
 
Iscritto dal: Nov 2015
Città: Catania
Messaggi: 1
[C] GOTO

Sera tutti, mi potete spiegare le principali ragioni per cui si odia così tanto il GOTO? Io credo che se lo si utilizza in maniera intelligente qualcosa di buono ci ricavi. Anche molti docenti ne hanno quasi proibito l'uso (alcuni minacciando una bocciatura istantanea) mentre altri dicono che un corretto utilizzo possa solo giovare. Chi ha ragione quindi secondo voi?
__________________
In due occasioni mi è stato chiesto [da parte dei membri del Parlamento]: 'Scusi, signor Babbage, se si mettono nella macchina dati sbagliati, Usciranno comunque le risposte giuste?' Io non sono in grado di capire quale confusione mentale porti a formulare una simile domanda
Akali è offline   Rispondi citando il messaggio o parte di esso
Old 08-11-2015, 00:22   #2
Daniels118
Senior Member
 
L'Avatar di Daniels118
 
Iscritto dal: Jan 2014
Messaggi: 852
Il motivo per il quale si sconsiglia di utilizzare il goto è che esso rende il codice destrutturato e di conseguenza più difficile da interpretare. In pratica quando osservi un algoritmo correttamente formattato (indentato) riesci subito ad individuare dei blocchi di codice ed hai la certezza che a run time quando entri in un blocco questo viene eseguito fino alla fine, quindi l'esecuzione riprende dall'istruzione successiva o dall'inizio del blocco se si tratta di un ciclo; se invece nel blocco è presente un goto il flusso di esecuzione potrebbe saltare in un punto completamente diverso del programma, per questo occorre molto più impegno per comprendere la logica che c'è dietro. D'altra parte però il goto insieme ad altre istituzioni (break e return) consente di gestire in maniera più intuitiva le condizioni di eccezione, ovvero quelle condizioni in cui l'esecuzione dell'algoritmo non è più necessaria (perché i dati sono compromessi oppure si è giunti alla soluzione prima del previsto). In java ad esempio è stato creato un ibrido per rendere strutturata la gestione delle eccezioni attraverso il costrutto try catch e l'istruzione throw, che di fatto esegue un salto proprio come il goto.
Daniels118 è offline   Rispondi citando il messaggio o parte di esso
Old 08-11-2015, 10:15   #3
lorenzo001
Senior Member
 
Iscritto dal: Jul 2008
Città: Roma
Messaggi: 542
Non capisco Akali ... perché la risposta di Daniels118 viene riportata tale e quale a nome di un altro utente in altro forum

http://www.inforge.net/xi/threads/c-.../#post-4355472

Fai la domanda qui e la riporti su Inforge? Che comportamento è questo?

E poi un "ingegnere elettronico" (nell'altro forum sei "laureato in informatica") che fa queste domande !

Forse la tua vera età spiega questo comportamento infantile ...

Ultima modifica di lorenzo001 : 08-11-2015 alle 10:27.
lorenzo001 è offline   Rispondi citando il messaggio o parte di esso
Old 10-11-2015, 10:52   #4
das
Senior Member
 
Iscritto dal: Jan 2001
Città: Livorno
Messaggi: 1392
Dipende da quello che vuoi fare. Se vuoi che il codice sia facilmente riutilizzabile in altri contesti il goto può essere un ostacolo.

Se scrivi del codice per te e vuoi ottenere il risultato nel minor tempo possibile senza scervellarsi troppo, allora lo puoi usare.

Personalmente penso la gente (tipo i tuoi prof) si fissi con delle regole e poi diventa matta per rispettarle. In realtà non esistono regole, dipende sempre da quello che vuoi fare.

Per quanto riguarda la comprensibilità del codice allora le funzioni ricorsive sono molto peggio del goto, eppure sono universalmente riconosciute come esempio di eleganza e bravura.

Ultima modifica di das : 10-11-2015 alle 10:54.
das è offline   Rispondi citando il messaggio o parte di esso
Old 13-11-2015, 20:28   #5
fano
Senior Member
 
Iscritto dal: Nov 2005
Messaggi: 2095
Forse l'unico caso in cui il goto è giustificabile è quando, come diceva Daniels118 è successo un errore "irrecuperabile" (in "veri" linguaggi di programmazioni sono appunto chiamate eccezioni!) e uno fa un goto end e nella label end fai il clean up. Nel mio team di lavoro sono vietate e quindi si fa return quando l'errore irrecuperabile accade si fa prima il clean up il problema di questo approccio e che, a volte, per la sfrescia di fare return il codice di clean up ci se lo dimentica.

Detto questo anche se il codice te lo scrivi per il tuo uso e consumo cerca di non usare il goto pensaci bene magari chiamando una funzione avresti un codice più bello e non ti troveresti a far "pasticci"?

Per esempio ecco come fare per non prendersela nello stoppino con clean up & return:

Codice:
int my_func(void)
{
       [...]
       char *test = malloc(); // ma può essere anche una (f)open o una qualunque risorsa che devi liberare
       int rc;
       rc = do_something_with_test();
       // Che abbia funzionato o no liberiamo 'test'
       free(test);
       if (rc != 0)
            combust(); // Siamo fritti!

       return rc;
}
Le ultime versione del C hanno le embedded function (simili alle lambda functions e alle closure di altri linguaggi):

Codice:
int my_func(void)
{
       [...]
       char *test = malloc(); // ma può essere anche una (f)open o una qualunque risorsa che devi liberare

       int do_something_with_test(void) {
             [...]
       }

       int rc;
       rc = do_something_with_test();
       // Che abbia funzionato o no 'test' non serve più
       free(test);
       if (rc != 0)
            combust(); // Siamo fritti!

       return rc;
}
Purtroppo per quante sia una "bella" soluzione quella di creare una embedded function non la consiglio non è - stranamente - compatibile con il C++ e questo a me ha morso le chiappe (ero così ingorillato e poi...)

P.S. Non pensare che goto sia più ottimizzato che chiamare una funzione! Questi ragionamenti deve farli il compilatore... se proprio vuoi dichiara do_something_with_test() come static inline così stai sereno

Ultima modifica di fano : 13-11-2015 alle 20:42.
fano è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Test ride Can-Am Origin: la moto elettrica che fa dimenticare il motore a scoppio (ma occhio all'autonomia) Test ride Can-Am Origin: la moto elettrica che f...
Logitech G325, G305 e G316 X: il tris per chi non vuole rinunciare a nulla, spendendo poco Logitech G325, G305 e G316 X: il tris per chi no...
Recensione POCO F9 pro: potenza da vero top di gamma, display da 185 Hz e finalmente una fotocamera da prendere sul serio Recensione POCO F9 pro: potenza da vero top di g...
Tra audio e AI: la ricetta di Qualcomm per l'agentic AI Tra audio e AI: la ricetta di Qualcomm per l'age...
Qualcomm annuncia la nuova generazione di SoC Snapdragon 8 Elite Gen 6 Qualcomm annuncia la nuova generazione di SoC Sn...
Il satellite LINK è rientrato nel...
L'ESA risponde alle critiche di Jared Is...
La NASA annuncia il nuovo telescopio spa...
HONOR pubblica The Sea Between Us, un co...
L'Olanda punta su NixOS e open source pe...
OPPO Find X10 Pro Max, il flagship con t...
Gli smartphone Samsung potrebbero avere ...
GeForce Now arriverà sui Googlebo...
Opus 5.5 e GPT-6 Sol nello stesso pomeri...
Weekend Amazon, le prime 5 offerte sono ...
Mini Compressore a 21,84€: gonfia le gom...
Gemini si aggiorna, ora può conne...
Da 32 a 65 pollici: ecco le TV più...
Xiaomi Redmi Note 17 a 269€: ecco perch&...
ASUS avverte i clienti: accesso non auto...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 03:36.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v