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
» Logiciel de planétarium.
Version instantanée du 12 septembre 2012 PANORAMIC V0.9.24i2 Emptypar Pedro Sam 23 Nov 2024 - 15:50

» Un autre pense-bête...
Version instantanée du 12 septembre 2012 PANORAMIC V0.9.24i2 Emptypar Froggy One Jeu 21 Nov 2024 - 15:54

» Récupération du contenu d'une page html.
Version instantanée du 12 septembre 2012 PANORAMIC V0.9.24i2 Emptypar Pedro Sam 16 Nov 2024 - 14:04

» Décompilation
Version instantanée du 12 septembre 2012 PANORAMIC V0.9.24i2 Emptypar JL35 Mar 12 Nov 2024 - 19:57

» Un album photos comme du temps des grands-mères
Version instantanée du 12 septembre 2012 PANORAMIC V0.9.24i2 Emptypar jjn4 Mar 12 Nov 2024 - 17:23

» traitement d'une feuille excel
Version instantanée du 12 septembre 2012 PANORAMIC V0.9.24i2 Emptypar jjn4 Jeu 7 Nov 2024 - 3:52

» Aide-mémoire mensuel
Version instantanée du 12 septembre 2012 PANORAMIC V0.9.24i2 Emptypar jjn4 Lun 4 Nov 2024 - 18:56

» Des incomprèhension avec Timer
Version instantanée du 12 septembre 2012 PANORAMIC V0.9.24i2 Emptypar Klaus Mer 30 Oct 2024 - 18:26

» KGF_dll - nouvelles versions
Version instantanée du 12 septembre 2012 PANORAMIC V0.9.24i2 Emptypar Klaus Mar 29 Oct 2024 - 17:58

» instructions panoramic
Version instantanée du 12 septembre 2012 PANORAMIC V0.9.24i2 Emptypar maelilou Lun 28 Oct 2024 - 19:51

» Figures fractales
Version instantanée du 12 septembre 2012 PANORAMIC V0.9.24i2 Emptypar Marc Ven 25 Oct 2024 - 12:18

» Panoramic et Scanette
Version instantanée du 12 septembre 2012 PANORAMIC V0.9.24i2 Emptypar Yannick Mer 25 Sep 2024 - 22:16

» Editeur d étiquette avec QR évolutif
Version instantanée du 12 septembre 2012 PANORAMIC V0.9.24i2 Emptypar JL35 Lun 23 Sep 2024 - 22:40

» BUG QR Code DelphiZXingQRCode
Version instantanée du 12 septembre 2012 PANORAMIC V0.9.24i2 Emptypar Yannick Dim 22 Sep 2024 - 11:40

» fichier.exe
Version instantanée du 12 septembre 2012 PANORAMIC V0.9.24i2 Emptypar leclode Ven 20 Sep 2024 - 19:02

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Novembre 2024
LunMarMerJeuVenSamDim
    123
45678910
11121314151617
18192021222324
252627282930 
CalendrierCalendrier
-28%
Le deal à ne pas rater :
-28% Machine à café avec broyeur à grain MELITTA Purista
229.99 € 318.99 €
Voir le deal

 

 Version instantanée du 12 septembre 2012 PANORAMIC V0.9.24i2

Aller en bas 
+5
Jicehel
Yannick
Klaus
Nardo26
Jack
9 participants
Aller à la page : 1, 2, 3, 4  Suivant
AuteurMessage
Jack
Admin
Jack


Nombre de messages : 2394
Date d'inscription : 28/05/2007

Version instantanée du 12 septembre 2012 PANORAMIC V0.9.24i2 Empty
MessageSujet: Version instantanée du 12 septembre 2012 PANORAMIC V0.9.24i2   Version instantanée du 12 septembre 2012 PANORAMIC V0.9.24i2 EmptyMer 12 Sep 2012 - 17:43

Version instantanée du 12 septembre 2012: PANORAMIC V 0.9.24i2

Une version instantanée est la version actuelle du développement de PANORAMIC, elle vous permet d'utiliser les toutes dernières améliorations, sans attendre la sortie de la prochaine version.
Une version instantanée n'a pas de procédure d'installation (c'est un fichier zip contenant l'EDITEUR).
Les nouveaux mots-clés n'ont pas de coloration syntaxique dans l'EDITEUR.

Pour obtenir la version instantanée, cliquez sur *** retiré ***

Voici les apports de cette version, par rapport à la dernière version régulière PANORAMIC V0.9.23 du 19 juillet 2012:

1 - nouvelles commandes pour les GRID :

GRID_CLEAR N,R,C : efface les cellules du GRID numéro N de la ligne 1 à R et de la colonne 1 à C
GRID_SAVE N,R,C,F : sauvegarde le GRID dans le fichier F, de la ligne 1 à R et de la colonne 1 à C
GRID_LOAD N,F : charge le fichier F dans le GRID numéro N

2 - les sous-programmes (appelés aussi "procédures") :

On déclare un sous-programme par SUB, suivi de son nom et d'un ou plusieurs paramètres entre parenthèses.
Les paramètres déclarés sont locaux au sous-programme. Il peuvent avoir le même nom que des variables globales (déclarées par DIM).
On termine le code d'un sous-programme par END_SUB.
On appelle un sous-programme directement par son nom.
Pour déclarer un sous-programme sans paramètre, ainsi que pour l'appeler, on met des parenthèses.

3 - les variables locales:

DIM_LOCAL permet de déclarer des variables locales dans un sous-programme. Ces variables peuvent avoir le même nom que des variables globales (déclarées par DIM), mais n'existent que dans le sous-programme. On ne peut pas redéclarer le paramètre d'un sous-programme par DIM_LOCAL.
DIM_LOCAL s'utilise comme DIM et permet de déclarer des variables entières, réelles, chaînes de caractères, simples ou des tableaux.

exemple de sous-programme avec 2 paramètres:
Code:
dim i%
for i%=1 to 10
 imprime(i%,20)
next i%
end

sub imprime(x%,i%): rem i% ici est différent du i% de dim i%
 print x%*i%
end_sub

exemple de sous-programme sans paramètre:
Code:
dim i%
for i%=1 to 10
 imprime()
next i%
end

sub imprime()
 print i%: rem i% ici est une variable globale
end_sub

exemple d'utilisation de DIM_LOCAL dans un sous-programme: il doit s'afficher deux fois 15
Code:
dim i%,j%
i%=15:j%=15
imprime(i%)
imprime(j%)
end

sub imprime(a%)
dim_local j%
print a%
j%=5 : rem on ne modifie que j% local
end_sub


Dernière édition par Jack le Mer 3 Oct 2012 - 18:45, édité 7 fois
Revenir en haut Aller en bas
https://panoramic.1fr1.net
Nardo26

Nardo26


Nombre de messages : 2294
Age : 56
Localisation : Valence
Date d'inscription : 02/07/2010

Version instantanée du 12 septembre 2012 PANORAMIC V0.9.24i2 Empty
MessageSujet: Re: Version instantanée du 12 septembre 2012 PANORAMIC V0.9.24i2   Version instantanée du 12 septembre 2012 PANORAMIC V0.9.24i2 EmptyMer 12 Sep 2012 - 17:47

Super Jack !! Version instantanée du 12 septembre 2012 PANORAMIC V0.9.24i2 18
J'adopte de suite !!! Very Happy
Les DIM_LOCAL vont bien m'aider !! Very Happy

EDIT: apparemment cette version à une limitation au niveau des numéros d'objets. (50 max)
un DLIST 600 me provoque un "out of range" ...
mais c'est pas grave : je suis trop content pour les DIM_LOCAL ! Version instantanée du 12 septembre 2012 PANORAMIC V0.9.24i2 22
Cette version risque de provoquer la mort de la commande FREE... Wink
Revenir en haut Aller en bas
http://nardo26.lescigales.org
Jack
Admin
Jack


Nombre de messages : 2394
Date d'inscription : 28/05/2007

Version instantanée du 12 septembre 2012 PANORAMIC V0.9.24i2 Empty
MessageSujet: Re: Version instantanée du 12 septembre 2012 PANORAMIC V0.9.24i2   Version instantanée du 12 septembre 2012 PANORAMIC V0.9.24i2 EmptyMer 12 Sep 2012 - 18:21

J'ai effectivement mis par erreur une version limitée. Je viens de mettre la version illimitée.
Bon tests !
Revenir en haut Aller en bas
https://panoramic.1fr1.net
Klaus

Klaus


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

Version instantanée du 12 septembre 2012 PANORAMIC V0.9.24i2 Empty
MessageSujet: Re: Version instantanée du 12 septembre 2012 PANORAMIC V0.9.24i2   Version instantanée du 12 septembre 2012 PANORAMIC V0.9.24i2 EmptyMer 12 Sep 2012 - 18:41

MERCI !!!!!!!!!!!!!!!!!!!!!!! Je charge tout de suite !
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Invité
Invité




Version instantanée du 12 septembre 2012 PANORAMIC V0.9.24i2 Empty
MessageSujet: Re: Version instantanée du 12 septembre 2012 PANORAMIC V0.9.24i2   Version instantanée du 12 septembre 2012 PANORAMIC V0.9.24i2 EmptyMer 12 Sep 2012 - 18:50

Merci bien Jack. çà a l'air formidable tout cela.
Revenir en haut Aller en bas
Yannick




Nombre de messages : 8635
Age : 53
Localisation : Bretagne
Date d'inscription : 15/02/2010

Version instantanée du 12 septembre 2012 PANORAMIC V0.9.24i2 Empty
MessageSujet: re   Version instantanée du 12 septembre 2012 PANORAMIC V0.9.24i2 EmptyMer 12 Sep 2012 - 18:54

Bon...heu...je me prépare psychologiquement à souffrir
et je télécharge... Laughing Laughing Laughing


Merci, JACK !!!


Edit : Peux tu nous dire où tu en es au niveau des boutons avec images ?
Revenir en haut Aller en bas
Nardo26

Nardo26


Nombre de messages : 2294
Age : 56
Localisation : Valence
Date d'inscription : 02/07/2010

Version instantanée du 12 septembre 2012 PANORAMIC V0.9.24i2 Empty
MessageSujet: Re: Version instantanée du 12 septembre 2012 PANORAMIC V0.9.24i2   Version instantanée du 12 septembre 2012 PANORAMIC V0.9.24i2 EmptyMer 12 Sep 2012 - 19:32

Jack,
Un petit soucis avec la déclaration de tableau locaux:
Code:
1 Test()
2 END
3
4 SUB Test()
5  DIM_LOCAL a$(2)
6  a$(0)="ertrt"
7  a$(1)="ertret"
8 END_SUB
J'obtiens "Array index overflow or underflow. Line 6"
scratch
Revenir en haut Aller en bas
http://nardo26.lescigales.org
Yannick




Nombre de messages : 8635
Age : 53
Localisation : Bretagne
Date d'inscription : 15/02/2010

Version instantanée du 12 septembre 2012 PANORAMIC V0.9.24i2 Empty
MessageSujet: re   Version instantanée du 12 septembre 2012 PANORAMIC V0.9.24i2 EmptyMer 12 Sep 2012 - 19:32

Si j'ai compris l'exemple 1

le x% et i% entre parenthèses sont respectivement i% et 20 mais ne sont pas des variables
ni globales, ni locales...

ben...elles sont quoi alors ? et personne ne les déclare....bref des sans papiers quoi Laughing
Revenir en haut Aller en bas
Jicehel

Jicehel


Nombre de messages : 5947
Age : 52
Localisation : 77500
Date d'inscription : 18/04/2011

Version instantanée du 12 septembre 2012 PANORAMIC V0.9.24i2 Empty
MessageSujet: Re: Version instantanée du 12 septembre 2012 PANORAMIC V0.9.24i2   Version instantanée du 12 septembre 2012 PANORAMIC V0.9.24i2 EmptyMer 12 Sep 2012 - 19:35

ce sont des paramètres ygeronimi .... Wink

Merci beaucoup Jack pour cette nouvelle avancée
Revenir en haut Aller en bas
Yannick




Nombre de messages : 8635
Age : 53
Localisation : Bretagne
Date d'inscription : 15/02/2010

Version instantanée du 12 septembre 2012 PANORAMIC V0.9.24i2 Empty
MessageSujet: re   Version instantanée du 12 septembre 2012 PANORAMIC V0.9.24i2 EmptyMer 12 Sep 2012 - 19:38

Merci Jicehel,

bon je vais attendre un peu avant de les remettre à l'avion alors.... Laughing Laughing Laughing


Cà commence à rentrer mais vous en avez pas fini avec moi ... Laughing Laughing Laughing
Revenir en haut Aller en bas
Nardo26

Nardo26


Nombre de messages : 2294
Age : 56
Localisation : Valence
Date d'inscription : 02/07/2010

Version instantanée du 12 septembre 2012 PANORAMIC V0.9.24i2 Empty
MessageSujet: Re: Version instantanée du 12 septembre 2012 PANORAMIC V0.9.24i2   Version instantanée du 12 septembre 2012 PANORAMIC V0.9.24i2 EmptyMer 12 Sep 2012 - 19:44

ygeronimi a écrit:
Si j'ai compris l'exemple 1

le x% et i% entre parenthèses sont respectivement i% et 20 mais ne sont pas des variables
ni globales, ni locales...

ben...elles sont quoi alors ? et personne ne les déclare....bref des sans papiers quoi Laughing
tu as un peu raison : les variables x% et i% au niveau de la SUB sont implicitement déclarées (sur la définition de la ligne elle-même). Tu n'as pas à faire de DIM sur ces paramètres, c'est Panoramic qui s'en charge...
Tu vois que c'est simple !!!
Wink
Revenir en haut Aller en bas
http://nardo26.lescigales.org
Jean Claude

Jean Claude


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

Version instantanée du 12 septembre 2012 PANORAMIC V0.9.24i2 Empty
MessageSujet: Re: Version instantanée du 12 septembre 2012 PANORAMIC V0.9.24i2   Version instantanée du 12 septembre 2012 PANORAMIC V0.9.24i2 EmptyMer 12 Sep 2012 - 20:02

Merci Jack,

Me reste à tester.


@Ygeronimi, çà fait 2 fois en 2 jours que tu me fais me tordre de rire, merci aussi car c"est bon pour la santé.


A+
Revenir en haut Aller en bas
Yannick




Nombre de messages : 8635
Age : 53
Localisation : Bretagne
Date d'inscription : 15/02/2010

Version instantanée du 12 septembre 2012 PANORAMIC V0.9.24i2 Empty
MessageSujet: re   Version instantanée du 12 septembre 2012 PANORAMIC V0.9.24i2 EmptyMer 12 Sep 2012 - 20:06

@ Jean Claude,


Je n'ai déjà pas d'argent....alors si je n'avais pas d'humour non plus....Laughing
Revenir en haut Aller en bas
JL35




Nombre de messages : 7112
Localisation : 77
Date d'inscription : 29/11/2007

Version instantanée du 12 septembre 2012 PANORAMIC V0.9.24i2 Empty
MessageSujet: Re: Version instantanée du 12 septembre 2012 PANORAMIC V0.9.24i2   Version instantanée du 12 septembre 2012 PANORAMIC V0.9.24i2 EmptyMer 12 Sep 2012 - 20:22

Enfin, les variables locales, merci Jack !
A nous les bibliothèques de sous-programmes indépendants.
Revenir en haut Aller en bas
papydall

papydall


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

Version instantanée du 12 septembre 2012 PANORAMIC V0.9.24i2 Empty
MessageSujet: Re: Version instantanée du 12 septembre 2012 PANORAMIC V0.9.24i2   Version instantanée du 12 septembre 2012 PANORAMIC V0.9.24i2 EmptyMer 12 Sep 2012 - 20:36

Je confirme :
La déclaration d’une variable tableau par DIM_LOCAL dans une procédure SUB, ne fonctionne pas.
(30) Array index overflow or underflow.Line 11
Code:

' dim a$(10)
 test()
 END
 SUB test()
  DIM_LOCAL a$(10) : ' la déclaration d'un tableau par DIM_LOCAL ne marche pas!
  DIM_LOCAL i%
  DIM_LOCAL b$ : b$ = "HELLO"
  message b$
  for i% = 1 to 10
    a$(i%)=str$(i%)
    print a$(i%)
  next i%
 END_SUB
Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
JL35




Nombre de messages : 7112
Localisation : 77
Date d'inscription : 29/11/2007

Version instantanée du 12 septembre 2012 PANORAMIC V0.9.24i2 Empty
MessageSujet: Re: Version instantanée du 12 septembre 2012 PANORAMIC V0.9.24i2   Version instantanée du 12 septembre 2012 PANORAMIC V0.9.24i2 EmptyMer 12 Sep 2012 - 20:57

Plus simplement, si je fais dans mon programme principal:
Code:
...
Img_Infos(f$,wi%,hi%,dt$,ta%)
message str$(wi%)+"x"+str$(hi%)+" "+dt$+ "  " + str$(ta%)
....
SUB Img_infos(f$, w%, h%, d$, t%)
' Image f$ -> w%, h%, d$, t% (dimensions, date/heure de prise de vue, taille)
....
message str$(w%)+"x"+str$(h%)+" "+d$+ "  " + str$(t%)
END_SUB
le 'message' à la fin de la SUB affiche bien les bonnes valeurs, mais le message du programme principal (retour de SUB) n'affiche que des zéros... qu'est-ce que je fais mal ? scratch
Revenir en haut Aller en bas
Nardo26

Nardo26


Nombre de messages : 2294
Age : 56
Localisation : Valence
Date d'inscription : 02/07/2010

Version instantanée du 12 septembre 2012 PANORAMIC V0.9.24i2 Empty
MessageSujet: Re: Version instantanée du 12 septembre 2012 PANORAMIC V0.9.24i2   Version instantanée du 12 septembre 2012 PANORAMIC V0.9.24i2 EmptyMer 12 Sep 2012 - 21:13

Il faut considérer les paramètres comme des variables locales.
Les données sont passées à la procédure par valeur (comme dirais Klaus Wink )
A aucun moment les variables globales ne sont pas modifiées...
Revenir en haut Aller en bas
http://nardo26.lescigales.org
Jicehel

Jicehel


Nombre de messages : 5947
Age : 52
Localisation : 77500
Date d'inscription : 18/04/2011

Version instantanée du 12 septembre 2012 PANORAMIC V0.9.24i2 Empty
MessageSujet: Re: Version instantanée du 12 septembre 2012 PANORAMIC V0.9.24i2   Version instantanée du 12 septembre 2012 PANORAMIC V0.9.24i2 EmptyMer 12 Sep 2012 - 21:14

Ca je peux répondre JL35, tu passe des paramètres à ton sous programme. Les valeurs initiales ne sont pas modifiée. Tu execute juste ta procédure pour ces valeurs.
Tu ne passe pas les variables, mais uniquement leur valeur que tu mets dans les variables temporaires de ta procédure
Imagions, Tu veux calculer des carrés de nombre
Tu mets 2 dans la variable nombre
Tu appelles la procédure carré(nombre)
Tu arrives dans le sous programme carré(i%)
Il prend la valeur de "nombre" et la mets dans ta variable locale (ton paramètre) i%
Il fait son calcul
dans ton sous programme tu peux alors afficher le carré.
Si tu veux recupérer la valeur. En attendant les fonctions, tu déclares une variable globale resultat
et dans ton sous programme tu affecte le resultat à cette varaible
Dans ton programme tu pourras alors utiliser cette valeur (resultat)

J'espère que mon explication ne sera pas trop confuse ...
Revenir en haut Aller en bas
JL35




Nombre de messages : 7112
Localisation : 77
Date d'inscription : 29/11/2007

Version instantanée du 12 septembre 2012 PANORAMIC V0.9.24i2 Empty
MessageSujet: Re: Version instantanée du 12 septembre 2012 PANORAMIC V0.9.24i2   Version instantanée du 12 septembre 2012 PANORAMIC V0.9.24i2 EmptyMer 12 Sep 2012 - 21:16

Merci les gars, il faut que je médite tout ça... ce n'est pas ce à quoi je m'attendais...
Effectivement vous avez raison, j'avais mal interprété la règle...
Merci en tout cas pour cet éclaircissement !

Donc je m'étais un peu emballé avec les bibliothèques de sous-programmes, puisqu'on ne peut retourner de valeur que si on connaît la variable globale qui doit contenir cette valeur... c'est beaucoup moins souple que ce que j'espérais (comme les SUB du basic classique qui fonctionnent comme j'avais fait).
Revenir en haut Aller en bas
Jicehel

Jicehel


Nombre de messages : 5947
Age : 52
Localisation : 77500
Date d'inscription : 18/04/2011

Version instantanée du 12 septembre 2012 PANORAMIC V0.9.24i2 Empty
MessageSujet: Re: Version instantanée du 12 septembre 2012 PANORAMIC V0.9.24i2   Version instantanée du 12 septembre 2012 PANORAMIC V0.9.24i2 EmptyMer 12 Sep 2012 - 21:27

Pour retourner une valeur, il faut une fonction, mais pour passer des variables,dans tes librairies, on pourra ruser en passant les adresses des variables... comme pour l'appel des DLL Wink
Revenir en haut Aller en bas
JL35




Nombre de messages : 7112
Localisation : 77
Date d'inscription : 29/11/2007

Version instantanée du 12 septembre 2012 PANORAMIC V0.9.24i2 Empty
MessageSujet: Re: Version instantanée du 12 septembre 2012 PANORAMIC V0.9.24i2   Version instantanée du 12 septembre 2012 PANORAMIC V0.9.24i2 EmptyMer 12 Sep 2012 - 21:33

Finalement je fais comme dit Nardo, dans le SUB mettre directement la valeur dans la variable globale.

Soit wi% cette variable globale.
Il faut faire
Code:
Img_Infos(... ,wi%,...)
et
SUB Img_Infos(...,w%,...)
...
wi% = valeur
END_SUB
mais surtout pas:
Code:
SUB Img_Infos(...,wi%,...)
parce que là, ça rend zéro.

En l'état, je trouve que le SUB n'apporte pas grand chose par rapport au bon vieux GOSUB.
Ce que je retiens c'est surtout le DIM_LOCAL
Revenir en haut Aller en bas
Jicehel

Jicehel


Nombre de messages : 5947
Age : 52
Localisation : 77500
Date d'inscription : 18/04/2011

Version instantanée du 12 septembre 2012 PANORAMIC V0.9.24i2 Empty
MessageSujet: Re: Version instantanée du 12 septembre 2012 PANORAMIC V0.9.24i2   Version instantanée du 12 septembre 2012 PANORAMIC V0.9.24i2 EmptyMer 12 Sep 2012 - 22:12

Disons que dans ton cas, tu n'as qu'une variable "commune" ce qui diminue beaucoup les risque de "conflits" de variables
Revenir en haut Aller en bas
JL35




Nombre de messages : 7112
Localisation : 77
Date d'inscription : 29/11/2007

Version instantanée du 12 septembre 2012 PANORAMIC V0.9.24i2 Empty
MessageSujet: Re: Version instantanée du 12 septembre 2012 PANORAMIC V0.9.24i2   Version instantanée du 12 septembre 2012 PANORAMIC V0.9.24i2 EmptyMer 12 Sep 2012 - 22:22

Non, là j'en ai 5 (voir l'exemple plus haut), mais bon, c'est le principe qui compte. Pour rendre des valeurs (ce qui est le cas général il me semble) il faut que le (la ?) SUB connaisse les variables externes à utiliser.
Revenir en haut Aller en bas
papydall

papydall


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

Version instantanée du 12 septembre 2012 PANORAMIC V0.9.24i2 Empty
MessageSujet: Re: Version instantanée du 12 septembre 2012 PANORAMIC V0.9.24i2   Version instantanée du 12 septembre 2012 PANORAMIC V0.9.24i2 EmptyJeu 13 Sep 2012 - 0:25

Salut tout le monde.

J’ai remarqué une certaine confusion dans la compréhension du fonctionnement de sous-programmes.
Je vous propose, ici, une petite explication de la chose.
J’espère qu’elle éclairerait certaines lanternes.

Un sous-programme est une partie indépendante d’un programme principal ou des autres sous-programmes.
Sa tâche doit être parfaitement définie. Il est souhaitable qu’il soit indépendant du corps principal du programme.
Chaque fois que vous l’appelez, les instructions de la routine sont exécutées comme si elles figuraient à l’emplacement du nom des sous-programmes dans le corps principal.

L’indépendance d’un sous-programme permet en plus de l’intégrer dans d’autres programmes.
Il est inutile de réinventer, à chaque fois, la roue !

En général, il existe 2 types de sous-programmes : les procédures et les fonctions.
Actuellement PANORAMIC connait les procédures et j’espère que les fonctions ne vont pas tarder !
La distinction fondamentale entre procédure et fonction se base sur le fait qu’une fonction retourne TOUJOURS une valeur à l’appelant.
Cela n’a rien de systématique dans le cas des procédures, elles réalisent des tâches diverses.

Variables locales et globales :
====================
Le qualificatif de « global », lorsqu’il est appliqué à un identificateur ou une variable indique que le symbole est accessible à la totalité du programme, y compris la totalité des sous-programmes. Lorsqu’une variable est déclarée dans le programme principal (c.à.d. en dehors des sous-programmes), il s’agit d’une variable globale.

Par contre, un symbole « local » n’est connu que du sous-programme où il est déclaré par DIM_LOCAL, et non des autres sous-programmes ni du programme principal.
Cela signifie que ces derniers ne peuvent en exploiter le contenu.
PANORAMIC autorise la déclaration d’un identificateur à la fois en tant que symbole local et global.
Le symbole local est alors PRIORITAIRE sur le symbole global.

Exemple :
La variable globale X déclarée dans le programme principal n’est accessible à un sous-programme que s’il ne déclare pas lui-même une variable X.
Si c’est le cas, les opérations exploitant X se réaliseront avec le contenu de la variable locale X. La variable globale de même nom ne sera ni prise en compte ni modifiée.

Utilisez tant que faire se peut des variables locales dans vos sous-programmes. Vos routines deviennent alors relativement indépendantes du programme principal, ce qui vous permet de les reprendre dans d’autres programmes.

Transmission par valeur de paramètres à une procédure
==========================================

PANORAMIC permet de transmettre des valeurs de l’appelant (programme principal ou sous-programme) à la procédure appelée.
La procédure traitera ensuite les valeurs reçues. Cela augmente les possibilités de réemploi d’un sous-programme, chaque programme pouvant transmettre des valeurs propres à la routine. De même, au sein d’un seul programme les appels peuvent se multiplier, car ils se distinguent par la transmission de valeurs différentes.

La déclaration d’une procédure avec transmission par valeur de paramètres se fait avec une liste de paramètres entre parenthèses qui suit le nom de la procédure. Cette liste énumère les valeurs à transmettre ainsi que leur type.
exp :
SUB NomProcedure(<liste des paramètres>)


END_SUB

Admettons qu’une procédure TEST reçoive 2 valeurs A% et B% de type entier. Voici un exemple de déclaration :

SUB test(A%,B%)

END_SUB

Si, la procédure TEST devait en plus recevoir une valeur C$ de type chaine, la déclaration deviendrait :

SUB test(A%,B%,C$)

END_SUB

Une fois cette dernière déclaration effectuée, la procédure TEST sera appelée en lui transmettant très précisément 2 valeurs de type entier et une valeur de type string, STRICTEMENT DANS CET ORDRE.
A%, B%,C$ seront traités comme des variables locales à la procédure TEST. Elles reçoivent les valeurs transmises. Ce sera au travers de ces noms que vous traiterez les valeurs dans la procédure.

Le système affectera la 1ère valeur reçue à la variable A%, la seconde à B%, et la troisième à C$.
Voici un exemple de la manière dont nous appellerons la procédure TEST à partir d’un programme :

test(2,3, "salut")

Ce qui entrainerait les affectations :
A% < ---- 2
B% < ----3
C$ < ---- "salut"

REMARQUE :
L’expression « transmission par valeur » ne signifie pas que nous devons explicitement préciser la valeur car la transmission peut également porter sur des variables contenant la valeur. Mais précisons que seule la valeur, c.à.d. l’information contenue par la variable est alors transmise.
Un programme qui utiliserait « également les variables A%,B% et C$ (qui sont ici globales) et leur affecterait des valeurs, pourrait appeler la procédure TEST de la manière suivante :


A% = 2 : B% = 3 : C$ = "salut"
test(a%,b%,c$)


L’effet serait semblable à celui de l’exemple précédent. La procédure reçoit les valeurs 2,3 et "salut" et les stocke dans les variables locales A%,B% et C$.
Les identificateurs globaux ne doivent pas à tout prix être les mêmes que les symboles locaux.
Un programme qui utiliserait les variables X%,Y% et Z$, pourait appeler la procédure TEST de la manière suivante :


X% = 2 : Y% = 3 : Z$ = "salut"
test(X%,Y%,Z$)

Présentons ce que nous venons de dire d’une manière condensée.
Considérons comme acquises une déclaration et une affectation cohérente des variables, les appels de la procédure TEST, ci-dessous ont tous le même effet :

test(2,3, "salut")
test(a%,b%,c$)
test(x%,y%,z$)

PANORAMIC dépose sur la pile (la pile est une zone de la mémoire vive) une COPIE de chaque paramètre de type « valeur » transmis.
Une fois la routine exécutée, lors du retour au programme appelant, le système ELIMINERA les paramètres de la pile. Ces valeurs sont en fait des COPIES TEMPORAIRES, les valeurs d’origines connues du programme appelant NE SONT PAS MODIFIEES par l’exécution de la procédure.

Transmissions de paramètres par adresse
===============================
La version actuelle de PANORAMIC ne permet pas la transmission de paramètre par adresse.
Lorsque cela sera possible, je vous donnerais les informations utiles.

LES FONCTIONS
============
Dans la version actuelle, les déclarations de sous-programmes de type FONCTION n’est pas encore implémentée.
Disons simplement ceci :
Les fonctions ne se distinguent de procédures que par le fait qu’elles retournent systématiquement un résultat au programme appelant, ce qui permet de les utiliser dans des expressions.
La transmission de paramètres par valeur et par adresse se réalise, pour les fonctions, strictement de la même manière que pour les procédures.
Nous en parlerons peut-être une autre fois.


J’espère que j’ai éclairé un tant soit peu vos lanternes sunny sunny sunny sunny sunny
Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
Klaus

Klaus


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

Version instantanée du 12 septembre 2012 PANORAMIC V0.9.24i2 Empty
MessageSujet: Re: Version instantanée du 12 septembre 2012 PANORAMIC V0.9.24i2   Version instantanée du 12 septembre 2012 PANORAMIC V0.9.24i2 EmptyJeu 13 Sep 2012 - 0:53

Bravo, Papydall ! Tu as la fibre pédagogique ! C'est on ne peut plus clair.
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Contenu sponsorisé





Version instantanée du 12 septembre 2012 PANORAMIC V0.9.24i2 Empty
MessageSujet: Re: Version instantanée du 12 septembre 2012 PANORAMIC V0.9.24i2   Version instantanée du 12 septembre 2012 PANORAMIC V0.9.24i2 Empty

Revenir en haut Aller en bas
 
Version instantanée du 12 septembre 2012 PANORAMIC V0.9.24i2
Revenir en haut 
Page 1 sur 4Aller à la page : 1, 2, 3, 4  Suivant
 Sujets similaires
-
» Version instantanée du 8 septembre 2012 PANORAMIC V 0.9.24i1
» Version instantanée du 16 mai 2012: PANORAMIC V 0.9.23i6
» Version instantanée du 25 octobre 2012: PANORAMIC V 0.9.24i5
» Version instantanée du 28 janvier 2012: PANORAMIC V 0.9.23i4
» Version instantanée du 13 février 2012: PANORAMIC V 0.9.23i5

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC :: PANORAMIC :: Ce qui est en cours ...-
Sauter vers: