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
» Gestion d'un système client-serveur.
Sous-programme(résolu) Emptypar Klaus Hier à 23:59

» PANORAMIC V 1
Sous-programme(résolu) Emptypar Marc Hier à 23:21

» Editeur EliP 6 : Le Tiny éditeur avec 25 onglets de travail
Sous-programme(résolu) Emptypar Marc Hier à 12:14

» @Jack
Sous-programme(résolu) Emptypar Jack Mar 30 Avr 2024 - 20:40

» trop de fichiers en cours
Sous-programme(résolu) Emptypar papydall Lun 29 Avr 2024 - 23:39

» Une calculatrice en une ligne de programme
Sous-programme(résolu) Emptypar jean_debord Dim 28 Avr 2024 - 8:47

» Form(résolu)
Sous-programme(résolu) Emptypar leclode Sam 27 Avr 2024 - 17:59

» Bataille navale SM
Sous-programme(résolu) Emptypar jjn4 Ven 26 Avr 2024 - 17:39

» Les maths du crocodile
Sous-programme(résolu) Emptypar jean_debord Jeu 25 Avr 2024 - 10:37

» Naissance de Crocodile Basic
Sous-programme(résolu) Emptypar jean_debord Jeu 25 Avr 2024 - 8:45

» Dessine-moi une galaxie
Sous-programme(résolu) Emptypar jjn4 Lun 22 Avr 2024 - 13:47

» Erreur END_SUB
Sous-programme(résolu) Emptypar jjn4 Lun 22 Avr 2024 - 13:43

» Bug sur DIM_LOCAL ?
Sous-programme(résolu) Emptypar papydall Dim 21 Avr 2024 - 23:30

» 2D_fill_color(résolu)
Sous-programme(résolu) Emptypar leclode Sam 20 Avr 2024 - 8:32

» Consommation gaz électricité
Sous-programme(résolu) Emptypar leclode Mer 17 Avr 2024 - 11:07

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Mai 2024
LunMarMerJeuVenSamDim
  12345
6789101112
13141516171819
20212223242526
2728293031  
CalendrierCalendrier
Le Deal du moment :
Jeux, jouets et Lego : le deuxième à ...
Voir le deal

 

 Sous-programme(résolu)

Aller en bas 
3 participants
AuteurMessage
leclode




Nombre de messages : 18
Date d'inscription : 01/11/2022

Sous-programme(résolu) Empty
MessageSujet: Sous-programme(résolu)   Sous-programme(résolu) EmptyJeu 4 Avr 2024 - 12:25

Bonjour tout le monde.
J'avance avec mon programme sauf que j'ai un problème avec les sous-programmes.
Je les déclare dans Label.
Je les fais sous la forme:

MonSousProgramme:

return

Jusque là pas de problème.
Je les appelle par gosub et ça fonctionne.
Sauf que l'un deux sert aux erreurs et que quand j'en ai une, je voudrais sortir de celui-ci.
j'ai bien essayé exit_sub mais ça ne fonctionne pas. Après recherche, j'ai bien vu qu'il fallait un END_SUB pour que cela fonctionne.C'est là que je ne comprends plus. J'ai voulu modifier

MonSousProgramme:

return

en

SUB MonSousProgramme(V$)

END_SUB

et là, plus rien ne va. Quand je le déclare dans Label, j'ai comme message:

(70)Label not defined(LABEL).Line:3.

et si je le mets pas dans Label

(56)Not a legal label. Line:249

J'ai essayé sans variable, j'ai l'erreur (70) qui revient.
j'ai aussi essayé de le mettre avant "END" du programme toujours le (70)
Bref je trouve pas. Si quelqu'un peut me mettre sur la voie.
Ou, y a t'il une façon de quitter un sous-programme avant "RETURN" malgré mes différentes recherches, je n'ai pas trouvé.
D'avance merci de votre aide


Dernière édition par leclode le Dim 7 Avr 2024 - 10:29, édité 1 fois
Revenir en haut Aller en bas
papydall

papydall


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

Sous-programme(résolu) Empty
MessageSujet: Re: Sous-programme(résolu)   Sous-programme(résolu) EmptyJeu 4 Avr 2024 - 14:15

Bonjour leclode

Pour un sous-programme appelé par GOSUB, on en sort par RETURN et non par END_SUB
Pour un sous programme du type SUB, on en sort par EXIT_SUB sans exécuter le reste du s/p.
Sinon END_SUB termine le s/p

Code:

dim x
label MonSousProgramme

gosub MonSousProgramme : ' Appel du s/p par GOSUB
' Après exécution du s/p MonSousProgramme, le programme revient à cette ligne
MonSecondSousProgramme() : ' Appel du s/p par son IDENTIFICATEUR

end
rem ============================================================================
MonSousProgramme:
    while 1 = 1 : ' boucle infinie
       x = x + 1 : print "x = ";x
       if x > 9 then RETURN : ' sortir du sous-programme
    end_while
return : ' Un s/p appelé par GOSUB doit se terminer par RETURN
         ' dans ce cas précis, le RETURN n'est pas obligatoire puisqu'il y a
         ' déjà un RETURN au sein de la boucle WHILE
rem ============================================================================
SUB MonSecondSousProgramme()
    dim_local i
    x = 0 : print : print
    for i = 1 to 100
        x = x + 1 : print "x = "; x
        ' exécuter l'une ou l'autre lignes suivantes (26 ou 27)
        if x > 9 then exit_for : ' on sort de la boucle sans la terminer
        if x > 9 then exit_sub : ' on sort du s/p sans le terminer
    next i
END_SUB
rem ============================================================================      



PS : un s/p appelé par GOSUB doit être identifié par un LABEL et terminé par RETURN
Tandis qu'un s/p appelé par son identificateur n'a pas besoin d'un LABEL

PS2 : tu trouveras ici quelques explications sur les sous-programmes


Dernière édition par papydall le Jeu 4 Avr 2024 - 14:36, édité 2 fois
Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
jjn4

jjn4


Nombre de messages : 2691
Date d'inscription : 13/09/2009

Sous-programme(résolu) Empty
MessageSujet: Re: Sous-programme(résolu)   Sous-programme(résolu) EmptyJeu 4 Avr 2024 - 14:16

Il y a les routines avec label, du style :
label ici
déclarations d'objets-système
end
ici:
...
return

et les SUB qui sont différentes :
pas besoin de les déclarer en label
déclarations d'objets-système
machin()
déclarations d'objets-système
end
sub machin()
...
end_sub

Il y en a d'autres aussi, comme les fonctions :
dim a%
pas de déclaration de label
déclarations d'objets-système
a%=bidule()
end
fnc bidule()
...
result b%
end_fnc

Pour sortir d'une sub ou d'une fonction :
exit_sub ou exit_fnc
et pour sortir d'un label :
le mieux, c'est de faire :
ici:
...
if a%=0 then return
...
return

Je ne sais pas si tout cela solusionnee tonn problème.
Bonne programmation !
cheers


Dernière édition par jjn4 le Jeu 4 Avr 2024 - 14:43, édité 1 fois
Revenir en haut Aller en bas
http://jjn4.e-monsite.com
papydall

papydall


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

Sous-programme(résolu) Empty
MessageSujet: Re: Sous-programme(résolu)   Sous-programme(résolu) EmptyJeu 4 Avr 2024 - 14:29

Bonjour le Martien

jjn4 a écrit:
Je ne sais pas si tout cela solusionnee tonn problème.

Sûrement ton explication doit bien solusionnee sonn solutionner son problème ! tongue
Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
leclode




Nombre de messages : 18
Date d'inscription : 01/11/2022

Sous-programme(résolu) Empty
MessageSujet: Re: Sous-programme(résolu)   Sous-programme(résolu) EmptyJeu 4 Avr 2024 - 14:34

Un grand merci à vous deux. C'est beaucoup plus clair pour moi et ça fonctionne
Sous-programme(résolu) 1f609
Revenir en haut Aller en bas
jjn4

jjn4


Nombre de messages : 2691
Date d'inscription : 13/09/2009

Sous-programme(résolu) Empty
MessageSujet: Re: Sous-programme(résolu)   Sous-programme(résolu) EmptyJeu 4 Avr 2024 - 14:42

@leclode
Super !
@papydall
On va dire que c'est encore la faute du correcteur orthographique...
Laughing Laughing Laughing Laughing
Revenir en haut Aller en bas
http://jjn4.e-monsite.com
Contenu sponsorisé





Sous-programme(résolu) Empty
MessageSujet: Re: Sous-programme(résolu)   Sous-programme(résolu) Empty

Revenir en haut Aller en bas
 
Sous-programme(résolu)
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Un programme plante sous l'IDE, mais marche sous l'éditeur
» PROCÉDURE et SOUS-PROGRAMME
» [R] DIM_LOCAL et sous-programme
» Comment récupérer le N° de l'objet sous la souris ? [Résolu]
» fermer le programme qui lance un autre programme

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC :: PANORAMIC :: A l'aide!-
Sauter vers: