EquivalentGOTO en programmation scilab

Discutez d'informatique ici !
andros06
Membre Relatif
Messages: 180
Enregistré le: 30 Aoû 2006, 15:30

EquivalentGOTO en programmation scilab

par andros06 » 28 Juin 2007, 12:27

Bonjour,
qqun connaitrait-il l'équivalent du "goto" sous scilab ?
merci d'avance

Andros, Andros ça c'est fort de fruits



Dominique Lefebvre
Membre Légendaire
Messages: 8007
Enregistré le: 03 Déc 2005, 14:00

par Dominique Lefebvre » 28 Juin 2007, 14:06

Bonjour,

Il n'existe pas d'instruction de branchement inconditionnel dans scliab.
Mais tu disposes d'un tas d'autres instructions qui te peremttront sans doute de t'en sortir, je pense en particulier au select-case.
Pour le traitement des erreurs, utilise les fonctions appropriées comme errcatch, iserror et errclear.

Patastronch
Membre Irrationnel
Messages: 1345
Enregistré le: 23 Aoû 2005, 01:53

par Patastronch » 28 Juin 2007, 20:36

Juste pour préciser : Je met zéro a tous mes étudiants qui utilisent un Goto.

J'espere que ton prof est plus cool que moi :)

Dominique Lefebvre
Membre Légendaire
Messages: 8007
Enregistré le: 03 Déc 2005, 14:00

par Dominique Lefebvre » 28 Juin 2007, 21:05

Patastronch a écrit:Juste pour préciser : Je met zéro a tous mes étudiants qui utilisent un Goto.

J'espere que ton prof est plus cool que moi :)


Ne sois pas si dur! Si tu voyais le nombre de branchements inconditionnels qu'on voit chez les programmeurs professionnels! Et l'ostracisme envers le GOTO n'est pas toujours justifé...

Joker62
Membre Transcendant
Messages: 5028
Enregistré le: 24 Déc 2006, 21:29

par Joker62 » 28 Juin 2007, 23:52

Le célèbre GOTO a sa place sur n'importe quel forum on dirait :D
Déjà sur Cppfrance, un collègue se faisait charier à chaque utilisation :)

Pourtant il est pratique
Bon en petite quantité
Après c'est vrai qu'on s'y perd.

Mais après tout, niveau code assembleur, ça revient à un JMP si je n'm'abuse ?
Et un if else également no ?

Dominique Lefebvre
Membre Légendaire
Messages: 8007
Enregistré le: 03 Déc 2005, 14:00

par Dominique Lefebvre » 29 Juin 2007, 00:08

Joker62 a écrit:Mais après tout, niveau code assembleur, ça revient à un JMP si je n'm'abuse ?
Et un if else également no ?


En effet, le goto correspond au JMP de l'assembleur.

Par contre un if the else est un branchement conditionnel et n'est donc pas l'équivalent d'un GOTO. Il n'empêche que toutes les instructions conditionnelles peuvent et sont construites à partir de GOTO...

Joker62
Membre Transcendant
Messages: 5028
Enregistré le: 24 Déc 2006, 21:29

par Joker62 » 29 Juin 2007, 00:30

Comme quoi, faut être indulgent avec ce ptit mot :)
J'l'aime bien moi :]

eusebius
Membre Relatif
Messages: 134
Enregistré le: 28 Avr 2006, 20:53

par eusebius » 29 Juin 2007, 01:26

Dominique Lefebvre a écrit:En effet, le goto correspond au JMP de l'assembleur.

Plutôt qu'un BRA qu'un JMP je dirais, mais peu importe.

Le débat sur le goto, ça fait trente ans qu'il est clos, on va pas en rajouter.
On démontre qu'il n'apporte rien au niveau expressivité. C'est un des signes d'un défaut d'analyse, il pose des problèmes au niveau lisibilité, modularité, réutilisabilité, maintenabilité du code (donc effectivement, on retombe à peu près au niveau assembleur).

Le fait que des gens l'utilisent ne change rien au problème, et chacun fait bien ce qu'il veut à ce sujet s'il en a la liberté.

Je rejoins plus ou moins Patastronch, je mets pas systématiquement zéro à ceux de mes étudiants qui l'utilisent... Mais disons que je fais en sorte qu'aucun ne le fasse :-)

Esger Wybe Dijkstra, "Goto considered harmful"

Dominique Lefebvre
Membre Légendaire
Messages: 8007
Enregistré le: 03 Déc 2005, 14:00

par Dominique Lefebvre » 29 Juin 2007, 09:33

eusebius a écrit:Plutôt qu'un BRA qu'un JMP je dirais, mais peu importe.



Dans le jeu d'instructions auquel je me référais implicitement, le plus usité dans mon domaine soit le jeu 80xxx, BRA n'existe pas et le branchement inconditionnel (i.e. le transfert du contôle vers l'adresse opérande) est bien le JMP. Mais peu importe...

J'entends bien les discours de tous les profs d'info, mais je me demande où ils enseignent? Car les jeunes scientifiques ou ingés venus des fac et certaines GE utilisent encore le GOTO et pas toujours à bon escient (si tant est qu'il y ait une bonne occasion de l'utiliser...)

eusebius
Membre Relatif
Messages: 134
Enregistré le: 28 Avr 2006, 20:53

par eusebius » 29 Juin 2007, 09:42

Dominique Lefebvre a écrit:Dans le jeu d'instructions auquel je me référais implicitement, le plus usité dans mon domaine soit le jeu 80xxx, BRA n'existe pas et le branchement inconditionnel (i.e. le transfert du contôle vers l'adresse opérande) est bien le JMP. Mais peu importe...

OK, mes vagues souvenirs de 68000 m'ont trahi ;-)

Dominique Lefebvre a écrit:J'entends bien les discours de tous les profs d'info, mais je me demande où ils enseignent? Car les jeunes scientifiques ou ingés venus des fac et certaines GE utilisent encore le GOTO et pas toujours à bon escient (si tant est qu'il y est une bonne occasion de l'utiliser...)

Ah ben ça, une fois qu'ils sont sortis, ils sont "libres" (c'était un peu le sens d'une de mes remarques), mais les rares entreprises dans lesquelles j'ai travaillé avaient des normes de programmation contre ce genre de pratique. Ceci dit, ça peut dépendre du langage, un mec qui va être engagé pour faire des scripts VBA aura peut-être plus tendance à mettre des GOTO dans son code.
Il faut voir aussi que tous les gens qui sont recrutés pour coder ne sont pas forcément des informaticiens purs et durs de formation.

Patastronch
Membre Irrationnel
Messages: 1345
Enregistré le: 23 Aoû 2005, 01:53

par Patastronch » 29 Juin 2007, 14:04

Dominique Lefebvre a écrit:Ne sois pas si dur! Si tu voyais le nombre de branchements inconditionnels qu'on voit chez les programmeurs professionnels! Et l'ostracisme envers le GOTO n'est pas toujours justifé...



Je suis pas un monstre, c est pas vrai !

En fait le premier TP qui'ils me font est blindé de Goto pour la majorité d'entre eux. Je met 0 a tous ceux l'ayant utilisé et apres je te garanti qu'aucun d'entre eux ne refait un Goto.

(de meme pour les trucs du genre : if(condition) then return true; else return false;)

A la fin du semestre je ne compte tout simplement pas ce TP dans la moyenne si il la fait baisser, mais ils ont pris l'habitude de ne pas user du Goto.

Ce n'est pas pour rien que le goto n'existe plus dans les langages modernes, comme le dit si bien Eusebius, ce n'est pas niveau performance de l'execution qui est critiqué a un Goto (quoique, sortir d'un bloc récursif avec un Goto c'est loin d etre top) mais bel est bien la compréhension, la réutilisabilité et ce genre de choses indispensable lorsque l'on fait un projet d'une taille un peu consequente.
(@Dominique : c'est d'ailleur a ce genre de chose que l'objet sert, ca n'optimise rien du tout l'objet)

Enfin bon, l'ennuie c est qu'un étudiant qui a l'habitude d'utiliser des goto sur ses petits projets de fac ca n'est pas genant (les projets sont généralement tres court), mais si un jour il fait un code serieu et un peu long il va etre completement perdu (surtout si ils sont plusieurs sur le code). Et dieu sait qu'une mauvaise habitude de programmation est dur a faire partir.

Dominique Lefebvre
Membre Légendaire
Messages: 8007
Enregistré le: 03 Déc 2005, 14:00

par Dominique Lefebvre » 29 Juin 2007, 19:42

eusebius a écrit:OK, mes vagues souvenirs de 68000 m'ont trahi ;-)


Je l'avais compris... J'ai fait aussi du 6800 dans les temps!


Ah ben ça, une fois qu'ils sont sortis, ils sont "libres" (c'était un peu le sens d'une de mes remarques), mais les rares entreprises dans lesquelles j'ai travaillé avaient des normes de programmation contre ce genre de pratique. Ceci dit, ça peut dépendre du langage, un mec qui va être engagé pour faire des scripts VBA aura peut-être plus tendance à mettre des GOTO dans son code.
Il faut voir aussi que tous les gens qui sont recrutés pour coder ne sont pas forcément des informaticiens purs et durs de formation.


Un exemple perso récent: dans mon équipe, nous produisons des codes de simu. Nous appliquons les règles de programmation du Lactamme - celles de JF Colonna- et utilisons un AGL. Mes collaborateurs sont essentiellement des physiciens et deux mathématiciens. Aucun informaticien. Ils ont entre 25 et 30 ans, donc à peine sortis de l'école. Et bien certains sont des rois du GOTO, et du code mal structuré. Et pourtant, les cours d'info de leurs écoles sont généralement bon (X, ENSTA, Paris 6, Paris 7)! Comment expliques-tu cela?

bruce.ml
Membre Rationnel
Messages: 630
Enregistré le: 19 Juin 2007, 01:54

par bruce.ml » 30 Juin 2007, 16:05

Dominique Lefebvre a écrit:Je l'avais compris... J'ai fait aussi du 6800 dans les temps!



Un exemple perso récent: dans mon équipe, nous produisons des codes de simu. Nous appliquons les règles de programmation du Lactamme - celles de JF Colonna- et utilisons un AGL. Mes collaborateurs sont essentiellement des physiciens et deux mathématiciens. Aucun informaticien. Ils ont entre 25 et 30 ans, donc à peine sortis de l'école. Et bien certains sont des rois du GOTO, et du code mal structuré. Et pourtant, les cours d'info de leurs écoles sont généralement bon (X, ENSTA, Paris 6, Paris 7)! Comment expliques-tu cela?


Ils ne les ont pas suivi ? :ptdr:
Aucun informaticien sérieux n'utilise de goto.

eusebius
Membre Relatif
Messages: 134
Enregistré le: 28 Avr 2006, 20:53

par eusebius » 30 Juin 2007, 16:17

Dominique Lefebvre a écrit:Comment expliques-tu cela?

Eh bien tu m'as donné une illustration de ce que je disais, donc c'est déjà fait ;-)

Dominique Lefebvre
Membre Légendaire
Messages: 8007
Enregistré le: 03 Déc 2005, 14:00

par Dominique Lefebvre » 30 Juin 2007, 16:24

bruce.ml a écrit:Ils ne les ont pas suivi ? :ptdr:
Aucun informaticien sérieux n'utilise de goto.


Vu leurs classement de sortie, ils ont très certainemment suivis les cours d'info et avec de bonnes notes!

je ne confierai jamais à un informaticien la réalisation d'un code de calcul: il ne comprendrait pas ce qu'il fait.

Je connais plein d'informaticiens (pas sérieux c'est un illogisme) qui utilisent des GOTO (pas souvent quand même) et qui sont très appréciés dans leur boulot. Et ceux à qui je pense bossent sur de très grands projets: ça fait froid dans le dos, non :-))

Dominique Lefebvre
Membre Légendaire
Messages: 8007
Enregistré le: 03 Déc 2005, 14:00

par Dominique Lefebvre » 30 Juin 2007, 16:32

eusebius a écrit:Eh bien tu m'as donné une illustration de ce que je disais, donc c'est déjà fait ;-)


Oui, bien sur, ce ne sont pas des informaticiens! Comme je le dis plus haut, on n'emploit d'informaticiens pour faire des codes de calcul et de simu: ils sont nuls en physique et en AN. Le seul du coin est l'ingé système/réseau et on est obligé de lui expliquer le fonctionnement des fibres optiques et les limitations du stockage magnétique alors.... Mais bon, il sait faire tourner un serveur Unix!

Et non, nous ne faisons pas de script VBA mais du C et du FORTRAN. Et mes gars utilisent les GOTO essentiellement pour le traitement des exceptions, ce qui ne nuit en rien à la réutilisabilité ou à la maintenabilité du code! Ce n'est pas très beau, je me préfère le try-except mais en C... Alors, je laisse faire. Tant que le code tourne et donne des résultats physiquement corrects!
Quant au FORTAN 77 (ce n'est plus vrai en 9X), on peut difficilement se passer du GOTO dans certains cas (encore les exceptions).

bruce.ml
Membre Rationnel
Messages: 630
Enregistré le: 19 Juin 2007, 01:54

par bruce.ml » 30 Juin 2007, 16:35

Dominique Lefebvre a écrit:Vu leurs classement de sortie, ils ont très certainemment suivis les cours d'info et avec de bonnes notes!

je ne confierai jamais à un informaticien la réalisation d'un code de calcul: il ne comprendrait pas ce qu'il fait.

Je connais plein d'informaticiens (pas sérieux c'est un illogisme) qui utilisent des GOTO (pas souvent quand même) et qui sont très appréciés dans leur boulot. Et ceux à qui je pense bossent sur de très grands projets: ça fait froid dans le dos, non :-))


Je sais pas si t'es au courent mais les gens qui font des logiciels comme Mapple, Mathematica, Mathlab etc. ce sont des informaticiens qui font du calcul formel. Et quand tu compares le temps d'un calcul d'un matheux et d'un informaticien, en général tu trouves un facteur 1 000 000 dès des données moyennes ...
Et pour le goto je maintiens, je ne sais pas d'où ils sortent tes informaticiens, mais on peut toujours se passer de goto, et c'est beaucoup plus simple à maintenir.

Dominique Lefebvre
Membre Légendaire
Messages: 8007
Enregistré le: 03 Déc 2005, 14:00

par Dominique Lefebvre » 30 Juin 2007, 16:54

bruce.ml a écrit:Je sais pas si t'es au courent mais les gens qui font des logiciels comme Mapple, Mathematica, Mathlab etc. ce sont des informaticiens qui font du calcul formel. Et quand tu compares le temps d'un calcul d'un matheux et d'un informaticien, en général tu trouves un facteur 1 000 000 dès des données moyennes ...
Et pour le goto je maintiens, je ne sais pas d'où ils sortent tes informaticiens, mais on peut toujours se passer de goto, et c'est beaucoup plus simple à maintenir.


Puis-je te demander quelle est ton expérience industrielle ou de labo en informatique scientifique?

Les informaticiens que j'évoque ont tous au moins 20 ans de métier et viennent souvent de Supelec, Centrale, ENSIGMAG, ESSIEH ou autres écoles du même genre: des tanches quoi... Les plus nuls viennent du Lactamme!

Et je maintiens moi que des informaticiens lambda, surtout les jeunes, sont incapables d'écrire un code de simu en physique, sauf s'ils ont une double compétence, ce qui est malheureusement rare... Et je n'ai aucune admiration pour les gens qui écrivent matlab, mapple ou autres: ce ne sont pas eux qui ont pondus les algos!Je ne sais pas si tu es au courent...

eusebius
Membre Relatif
Messages: 134
Enregistré le: 28 Avr 2006, 20:53

par eusebius » 30 Juin 2007, 18:00

*** complètement hors-sujet :-) ***

Dominique Lefebvre a écrit:[...] viennent souvent de Supélec, Centrale, ENSIMAG, ESSIEH ou autres écoles du même genre: des tanches quoi...

Pour sortir d'une de ces maaaagnifiques écoles et avoir vu comment c'était ailleurs, je suis à peu près convaincu 1) que l'endroit où on a fait sa formation initiale n'a pas grand-chose à voir avec la rigueur et les compétences, et 2) que les bons "faqueux" sont beaucoup plus pointus en informatique que la plupart des ingés.

On a droit aux trolls sur ce forum ? Vaut ptet mieux que j'arrête de poster sur ce fil...
:briques:

bruce.ml
Membre Rationnel
Messages: 630
Enregistré le: 19 Juin 2007, 01:54

par bruce.ml » 30 Juin 2007, 18:09

Dominique Lefebvre a écrit:Puis-je te demander quelle est ton expérience industrielle ou de labo en informatique scientifique?

Les informaticiens que j'évoque ont tous au moins 20 ans de métier et viennent souvent de Supelec, Centrale, ENSIGMAG, ESSIEH ou autres écoles du même genre: des tanches quoi... Les plus nuls viennent du Lactamme!

Et je maintiens moi que des informaticiens lambda, surtout les jeunes, sont incapables d'écrire un code de simu en physique, sauf s'ils ont une double compétence, ce qui est malheureusement rare... Et je n'ai aucune admiration pour les gens qui écrivent matlab, mapple ou autres: ce ne sont pas eux qui ont pondus les algos!Je ne sais pas si tu es au courent...


Je ne suis actuellement qu'étudiant en M2 recherche d'informatique ( à patir de septembre ), et en stage dans l'un des plus grands labos de calcul formel dans le monde. Et je peux t'assurer que les gars qui pondent les algos qui sont dans les logiciels de cacul formel, ce sont entre autres les chercheurs qui y travaillent.
Alors tes ingénieurs en informatique ils sont bien gentils, et je les respecte en tant qu'ingénieurs, mais ils ne jouent pas dans la même catégorie que les gens qui travaillent vraiment dans le calcul scientifique.
Alors ça serait sympa d'éviter de dire des conneries, déjà que minimum 95% des gens pensent qu'informaticien veut dire réparateur d'ordinateur, mais alors si même les scientifiques s'y mettent ...

 

Retourner vers ϟ Informatique

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 8 invités

Tu pars déja ?



Fais toi aider gratuitement sur Maths-forum !

Créé un compte en 1 minute et pose ta question dans le forum ;-)
Inscription gratuite

Identification

Pas encore inscrit ?

Ou identifiez-vous :

Inscription gratuite