Conseils pour les programmes à l'écrit ?

Messages : 156

Enregistré le : 19 déc. 2014 17:35

Classe : MP*

Re: Conseils pour les programmes à l'écrit ?

Message par CendreWapiti » 22 avr. 2018 18:52

Le bon bail, c'est d'écrire tous les programmes au crayon à papier.
J'ai fait ça à tous mes ds d'info et ça avait pas l'air de déplaire aux profs.
Aux concours aussi c'est bien passé

Comme ça, tu peux écrire direct tes programmes sur ta copie, et corriger simplement les programmes en gommant, c'est un énorme gain de temps
2014 - 2015 : MPSI2 Chaptal
2015 - 2016 : MP* Chaptal
X 2016

Messages : 813

Enregistré le : 19 avr. 2015 00:08

Re: Conseils pour les programmes à l'écrit ?

Message par darklol » 22 avr. 2018 19:04

siro a écrit :
20 avr. 2018 15:51
(D'une manière générale, les break et les go to sont à proscrire en programmation itérative, du if et du while suffisent (et if autant que possible, while pas plus que nécessaire, tant que le but n'est pas d'optimiser).)
C’est souvent 10x plus lisible d’avoir des break ou des continue plutôt que 50 ifs imbriqués, cf message de -L-C-. D’ailleurs même goto est indispensable dans les langages avec une gestion des erreurs un peu primaire, genre en C ou en Go.
ENS Lyon
Ingénieur de recherche

Messages : 80

Enregistré le : 25 avr. 2017 11:25

Classe : Mage

Localisation : 127.0.0.1

Re: Conseils pour les programmes à l'écrit ?

Message par Zehir » 22 avr. 2018 23:15

darklol a écrit :
22 avr. 2018 19:04
siro a écrit :
20 avr. 2018 15:51
(D'une manière générale, les break et les go to sont à proscrire en programmation itérative, du if et du while suffisent (et if autant que possible, while pas plus que nécessaire, tant que le but n'est pas d'optimiser).)
C’est souvent 10x plus lisible d’avoir des break ou des continue plutôt que 50 ifs imbriqués, cf message de -L-C-. D’ailleurs même goto est indispensable dans les langages avec une gestion des erreurs un peu primaire, genre en C ou en Go.
Je suis d'accord pour les breaks. Il y a aussi des cas où ils font quasiment partie de la syntaxe, par exemple dans les switchs. Pour les goto, le fait est qu'il a une réputation assez sale, et il y a souvent (mais pas toujours) moyen de s'en passer.

Messages : 813

Enregistré le : 19 avr. 2015 00:08

Re: Conseils pour les programmes à l'écrit ?

Message par darklol » 23 avr. 2018 08:11

On voit que t’as jamais eu à écrire de la gestion d’erreurs en C.

Blague à part, évidemment que 99.9% du temps on s’en passe et à raison (d’ailleurs beaucoup de langages n’ont pas cette instruction et s’en portent bien), mais c’est exactement ce que j’ai dit, parfois il est indispensable, j’ai pas dit qu’il était tout le temps indispensable. Quand on dit qu’il a une « réputation assez sale », encore faut-il savoir la justifier, ce que beaucoup de gens ne savent pas faire, plutôt que de colporter sans cesse un adage qu’on ne comprend pas...
ENS Lyon
Ingénieur de recherche

Messages : 292

Enregistré le : 01 août 2011 21:09

Classe : Doctorat

Re: Conseils pour les programmes à l'écrit ?

Message par Hazherty » 23 avr. 2018 10:03

Dans des cas bien particuliers, les breaks et goto peuvent se rendre utile (mais je ne vois pas quand ils sont indispensables, on peut toujours s'en sortir avec une autre condition d'arrêt ou un appel de fonction).

Le problème avec ces instructions, surtout le goto, c'est qu'elles peuvent rendre du code illisible autant qu'elles peuvent le simplifier. Elles sont donc généralement déconseillées aux débutants.
Les rares fois où j'ai vu une utilisation intelligente de goto, c'est pour la gestion d'erreurs style try-catch, ou de l'optimisation du flot de contrôle pour l'embarqué.

D'où ma phrase "c'est un peu sale", et non "cette instruction devrait disparaître puisqu'on peut faire sans".

Messages : 80

Enregistré le : 25 avr. 2017 11:25

Classe : Mage

Localisation : 127.0.0.1

Re: Conseils pour les programmes à l'écrit ?

Message par Zehir » 23 avr. 2018 10:50

darklol a écrit :
23 avr. 2018 08:11
On voit que t’as jamais eu à écrire de la gestion d’erreurs en C.

Blague à part, évidemment que 99.9% du temps on s’en passe et à raison (d’ailleurs beaucoup de langages n’ont pas cette instruction et s’en portent bien), mais c’est exactement ce que j’ai dit, parfois il est indispensable, j’ai pas dit qu’il était tout le temps indispensable. Quand on dit qu’il a une « réputation assez sale », encore faut-il savoir la justifier, ce que beaucoup de gens ne savent pas faire, plutôt que de colporter sans cesse un adage qu’on ne comprend pas...
Il faut se calmer un peu et éviter les procès d'intentions abusifs.

Le fait est que l'instruction était un peu trop utilisée et dans des cas où l'on en avait pas du tout besoin, ce qui donnait du code absolument immonde. La réputation assès sale dont je parle est l'oeuvre d'Edsger Dijktstra « Go To Statement Considered Harmful » de 68. Alors oui, c'est très moche quand tu l'utilises comme reliquat d'avant la programmation structurée.

Messages : 813

Enregistré le : 19 avr. 2015 00:08

Re: Conseils pour les programmes à l'écrit ?

Message par darklol » 23 avr. 2018 12:48

Excuse moi mon propos était sans doute mal rédigé, je ne sous entendais absolument pas que toi en particulier ne sache pas le justifier, je parlais juste des discours bateau qu’on peut entendre sur les forums de programmation ou autres. En particulier ce que j’applique à « beaucoup de gens » ne te visait pas.
ENS Lyon
Ingénieur de recherche

Messages : 80

Enregistré le : 25 avr. 2017 11:25

Classe : Mage

Localisation : 127.0.0.1

Re: Conseils pour les programmes à l'écrit ?

Message par Zehir » 23 avr. 2018 13:04

D'accord, je comprends mieux.

En tout cas, si l'on reste dans le cadre de l'informatique en prépa, je doute fortement que l'on ait besoin d'un goto dans quelqu'épreuve que ce soit, parce qu'il y a toujours moyen de faire mieux sans.

Messages : 813

Enregistré le : 19 avr. 2015 00:08

Re: Conseils pour les programmes à l'écrit ?

Message par darklol » 23 avr. 2018 13:10

Clairement, surtout que comme dit plus haut dans un de mes posts et de celui d’Hazherty, l’utilisation « clean » principale de goto c’est d’émuler une gestion d’erreurs à la try/catch dans des langages qui ne sont dotés d’aucun mécanisme pour disposer automatiquement des objets n’étant plus utilisés, problème qui ne se pose ni en Caml, ni en Python.
ENS Lyon
Ingénieur de recherche

YS1

Messages : 69

Enregistré le : 06 févr. 2005 11:50

Classe : MPSI, PCSI, MP*, PC*

Re: Conseils pour les programmes à l'écrit ?

Message par YS1 » 23 avr. 2018 23:04

CendreWapiti a écrit :
22 avr. 2018 18:52
Le bon bail, c'est d'écrire tous les programmes au crayon à papier.
J'ai fait ça à tous mes ds d'info et ça avait pas l'air de déplaire aux profs.
Aux concours aussi c'est bien passé
Ça me parait extrêmement risqué. Pour ma part je ne lis pas ce qui est écrit au crayon.
Après, si les copies de concours sont scannées avec un contraste suffisant…

Répondre