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
» PANORAMIC V 1
pourquoi ces erreurs ? Emptypar papydall Aujourd'hui à 2:21

» Gestion d'un système client-serveur.
pourquoi ces erreurs ? Emptypar Klaus Hier à 23:59

» Editeur EliP 6 : Le Tiny éditeur avec 25 onglets de travail
pourquoi ces erreurs ? Emptypar Marc Hier à 12:14

» @Jack
pourquoi ces erreurs ? Emptypar Jack Mar 30 Avr 2024 - 20:40

» trop de fichiers en cours
pourquoi ces erreurs ? Emptypar papydall Lun 29 Avr 2024 - 23:39

» Une calculatrice en une ligne de programme
pourquoi ces erreurs ? Emptypar jean_debord Dim 28 Avr 2024 - 8:47

» Form(résolu)
pourquoi ces erreurs ? Emptypar leclode Sam 27 Avr 2024 - 17:59

» Bataille navale SM
pourquoi ces erreurs ? Emptypar jjn4 Ven 26 Avr 2024 - 17:39

» Les maths du crocodile
pourquoi ces erreurs ? Emptypar jean_debord Jeu 25 Avr 2024 - 10:37

» Naissance de Crocodile Basic
pourquoi ces erreurs ? Emptypar jean_debord Jeu 25 Avr 2024 - 8:45

» Dessine-moi une galaxie
pourquoi ces erreurs ? Emptypar jjn4 Lun 22 Avr 2024 - 13:47

» Erreur END_SUB
pourquoi ces erreurs ? Emptypar jjn4 Lun 22 Avr 2024 - 13:43

» Bug sur DIM_LOCAL ?
pourquoi ces erreurs ? Emptypar papydall Dim 21 Avr 2024 - 23:30

» 2D_fill_color(résolu)
pourquoi ces erreurs ? Emptypar leclode Sam 20 Avr 2024 - 8:32

» Consommation gaz électricité
pourquoi ces erreurs ? 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

 

 pourquoi ces erreurs ?

Aller en bas 
5 participants
AuteurMessage
RMont




Nombre de messages : 233
Age : 81
Localisation : charente maritime
Date d'inscription : 29/12/2008

pourquoi ces erreurs ? Empty
MessageSujet: pourquoi ces erreurs ?   pourquoi ces erreurs ? EmptyVen 19 Sep 2014 - 10:52


bonjour a tous.
pourquoi j'ai ces erreurs?.

1- nom de sub incorrect ligne 83
2- label non déclaré ligne 94

si j'enlève les rems des lignes 3,4,5,6,7,8,10 et que je passe les subs en rem ,je n'ai pas l'erreur "nom de sub incorrect"
et pourquoi label non déclaré ligne 94 alors qu'il y est ?.

et je vais en profiter pour demander si il n'y a pas une autre solutionque de passer par des labels
(on_key_up,label pour remplir mes 5 edits sans passer par un button "validation "a chaque fois

error_french

'  dim i%
'  dim nc% : nc%=5
'  dim a% : a%=100
'  dim ch%
'  dim part%(5,1)
'  dim pts%
 
'  label f1 ,f2,f3,f4 ,f5 ,fin

variables()
labels()

for i%= 1 to nc%
 edit i% : top i%,200 : left i%,a% : width i%,20
 a%=a%+35
next i%

set_focus 1
on_key_up 1,f1

end

f1:
pts%=10
if key_up_code=13
 if numeric(text$(1))=0 then return
    ch%=val(text$(1))
    part%(ch%,0)=ch%
    part%(ch%,1)=part%(ch%,1)+pts%
    set_focus 2
    on_key_up 2,f2
end_if

f2:
' pts%=10
if key_up_code=13
 if numeric(text$(2))=0 then return
   ch%=val(text$(2))
     part%(ch%,0)=ch%
     part%(ch%,1)=part%(ch%,1)+pts%
     set_focus 3
     on_key_up 3,f3
end_if

f3:
' pts%=10
if key_up_code=13
  if numeric(text$(3))=0 then return
   ch%=val(text$(3))
     part%(ch%,0)=ch%
     part%(ch%,1)=part%(ch%,1)+pts%
     set_focus 4
     on_key_up 4,f4
end_if

f4:
' pts%=10
if key_up_code=13
   if numeric(text$(4))=0 then return
   ch%=val(text$(4))
     part%(ch%,0)=ch%
     part%(ch%,1)=part%(ch%,1)+pts%
     set_focus 5
     on_key_up 5,f5
end_if

f5:
pts%=25
if key_up_code=13
   if numeric(text$(5))=0 then return
   ch%=val(text$(5))
     part%(ch%,0)=ch%
     part%(ch%,1)=part%(ch%,1)+pts%
'      set_focus 6
'      on_key_up 6,f6
end_if

print part%(5,1)  :' pour verif du 5em edit
fin:' pour l'instant
' ============= les variables ===============
sub variables()
 dim i%
 dim nc% : nc%=5
 dim a% : a%=100
 dim ch%
 dim part%(5,1)
 dim pts%
end_sub
' ============= les labels ================
sub labels()
 label f1,f2,f3,f4,f5
 label fin
end_sub

Revenir en haut Aller en bas
Klaus

Klaus


Nombre de messages : 12276
Age : 74
Localisation : Ile de France
Date d'inscription : 29/12/2009

pourquoi ces erreurs ? Empty
MessageSujet: Re: pourquoi ces erreurs ?   pourquoi ces erreurs ? EmptyVen 19 Sep 2014 - 11:02

Tu fais 2 petites erreurs:
1. tu ne peux pas mettre un commentaire après un label. Un label doit être seul sur la ligne. Place le commentaire sur la ligne au-dessus ou en-dessous.
2. après ton label "fin", tu continues l'exécution en tombant sur la commande SUB. Ceci produira un plantage, car c'est une définition et non un code exécutable. Place un END (ou tout autre moyen pour dériver l'exécution) devant la commande SUB.

De manière générale, il convient de placer toutes les SUB en fin de programme, et de veiller à ce que l'exécution du code au-dessus ne puisse pas passer séquentiellement sur une définition de SUB.

Voici ton code corrigé:
Code:
error_french

'  dim i%
'  dim nc% : nc%=5
'  dim a% : a%=100
'  dim ch%
'  dim part%(5,1)
'  dim pts%

'  label f1 ,f2,f3,f4 ,f5 ,fin

variables()
labels()

for i%= 1 to nc%
 edit i% : top i%,200 : left i%,a% : width i%,20
 a%=a%+35
next i%

set_focus 1
on_key_up 1,f1

end

f1:
pts%=10
if key_up_code=13
 if numeric(text$(1))=0 then return
    ch%=val(text$(1))
    part%(ch%,0)=ch%
    part%(ch%,1)=part%(ch%,1)+pts%
    set_focus 2
    on_key_up 2,f2
end_if

f2:
' pts%=10
if key_up_code=13
 if numeric(text$(2))=0 then return
  ch%=val(text$(2))
    part%(ch%,0)=ch%
    part%(ch%,1)=part%(ch%,1)+pts%
    set_focus 3
    on_key_up 3,f3
end_if

f3:
' pts%=10
if key_up_code=13
  if numeric(text$(3))=0 then return
  ch%=val(text$(3))
    part%(ch%,0)=ch%
    part%(ch%,1)=part%(ch%,1)+pts%
    set_focus 4
    on_key_up 4,f4
end_if

f4:
' pts%=10
if key_up_code=13
  if numeric(text$(4))=0 then return
  ch%=val(text$(4))
    part%(ch%,0)=ch%
    part%(ch%,1)=part%(ch%,1)+pts%
    set_focus 5
    on_key_up 5,f5
end_if

f5:
pts%=25
if key_up_code=13
  if numeric(text$(5))=0 then return
  ch%=val(text$(5))
    part%(ch%,0)=ch%
    part%(ch%,1)=part%(ch%,1)+pts%
'      set_focus 6
'      on_key_up 6,f6
end_if

print part%(5,1)  :' pour verif du 5em edit
 ' pour l'instant      : ' <=========
fin:                    : ' <=========
end                    : ' <=========

' ============= les variables ===============
sub variables()
 dim i%
 dim nc% : nc%=5
 dim a% : a%=100
 dim ch%
 dim part%(5,1)
 dim pts%
end_sub
' ============= les labels ================
sub labels()
 label f1,f2,f3,f4,f5
 label fin
end_sub
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
papydall

papydall


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

pourquoi ces erreurs ? Empty
MessageSujet: Re: pourquoi ces erreurs ?   pourquoi ces erreurs ? EmptyVen 19 Sep 2014 - 11:13

Les sous-programmes appelés par ON_XXX … doivent être terminé par l’instruction RETURN.
Dans ton code, ajoute des RETURN aux lignes 33, 44, 55, 66
Ligne 79, enlève tout ce qui est après fin :. Il ne doit y avoir rien sur la même ligne après les deux-points
Ajoute un end avant la déclaration de la SUB


Klaus a été le plus rapide!

EDIT
Pour une meilleure lisibilité de ton code sur le Forum, mets ton code entre les balises [code ]  ... [/ code].
REMARQUE : il ne doit y avoir aucun espace entre les crochets!
Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
Invité
Invité




pourquoi ces erreurs ? Empty
MessageSujet: Re: pourquoi ces erreurs ?   pourquoi ces erreurs ? EmptyVen 19 Sep 2014 - 11:43

Une autre présentation du code:
Code:
error_french
variables()
labels()

for i%= 1 to nc%
 edit i% : top i%,200 : left i%,a% : width i%,20
 a%=a%+35
 on_key_up i%,f1
next i%

set_focus 1
end
========================================
f1:
pts%=10
if key_up_code=13
 i% = number_key_up
 if numeric(text$(i%))=0 then return
    if i% = 5 then pts%=25 : else : pts% = 10
    ch%=val(text$(i%))
    part%(ch%,0)=ch%
    part%(ch%,1)=part%(ch%,1)+pts%

    if i% = 5
       print part%(5,1)  :' pour verif du 5em edit
    else
       set_focus i%+1
    end_if
end_if
return

' ============= les variables ===============
sub variables()
 dim i%
 dim nc% : nc%=5
 dim a% : a%=100
 dim ch%
 dim part%(5,1)
 dim pts%
end_sub
' ============= les labels ================
sub labels()
 label f1
 label fin
end_sub

fin: :' pour l'instan
Revenir en haut Aller en bas
RMont




Nombre de messages : 233
Age : 81
Localisation : charente maritime
Date d'inscription : 29/12/2008

pourquoi ces erreurs ? Empty
MessageSujet: Re: pourquoi ces erreurs ?   pourquoi ces erreurs ? EmptyVen 19 Sep 2014 - 18:28


merci à vous pour vos réponses.
au départ, je n'avais que "nom de sub incorrect" ,c'est pourquoi j'ai mis ce label fin en pensant arreter ce code.
je constate qu'il est possible de mettre au moins 2 end dans un code et pour finir ,je dirai qu'il y a longtemps que je n'avais pas mis de code sur le forum et,je me suis aperçu trop tard que je ne l'avais pas mis entre les balises "code"
je vais pouvoir continuer en essayant les différentes méthodes
encore merci
Rmont

Revenir en haut Aller en bas
papydall

papydall


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

pourquoi ces erreurs ? Empty
MessageSujet: Re: pourquoi ces erreurs ?   pourquoi ces erreurs ? EmptyVen 19 Sep 2014 - 18:42

Salut RMont.

RMont a écrit:
je constate qu'il est possible de mettre au moins 2 end dans un code

Tu peux en mettre tant que tu voudras! des milliers mêmes ! Mais bon, restons raisonnables !
Saches que la commande END a pour unique rôle d’arrêter l’exécution du programme principal mais le programme reste actif et continue de traiter les événements.
Donc on met un END là où l’on veut que le programme n’aille pas au-delà.

EDIT :
Pour arrêter définitivement l'exécution du programme et libérer la mémoire, on utilise la commande TERMINATE. Tous les objets sont détruits. Le programme n'existe plus en mémoire.


Dernière édition par papydall le Ven 19 Sep 2014 - 19:07, édité 1 fois
Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
RMont




Nombre de messages : 233
Age : 81
Localisation : charente maritime
Date d'inscription : 29/12/2008

pourquoi ces erreurs ? Empty
MessageSujet: Re: pourquoi ces erreurs ?   pourquoi ces erreurs ? EmptyVen 19 Sep 2014 - 18:50


@ cosmos.
ta façon de faire me fais entrevoir des belles possibilités.
j'ai fais un code de 1000 lignes environ mais avec beaucoup de répétitions de portions de code identiques mais a chaque fois avec des labels différents.
donc je vais réécrire mon code
Revenir en haut Aller en bas
papydall

papydall


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

pourquoi ces erreurs ? Empty
MessageSujet: Re: pourquoi ces erreurs ?   pourquoi ces erreurs ? EmptyVen 19 Sep 2014 - 18:58

N’hésite surtout pas à poster ton code (si ce n’est pas top secret ! Laughing ) et à poser toute sorte de question sur laquelle tu butes.
Certainement, tu auras des retours et c’est ainsi que le savoir commun s’enrichit.
Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
Invité
Invité




pourquoi ces erreurs ? Empty
MessageSujet: Re: pourquoi ces erreurs ?   pourquoi ces erreurs ? EmptyVen 19 Sep 2014 - 19:46

Ok Rmont, pas de problèmes.

Papydall a écrit:
Tu peux en mettre tant que tu voudras! des milliers mêmes ! Mais bon, restons raisonnables !

C'est oui et non. Le End pourrait être mis à la place de RETURN, ce là fonctionne un certain temps, mais dans le cas présent, ou une touche appelle un sous-programme, il y a une accumulation de la pile sans la vider.

Je crois qu'on a droit à une pile de 1000 appels si je me souviens bien. Alors imagine d'écrire un texte avec on_key_up à chaque touche, tu seras vite bloqué. Le return dépile l'appel qui a été fait.

Je me suis souvent servi il y a un temps de END pour stopper un programme. C'était lorsque j'ouvrais une form pour pouvoir répondre à une question, et pour stopper le programme je mettais END, je répondais au message, et je reprenais là où j'en étais resté.

Mais avec les commandes qui ont étaient rajoutées, je ne me souviens depuis d'avoir eu besoin d'utiliser ce principe.

Je viens de me relire, cela semble à du chinois, mais je me dois de ne pas être parfait, d'un coup je me rappel d'un oubli.
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

pourquoi ces erreurs ? Empty
MessageSujet: Re: pourquoi ces erreurs ?   pourquoi ces erreurs ? EmptyVen 19 Sep 2014 - 20:56

Je suis plutôt d'accord avec toi Cosmos,

Pour respecter le basic Panoramic, il est préférable de faire suivre tous label par return.
C'est juste une bonne habitude à prendre.

Code:
Label start,fin
gosub start
END
start:
print " comme je n'ai rien à écrire, j'arrête là "
wait 5000
gosub fin
return

fin:
terminate
return
Revenir en haut Aller en bas
Invité
Invité




pourquoi ces erreurs ? Empty
MessageSujet: Re: pourquoi ces erreurs ?   pourquoi ces erreurs ? EmptyVen 19 Sep 2014 - 23:09

Tout à l'heure, j'ai du retirer le reste du post que je n'ai pu developper par un imprévu.

Il faut dire qu'il y a Panoramic aujourd'hui et celui d'hier. Rappelles-toi Jean-Claude! En 2008 et 2009, on avait de gros problème pour pouvoir entrer des données. On ne savait pas comment faire pour stopper le programme et pouvoir répondre à des questions. Input ne convenait vraiment pas, et on était encore emprunt du basic ancestral. On avait pas vraiment d'expériences et on manquait d'un certain nombres d'instructions. Le END dans un programme m'avait permit de réussir ce tour de force.

Maintenant un sous-programme est un sous-programme et se termine par RETURN. Par contre il faudrait vérifier et je pense que je connais la réponse, pour voir si le dernier sous-programme qui ne nécessite pas  de return pour fonctionner, n'est pas considéré comme un END. On n'a pas d'erreur d'exécution dans ce cas-là, mais pour moi RETURN est obligatoire. Je pense que si le programme se prolonge, on peut avoir un débordement de pile.

En tout cas dans l'absolu, et seulement si ce n'est pas pour arrêter un sous-programme , on peut mettre END à plein d'endroit comme dit Papydall.
Revenir en haut Aller en bas
papydall

papydall


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

pourquoi ces erreurs ? Empty
MessageSujet: Re: pourquoi ces erreurs ?   pourquoi ces erreurs ? EmptySam 20 Sep 2014 - 1:20

J’aime bien éclaircir quelque chose : je n’ai jamais dit qu’un END remplace un RETURN.
J’ai bien écrit :
Citation :
Les sous-programmes appelés par ON_XXX … doivent être terminé par l’instruction RETURN.
Dans ton code, ajoute des RETURN aux lignes 33, 44, 55, 66

En effet, le RETURN qui indique la fin d’un sous-programme est une instruction qui sert à récupérer l’adresse de retour à l’endroit à partir duquel le sous-programme a été appelé.
En absence de RETURN, la pile risque de déborder.
Il est à rappeler que la pile est une zone de la mémoire servant, entre autres, à stoker les adresses de retours  de sous-programmes.

Par contre, un même programme peut contenir, non pas un seul END mais autant que nécessaire.
C’était en réponse à RMont qui a constaté que j’ai utilisé 2 end
Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
Invité
Invité




pourquoi ces erreurs ? Empty
MessageSujet: Re: pourquoi ces erreurs ?   pourquoi ces erreurs ? EmptySam 20 Sep 2014 - 5:40

J'ai jamais pensé que tu voulais dire qu'on pouvait mettre un end à la place d'un return. Mais un moment on aurait pu le penser.

Je voulais juste éclaircir ce point. Mais ma première intervention, je l'ai tronqué en retirant la suite qui n'était pas fini pour un imprévu que j'ai du traiter, et je suis parti.

J'étais intervenu au départ pour mettre un exemple d'utilisation du END, et je me suis abstenu. C'est moi qui suis en cause, et pour cela, tu te sens victime de propos mal compris. Je me dis parfois que dans la journée je ne devrais pas intervenir, car régulièrement lorsque je prend le temps de répondre, je dois couper court pour partir.

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

pourquoi ces erreurs ? Empty
MessageSujet: Re: pourquoi ces erreurs ?   pourquoi ces erreurs ? EmptySam 20 Sep 2014 - 9:31

@Papydall,
Rassure-toi, je n'ai pas, non plus, lu que tu avais dit que l'on pouvait remplacer return par end. Je suis intervenu uniquement pour être certain que Rmont ne l'ai pas interprété comme tel.

Cosmos a écrit:
Rappelles-toi Jean-Claude! En 2008 et 2009, on avait de gros problème pour pouvoir entrer des données. On ne savait pas comment faire pour stopper le programme et pouvoir répondre à des questions. Input ne convenait vraiment pas, et on était encore emprunt du basic ancestral. On avait pas vraiment d'expériences et on manquait d'un certain nombres d'instructions.

En 2008, je n'était pas là, mais c'est très vrai que nous avons évolués depuis cette époque. Et Panoramic aussi. Preuve, qu'en s'accrochant un peu-beaucoup, on peut faire bien des choses avec Panoramic.

Bonne journée à tous.
Revenir en haut Aller en bas
Invité
Invité




pourquoi ces erreurs ? Empty
MessageSujet: Re: pourquoi ces erreurs ?   pourquoi ces erreurs ? EmptySam 20 Sep 2014 - 12:16

Jean-Claude a écrit:
En 2008, je n'était pas là,

Cela m'a interpellé. Il me semblait bien que tu étais là avant moi. Je voulais dire 2009/2010.

@+
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

pourquoi ces erreurs ? Empty
MessageSujet: Re: pourquoi ces erreurs ?   pourquoi ces erreurs ? EmptySam 20 Sep 2014 - 13:14

Hé oui, on se croit plus ancien que la réalité,

L'ancêtre c'est JL35 (29/11/2007), du moins, de ceux qui participent toujours. Very Happy geek
Un, des Artisans du début, qui ont, comme nous, essuyés les plâtres.

lol!
Revenir en haut Aller en bas
Froggy One

Froggy One


Nombre de messages : 585
Date d'inscription : 06/01/2012

pourquoi ces erreurs ? Empty
MessageSujet: Re   pourquoi ces erreurs ? EmptyMar 23 Sep 2014 - 8:48

Génial, ce post des "anciens" ! on y apprend plein de choses ! je parviens à peine au niveau où j'arrive à comprendre ce que les autres ont bien voulu développer grâce à leurs codes alors ce petit moment de LABEL vaut son pesant de cacahuètes ! Bonne journée !!!
Revenir en haut Aller en bas
http://gaeldwest.wordpress.com
Contenu sponsorisé





pourquoi ces erreurs ? Empty
MessageSujet: Re: pourquoi ces erreurs ?   pourquoi ces erreurs ? Empty

Revenir en haut Aller en bas
 
pourquoi ces erreurs ?
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» [DOC] Quelques erreurs...
» Gestion des erreurs.
» Soulignage d'erreurs
» Gestion des erreurs.
» Les messages d'erreurs de PANORAMIC

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: