FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC

Développement d'applications avec le langage Panoramic
 
AccueilAccueil  RechercherRechercher  Dernières imagesDernières images  S'enregistrerS'enregistrer  MembresMembres  Connexion  
Derniers sujets
» Form(résolu)
PROCÉDURE et SOUS-PROGRAMME Emptypar leclode Aujourd'hui à 17:59

» trop de fichiers en cours
PROCÉDURE et SOUS-PROGRAMME Emptypar Marc Aujourd'hui à 11:42

» Bataille navale SM
PROCÉDURE et SOUS-PROGRAMME Emptypar jjn4 Hier à 17:39

» Une calculatrice en une ligne de programme
PROCÉDURE et SOUS-PROGRAMME Emptypar jean_debord Hier à 8:01

» Gestion d'un système client-serveur.
PROCÉDURE et SOUS-PROGRAMME Emptypar Pedro Jeu 25 Avr 2024 - 19:31

» Les maths du crocodile
PROCÉDURE et SOUS-PROGRAMME Emptypar jean_debord Jeu 25 Avr 2024 - 10:37

» Naissance de Crocodile Basic
PROCÉDURE et SOUS-PROGRAMME Emptypar jean_debord Jeu 25 Avr 2024 - 8:45

» Editeur EliP 6 : Le Tiny éditeur avec 25 onglets de travail
PROCÉDURE et SOUS-PROGRAMME Emptypar Froggy One Mer 24 Avr 2024 - 18:38

» Dessine-moi une galaxie
PROCÉDURE et SOUS-PROGRAMME Emptypar jjn4 Lun 22 Avr 2024 - 13:47

» Erreur END_SUB
PROCÉDURE et SOUS-PROGRAMME Emptypar jjn4 Lun 22 Avr 2024 - 13:43

» Bug sur DIM_LOCAL ?
PROCÉDURE et SOUS-PROGRAMME Emptypar papydall Dim 21 Avr 2024 - 23:30

» 2D_fill_color(résolu)
PROCÉDURE et SOUS-PROGRAMME Emptypar leclode Sam 20 Avr 2024 - 8:32

» Consommation gaz électricité
PROCÉDURE et SOUS-PROGRAMME Emptypar leclode Mer 17 Avr 2024 - 11:07

» on_key_down (résolu)
PROCÉDURE et SOUS-PROGRAMME Emptypar leclode Mar 16 Avr 2024 - 11:01

» Sous-programme(résolu)
PROCÉDURE et SOUS-PROGRAMME Emptypar jjn4 Jeu 4 Avr 2024 - 14:42

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Avril 2024
LunMarMerJeuVenSamDim
1234567
891011121314
15161718192021
22232425262728
2930     
CalendrierCalendrier
Le Deal du moment : -45%
WHIRLPOOL OWFC3C26X – Lave-vaisselle pose libre ...
Voir le deal
339 €

 

 PROCÉDURE et SOUS-PROGRAMME

Aller en bas 
5 participants
AuteurMessage
Invité
Invité




PROCÉDURE et SOUS-PROGRAMME Empty
MessageSujet: PROCÉDURE et SOUS-PROGRAMME   PROCÉDURE et SOUS-PROGRAMME EmptyLun 22 Fév 2016 - 23:48

Bonsoir,

Je reprend ici la suite de la discussion sur les 2 dernières pages :
https://panoramic.1fr1.net/t4658p30-boite-a-outils-de-dessin#56492

Bon j'ai reporté la discution ici.
Préenbule:
Pourquoi je ne suis pas d'accord sur le fait qu'on ne doit utiliser que des subs dans un programme. Déja au départ je trouve la proposition très restrictive. Pourquoi une personne peut décider pour tout le monde qu'une instruction est obsolète, alors qu'elle fait le bonheur des autres? J'ai appris à programmer sur un CBM PET 2001, puis sur un ZX81, ensuite sur ORIC1. Dans le basic d'alors, les commandes étaient restrictives. On avait GOTO et GOSUB. Sur ORIC1 est apparu repeat je crois et UNTIL ou DO LOOP, je ne sais plus. Il n'y avait pas de LABEL. Les étiquettes étaient les N° de ligne. Pour facilité la programmation, on programmait généralement de 10 en 10. Cela permettait de rajouter du code entre les lignes, la commande AUTO je crois pour renuméroter celle-ci, je l'ai eu sur le CBM, après l'ajout d'une puce, qui apportait quelques commandes en plus.

Donc pour ma part, j'ai fait mon apprentissage de la programmation en faisant du code "spaghetti", comme en disait, avec de gotos ou gosub partout. Et j'ai vraiment appris à programmer comme cela, et j'arrivais à faire des programmes intéressant qui mon bien aidés.
Puis est arrivé ATARI 560 avec un basic que j'ai acheté: le GFA-BASIC, et là il n'y avait plus de lignes, mais des étiquettes, avec une méthode procédurale. Je me suis très bien adapté, mais avec l'expérience, le schéma que l'on se fait déjà en tête était acquit.

Bien, maintenant pensons aux personnes qui arrivent maintenant, et qui testent Panoramic. Déjà au départ il se trouvent confrontées aux objets, et à leur manipulations. S'ils viennent d'un vieux basic, car pour beaucoup c'est le cas, ils se trouvent un peu perdus. C'est vrai que s'ils s'inscrivent sur le forum, mais dès que l'un d'eux poste un programme de leur cru, après les félicitations, tout de suite, et à tout les coups, on leur fait  savoir, que leur programme pourrait être amélioré en employant des subs dans leur code, alors que l'assimilation n'est pas encore là. Il faut laissé au temps, le temps.

Maintenant, il y a Jack. Son but était de faire un basic simple, pour le programmeur du dimanche (ce sont ses termes). On lui a imposé des tas de choses, alors que ce n'était pas son but initial.

Bon maintenant, parlons des procédures.

C'est d'un grand confort, et à chaque fois que je peux m'en servir, je le fais. Cela permet de programmer avec des variables qui se détruisent. D'ailleurs j'ai pas envie de parler des points positifs des subs. Ceux qui interviennent ici, les connaisse, donc les utilise.

Les inconvénients:

Mais il faut aussi parler des inconvénients? Et oui, si personnes n'en parle, il en existe, mais y-a-t'ont pensé. Et maintenant que je pose la question, j'ai bien l'intention de regarder mes programmes de près, car effectivement je n'y avais pas pensé avant de faire ce post. Pour dire, que j'étais très près des procédures.

Les inconvénients des SUBs.
????? Pourquoi dire qu'il y a des inconvénients? Est-ce possible?
Et oui.

Ayant eu un problème sur un programme en cours, j'ai ajouter dans les lignes de mon programme une sorte de débogage:
Code:
s(number_current_line,a$,c$,v1,v2,valeur,flag)

et:
Code:
sub s(n,a$,c$,v1,v2,valeur,flag)
   item_add 20,str$(n)+": a$=>"+a$+"< c$=>"+c$+"< v1="+str$(v1)+" v2="+str$(v2)+" valeur="+str$(valeur)+" flag="+str$(flag)
end_sub
Cela s'est bien passé, j'ai trouvé deux erreurs: une ou j'avais DIM_LOCAL dans une condition, et dans une autre ligne une inversions dans une fonction INSTR de TRIM et UPPER$.

Effectivement je me suis servi d'une sub, mais j'avais peu de variables. Quant serait-il si au lieu 7 variables, j'en avais 20 ou 100. Ne pas oublié que dans une sub, on se sert de variables locales, mais aussi de variables globales. Et bien une sub ne va plus.
Dans ce cas, en mettant à 50 lignes, le même appel pour tester les variables, JE DOIS RESPECTER L'ORDRE DE POSITION DES PARAMÈTRES À PASSER, et dans ce type de programme, on ne peut savoir quelles sont celles qui sont à regarder. Il faut toutes les mettre, ou il faut le faire manuellement, et c'est pas concevable. On fait appel à un débogueur, il se débrouille tout seul.
Si j'ai les lignes suivantes:
                          item_add 20,"item$="+item$                    <--- là je passe le paramètre: item$
                          if numeric(item$) = 1 then nb = val(item$)    <--- ici je passe: item$, nb
                          nb = nb+ v1                                   <--- ici nb, v1

Car à partir de là m'est venu l'idée de refaire un débogueur et avec une procédure, ce n'est plus possible. Si on veut contrôler tout un programme, il faut y mettre toutes les variables de celui-ci. C'est le seul moyen de faire une méthode «auto» de débogueur.

On a une instruction qui fait cela très bien: c'est «GOSUB» car cette instruction a un très grand avantage: elle embarque avec elle, toutes les variables d'un programme, même celle d'une sub.

Voici un programme qui le vérifie:
Code:
' teste
label control
dim a1,a2,a3,t$ : t$=chr$(13)
hide 0
a1=100 : a2=120 :a3=130

teste()
END
==============================
sub teste()
   dim_local a1,a2
   a1=300
   gosub control
   message "retour à sub"+t$+"a1="+str$(a1)+t$+"a2="+str$(a2)+t$+"a3="+str$(a3)
   terminate
end_sub
------------
control:
   message "s/prg control"+t$+"a1="+str$(a1)+t$+"a2="+str$(a2)+t$+"a3="+str$(a3)
   a2=500
   a3=600
return

Et là ça devient facile. L'instruction gosub est un déport de la partie qui s'en sert, c'est pas seulement une instruction qui évite une répétition du même code. Si il y manque dans ce cas une variable temporaire, on la rajoute à la sub avant d'appeler GOSUB.

Ceci est un exemple très concret, pour dire que cette instruction il ne faut pas la négliger.

Mais ce n'est pas tout. Systématiquement j'emploie SUB pour coder. Mais en réfléchissant à ce texte, je me suis rendu compte que je faisais une erreur. Pourquoi?

Dans bien des cas, à partir d'une sub, j'en appelle à une autre, en mettant 2/3... paramètres.
Donc la sub appelée reçoit ceux-ci, puis les traite, Mais que faire? Il faut des variables de retour pour pouvoir récupérer celles-ci. Ensuite la sub en retour, reprend celle-ci pour mettre à jour ces variables. Donc on a:
1) passage de paramètres
2) récupération de ceux-ci
3) traitement
4) passage de paramètres soit à des variables globales, soit envoyé à une liste ou autre.
5) au retour, récupération des paramètres depuis les variables globales.

Alors qu'avec GOSUB:
1) aller au sous-programme
2) traitement
3) au retour, rien, les variables sont à jour.

Alors que diable, pourquoi faire compliqué lorsqu'on veut faire simple? C'est contre-productif!
Revenir en haut Aller en bas
papydall

papydall


Nombre de messages : 6996
Age : 73
Localisation : Moknine (Tunisie) Entre la chaise et le clavier
Date d'inscription : 03/03/2012

PROCÉDURE et SOUS-PROGRAMME Empty
MessageSujet: Re: PROCÉDURE et SOUS-PROGRAMME   PROCÉDURE et SOUS-PROGRAMME EmptyMar 23 Fév 2016 - 3:25

Spoiler:
Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
Jean Claude

Jean Claude


Nombre de messages : 5948
Age : 69
Localisation : 83 Var
Date d'inscription : 07/05/2009

PROCÉDURE et SOUS-PROGRAMME Empty
MessageSujet: Re: PROCÉDURE et SOUS-PROGRAMME   PROCÉDURE et SOUS-PROGRAMME EmptyMar 23 Fév 2016 - 8:02

Du calme Papydall, il n'y a pas de quoi se fâcher.
Ceci n'est qu'un débat sur l'utilisation de Gosub, ça ne vaut pas la peine de déclencher "la troisième guerre mondiale"...

A+
Revenir en haut Aller en bas
Francis-mr




Nombre de messages : 185
Date d'inscription : 26/11/2012

PROCÉDURE et SOUS-PROGRAMME Empty
MessageSujet: Re: PROCÉDURE et SOUS-PROGRAMME   PROCÉDURE et SOUS-PROGRAMME EmptyMar 23 Fév 2016 - 8:21

Bonjour à tous.
Holala, on se calme. Je pense que toutes opinions sont bonnes tant que l'on respecte les autres.
Papydall, Cosmos on connaît votre esprit passionné à l'un et à l'autre et si vous avez un désaccord il n'y-a pas de quoi déclencher "la troisième guerre mondiale" comme dit Jean Claude.
Papydall, j'espère que ta décision n'est pas irrévocable car nous apprécions tous tes interventions dans ce forum et il deviendrait terne sans toi.
A+
Revenir en haut Aller en bas
Invité
Invité




PROCÉDURE et SOUS-PROGRAMME Empty
MessageSujet: Re: PROCÉDURE et SOUS-PROGRAMME   PROCÉDURE et SOUS-PROGRAMME EmptyMar 23 Fév 2016 - 8:27

Bonjour,

C'est pas possible Papydall que tu agisses comme cela. Toi qui nous montres tous les jours ton humaniste, là je ne comprend pas. Tu m'as demandé de te donner une seule raison de montrer de l'utilité de gosub (je ne cherche les mots exactes que tu as mis - pas le temps). Je pense avoir fait la démonstration de cette utilité, et c'est le but de ce post, pour lequel je m'attendais à une attaque sur mes idées, et non cette réaction.

Tu crois que je t'attaquais, il n'en est rien. D'ailleurs j'ai été restrictif car je pensais aussi à l'orthographe, non pas à tes remarques que tu fais régulièrement, car moi-même j'en apprend, mais à ceux qui démonte les jeunes qui s'inscrivent sur le forum, et qui ont une orthographe bien particulière, et qui ne sont complètement responsable de ce fait. Ce n'est pas le fait de quelques jeunes, mais de toute une génération.

De part ta réaction, cela veut dire que je dois me résoudre au silence. Si à chaque fois j'essaye de faire une démonstration, j'ai des retours de ce genre, alors ses moi qui doit partir.

Ta place est sur ce forum. Je te donnes un ultimatum! Si tu n'interviens plus à cause de cette discussion, car presque tous les jours tu démontres de ton utilité, au contraire de moi, alors je demande à JACK de me désinscrire de ce forum. Tu es plus important que moi. Tes démonstrations, explications nous en apprend beaucoup. J'ai encore la main sur la discussion en haut. Donc je peux encore tout effacer si je pense que ça pose problème.

Maintenant la balle est dans ton camp. Si c'est adieu de ta part, alors à la fin de la semaine, ce sera aussi adieu de mon coté!

Bonjour à Jean Claude et Francis-mr que j'ai vu passer pendant ce script, bonjour à Papydall.
Revenir en haut Aller en bas
Jean Claude

Jean Claude


Nombre de messages : 5948
Age : 69
Localisation : 83 Var
Date d'inscription : 07/05/2009

PROCÉDURE et SOUS-PROGRAMME Empty
MessageSujet: Re: PROCÉDURE et SOUS-PROGRAMME   PROCÉDURE et SOUS-PROGRAMME EmptyMar 23 Fév 2016 - 8:45

Vous avez votre place tous les deux !

Bon sang, même s'il y a des maladresses ou de mauvaises interprétations de part et d'autre, il n'y a pas de quoi nous priver de 2 intervenants que je qualifierai "d'indispensable".

A+
Revenir en haut Aller en bas
Minibug

Minibug


Nombre de messages : 4566
Age : 57
Localisation : Vienne (86)
Date d'inscription : 09/02/2012

PROCÉDURE et SOUS-PROGRAMME Empty
MessageSujet: Re: PROCÉDURE et SOUS-PROGRAMME   PROCÉDURE et SOUS-PROGRAMME EmptyMar 23 Fév 2016 - 8:54

Ben les gars ! Qu'est ce qui ce passe Question Exclamation

Encore un coup du virus zika ou bien ???

Allons allons, calmons nous messieurs.
Nous n'allons pas nous disputés pour un SUB ou un GOSUB. Wink

Cosmos et Papydall vous aller au coin et vous me recopierez 50 fois je ne dois pas me disputer avec mon voisin ! c'est compris ! Laughing Laughing Laughing

Sérieusement, les gars, c'est juste un forum de discussion, pas de quoi se prendre la tête !
C'est vrai que parfois les débats sont passionnés et passionnant d'ailleurs... drunken drunken
Revenir en haut Aller en bas
http://gpp.panoramic.free.fr
Invité
Invité




PROCÉDURE et SOUS-PROGRAMME Empty
MessageSujet: Re: PROCÉDURE et SOUS-PROGRAMME   PROCÉDURE et SOUS-PROGRAMME EmptyMar 23 Fév 2016 - 9:09

Je comprend vos remarques. Mais j'ai jamais l'impression de m'attaquer à Papydall. J'ai beaucoup d'estime pour lui que j'en ai pour moi-même. Si j'avais su que sa réaction fût celle-là, je n'aurai pas répondu à sa demande qui était de prouver de l'utilité de gosub. Je ne pense pas avoir répondu avec passion, mais seulement voulu montré ce qui me semblait évident.

Ma décision elle est faite pour que Papydall ne nous laisse pas tombé, et trouve les mots pour revenir vers nous. Attention, je n'attend pas d'excuse, si il s'est senti frustré ou autre, c'est moi qui m'excuse.

Si je dois partir, alors je le ferai. Mais peut-être aurai-je du envoyer un message privé. J'y ai pas pensé, et c'est trop tard.
Revenir en haut Aller en bas
Yannick




Nombre de messages : 8610
Age : 52
Localisation : Bretagne
Date d'inscription : 15/02/2010

PROCÉDURE et SOUS-PROGRAMME Empty
MessageSujet: re   PROCÉDURE et SOUS-PROGRAMME EmptyMar 23 Fév 2016 - 13:21

He les gars, on se calme... Wink

Papydall, tu restes.
Avec qui je vais prendre des cours d' orthographe sinon ?...

Cosmos70 aussi.
Si tout le monde était d' accord avec tout le monde, on s' ennuierait.
Il n' y aurait plus de débat et le forum serait triste.

Puis, nous ne sommes déjà qu' une poignée ou deux faire vivre le forum alors...

Bref, sur le fait que la commande GOSUB ou même GOTO soit obsolète, ou à bannir pour la deuxième,
je ne suis pas d' accord. Evil or Very Mad

1/ elles existent. Donc pourquoi s' en priver du moment où elle ne gêne pas dans le développement du langage.
2/ elles sont nécessaires pour que nos vieux programmes restent compatibles.
3/ Même si personnellement je ne me sers plus beaucoup de ces commandes, certains nouveaux doivent en passer
par là dans leur apprentissage avant d' assimiler les SUB
4/ Pour GOTO, je la trouve pratique dans le cas d' un retour vers un label dans une boucle.
placer un appel à une SUB impliquerait de prendre soin de détruire tout ce qui a été créé dans cette SUB avant d' en sortir.
Parfois ce n' est pas judicieux car utilisé ailleurs.

Je n' ai pas d' exemple en tête mais en cherchant bien... Laughing
Revenir en haut Aller en bas
Contenu sponsorisé





PROCÉDURE et SOUS-PROGRAMME Empty
MessageSujet: Re: PROCÉDURE et SOUS-PROGRAMME   PROCÉDURE et SOUS-PROGRAMME Empty

Revenir en haut Aller en bas
 
PROCÉDURE et SOUS-PROGRAMME
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Simulation de passage de tableau à un sous-programme
» Un programme plante sous l'IDE, mais marche sous l'éditeur
» Sous-programme(résolu)
» [R] DIM_LOCAL et sous-programme
» Adresse d'un sous-programme d'évènement

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC :: PANORAMIC :: Présentation et bavardage-
Sauter vers: