IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Affichage des résultats du sondage: Que pensez-vous de l'utilisation de Goto ?

Votants
50. Vous ne pouvez pas participer à ce sondage.
  • Goto c'est formidable, il faudrait l'utiliser plus souvent

    12 24,00%
  • Goto, c'est plus performant que les procédures, les fonctions ou la POO

    8 16,00%
  • On ne doit pas utiliser Goto parce que mon prof l'a dit

    12 24,00%
  • Utiliser Goto augmente le risque de bogues

    11 22,00%
  • Utiliser Goto rend le code illisible

    19 38,00%
  • On ne doit pas utiliser Goto pour préserver la beauté du code

    8 16,00%
  • Je refuse de voter pour ce sondage idiot

    12 24,00%
  • Autre avis (précisez)

    3 6,00%
  • Pas d'avis

    2 4,00%
Sondage à choix multiple
Langages de programmation Discussion :

Trolldi : GOTO est formidable, elle permet d'accélérer 2 à 3 fois la vitesse d'exécution du code


Sujet :

Langages de programmation

  1. #41
    Expert confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2012
    Messages
    1 711
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2012
    Messages : 1 711
    Points : 4 442
    Points
    4 442
    Par défaut
    Citation Envoyé par ijk-ref Voir le message
    Sinon ton exemple avec des if :
    Code C# : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    int i;
    if(i<=2)
    {
       if(i != 2)
       {
          doSomething();
       }
        doSomethingElse();
    }
    else 
    {
       doSomethingElseV2();
    }
    int != uint (au passage, encore quelque chose qui me dérange en C#, pourquoi est-ce que les indices / Count / Length / et autres sont des int et pas des uint ?)
    Mais en dehors de la simplification des conditions, pas de meilleure solution ?

  2. #42
    Expert confirmé Avatar de DonQuiche
    Inscrit en
    Septembre 2010
    Messages
    2 741
    Détails du profil
    Informations forums :
    Inscription : Septembre 2010
    Messages : 2 741
    Points : 5 485
    Points
    5 485
    Par défaut
    Citation Envoyé par Iradrille Voir le message
    encore quelque chose qui me dérange en C#, pourquoi est-ce que les indices / Count / Length / et autres sont des int et pas des uint ?
    Parce qu'il est plus fréquent de voir des bugs causés par des résultats intermédiaires qui auraient dû être négatifs mais ne le sont pas à cause d'opérandes non-signées, que de voir des bugs causés par des nombres supérieurs à 2^31.

    Par ailleurs il y a un peu plus de possibilités d'optimisation avec les entiers signés car le compilateur est libre d'introduire des soustractions tant que le risque d'overflow n'affecte pas l'issue (a < x < b peut devenir (x - a) < (b - a) avec une comparaison non-signée).

    Accessoirement en C++, il est plus rapide sur certaines architectures d'utiliser des compteurs "int" que "uint". C'est parce que le comportement de l'overflow des "int" est indéfini alors que celui des "uint" est défini. Les GPU tirent par exemple profit de cette liberté.

  3. #43
    Membre expérimenté

    Homme Profil pro
    Retraite
    Inscrit en
    Octobre 2005
    Messages
    477
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France, Aude (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Retraite
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2005
    Messages : 477
    Points : 1 332
    Points
    1 332
    Billets dans le blog
    1
    Par défaut
    bonjour, un GOTO n'a jamais fait de mal sauf si c'est un principe de programmation . alors goto ou not goto si cela était si mauvais c++ x17 ou 14 il aurait été retirer , non le goto n'est responsable de rien et peut être tres utils .......

  4. #44
    Expert éminent sénior
    Avatar de Jipété
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    10 688
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 10 688
    Points : 15 019
    Points
    15 019
    Par défaut
    Salut,

    Trouvé dans un mickeymouse de test d'un module à brancher sur USB :
    Code C : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
        if (!vid && !pid && (interface == INTERFACE_ANY))
        {
            ftdi_set_interface(ftdi, INTERFACE_ANY);
            struct ftdi_device_list *devlist;
            int res;
            if ((res = ftdi_usb_find_all(ftdi, &devlist, 0, 0)) < 0)
            {
                fprintf(stderr, "No FTDI with default VID/PID found\n");
                goto do_deinit;
            }
            if (res == 1)
            {
                f = ftdi_usb_open_dev(ftdi,  devlist[0].dev);
                if (f<0)
                {
                    fprintf(stderr, "Unable to open device %d: (%s)",
                            i, ftdi_get_error_string(ftdi));
                }
            }
            ftdi_list_free(&devlist);
            if (res > 1)
            {
                fprintf(stderr, "%d Devices found, please select Device with VID/PID\n", res);
                /* TODO: List Devices*/
                goto do_deinit;
            }
            if (res == 0)
            {
                fprintf(stderr, "No Devices found with default VID/PID\n");
                goto do_deinit;
            }
        }
    Il a à vivre sa vie comme ça et il est mûr sur ce mur se creusant la tête : peutêtre qu'il peut être sûr, etc.
    Oui, je milite pour l'orthographe et le respect du trait d'union à l'impératif.
    Après avoir posté, relisez-vous ! Et en cas d'erreur ou d'oubli, il existe un bouton « Modifier », à utiliser sans modération
    On a des lois pour protéger les remboursements aux faiseurs d’argent. On n’en a pas pour empêcher un être humain de mourir de misère.
    Mes 2 cts,
    --
    jp

  5. #45
    Expert éminent sénior
    Homme Profil pro
    Analyste/ Programmeur
    Inscrit en
    Juillet 2013
    Messages
    4 626
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Analyste/ Programmeur

    Informations forums :
    Inscription : Juillet 2013
    Messages : 4 626
    Points : 10 542
    Points
    10 542
    Par défaut
    Citation Envoyé par Jipété Voir le message
    Salut,

    Trouvé dans un mickeymouse de test d'un module à brancher sur USB :
    Et ?

    Parce que c'est le cas le plus fréquent: faire une section de nettoyage accessible via un goto.
    Sinon en C, tu es obligé de faire un copié-collé ... et, en premier lieu, tu exploses la taille du code en plus des erreurs d'inattention/ du copié-collé

  6. #46
    Expert confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2012
    Messages
    1 711
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2012
    Messages : 1 711
    Points : 4 442
    Points
    4 442
    Par défaut
    Citation Envoyé par Jipété Voir le message
    Salut,

    Trouvé dans un mickeymouse de test d'un module à brancher sur USB :
    C'est un bon cas d'utilisation de goto.

  7. #47
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    467
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 467
    Points : 681
    Points
    681
    Par défaut
    Citation Envoyé par JPLAROCHE Voir le message
    bonjour, un GOTO n'a jamais fait de mal sauf si c'est un principe de programmation . alors goto ou not goto si cela était si mauvais c++ x17 ou 14 il aurait été retirer , non le goto n'est responsable de rien et peut être tres utils .......
    Sauf que tu oublies l'une des utilités d'un compilateur : compiler du codes auto-générés.

    "Goto" n'est absolument pas conseillé dans du code écrit à la main concernant 99% des programmeurs par contre rien ne peut remplacer sa flexibilité et puissance brute pour auto-générer des structures différentes et plus complexes qu'un "if" ou "while". Donc cela reste bien utile mais cela reste quand même mauvais de l'utiliser manuellement.

  8. #48
    Membre éclairé
    Homme Profil pro
    Webdesigner
    Inscrit en
    Juin 2014
    Messages
    415
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Hautes Pyrénées (Midi Pyrénées)

    Informations professionnelles :
    Activité : Webdesigner
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Juin 2014
    Messages : 415
    Points : 831
    Points
    831
    Par défaut
    Depuis lors, on a commencé à recourir à des structures comme les conditionnelles (if .. then .. else ..) ou les boucles (for, while, etc.) qui font partie intégrante de tous les langages de programmation impératifs modernes.
    Les structures conditionnelles et les boucles n'ont rien à voir avec l'utilisation de l'instruction GOTO. Le Qbasic contenait toutes ces structures. Par contre, pour autant que je me rappelle, pas de fonctions. La était la vraie lacune.

  9. #49
    Expert éminent
    Avatar de Lung
    Profil pro
    Analyste-programmeur
    Inscrit en
    Mai 2002
    Messages
    2 662
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste-programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 662
    Points : 6 943
    Points
    6 943
    Par défaut
    Citation Envoyé par domi65 Voir le message
    Par contre, pour autant que je me rappelle, pas de fonctions. La était la vraie lacune.
    Le gosub revenait à faire appel à des sous-fonctions, non ?
    L'urgent est fait, l'impossible est en cours, pour les miracles prévoir un délai. ___ Écrivez dans un français correct !!

    C++Builder 5 - Delphi 6#2 Entreprise - Delphi 2007 Entreprise - Delphi 2010 Architecte - Delphi XE Entreprise - Delphi XE7 Entreprise - Delphi 10 Entreprise - Delphi 10.3.2 Entreprise - Delphi 10.4.2 Entreprise
    OpenGL 2.1 - Oracle 10g - Paradox - Interbase (XE) - PostgreSQL (11.6 - 14.6)

  10. #50
    Membre averti
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2016
    Messages
    129
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Santé

    Informations forums :
    Inscription : Novembre 2016
    Messages : 129
    Points : 443
    Points
    443
    Par défaut
    Citation Envoyé par Lung Voir le message
    Le gosub revenait à faire appel à des sous-fonctions, non ?
    Disons que ça fait le job, mais que ça n'est pas la panacée non plus, dans la mesure ou la sous-routine invoquée par un gosub ne peut pas prendre de paramètre ou retourner de valeur.

Discussions similaires

  1. Réponses: 6
    Dernier message: 26/09/2008, 11h04
  2. Réponses: 3
    Dernier message: 04/03/2007, 10h34
  3. Une liste déroulante est-elle toujours en 1er plan ?
    Par Marc365 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 5
    Dernier message: 01/05/2006, 21h16
  4. Réponses: 4
    Dernier message: 04/10/2005, 15h37

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo