| Version instantanée du 8 septembre 2012 PANORAMIC V 0.9.24i1 | |
|
+11Nardo26 Jean Claude JL35 Severin pan59 bignono Yannick papydall Jicehel Klaus Jack 15 participants |
|
Auteur | Message |
---|
Jack Admin
Nombre de messages : 2394 Date d'inscription : 28/05/2007
| Sujet: Version instantanée du 8 septembre 2012 PANORAMIC V 0.9.24i1 Sam 8 Sep 2012 - 18:09 | |
| Version instantanée du 8 septembre 2012: PANORAMIC V 0.9.24i1Une 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 procédures : On déclare une procédure par SUB, et les paramètres déclarés sont locaux à la procédure. On termine le code d'une procédure par END_SUB. On appelle une procédure directement par son nom. exemple : - Code:
-
dim i% for i%=1 to 10 imprime(i%,20) next i% end sub imprime(x%,y%) print x%*y% end_sub
Dernière édition par Jack le Mar 11 Sep 2012 - 9:37, édité 1 fois | |
|
| |
Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Version instantanée du 8 septembre 2012 PANORAMIC V 0.9.24i1 Sam 8 Sep 2012 - 18:22 | |
| Ah, tu nous donnes du grain à moudre ! Parfait ! Je télécharge de suite et je teste ! Merci !
EDIT
Petite suggestion: pourrais-tu à l'avenir inclure dans Panoramic_Editor.zip, non seulement l'éditeur, mais également Panoramic.exe correspondant ? | |
|
| |
Jicehel
Nombre de messages : 5947 Age : 52 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Re: Version instantanée du 8 septembre 2012 PANORAMIC V 0.9.24i1 Sam 8 Sep 2012 - 18:35 | |
| Génial, je teste | |
|
| |
papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: Version instantanée du 8 septembre 2012 PANORAMIC V 0.9.24i1 Sam 8 Sep 2012 - 18:44 | |
| Merci Jack. Je vais tester SUB ….END_SUB
Dernière édition par papydall le Dim 17 Nov 2013 - 0:38, édité 1 fois | |
|
| |
Jack Admin
Nombre de messages : 2394 Date d'inscription : 28/05/2007
| Sujet: Re: Version instantanée du 8 septembre 2012 PANORAMIC V 0.9.24i1 Sam 8 Sep 2012 - 18:53 | |
| | |
|
| |
Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Sam 8 Sep 2012 - 19:04 | |
| @ Jack,
Merci !!!
Edit : Ce que je craignais arrive, je suis pommé..., c'est pas grave...
| |
|
| |
Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Version instantanée du 8 septembre 2012 PANORAMIC V 0.9.24i1 Sam 8 Sep 2012 - 19:34 | |
| Voici le résultat de mes premiers tests: - passage de paramètres par valeur uniquement. Conséquence: on ne peut pas retourner une valeur par un paramètre, et on ne peut pas passer un tableau entier. - toutes les variables sont globales, il n'y a pas de variables locales à la procédure. Sur ce point, tout est identique à ce qu'on peut faire avec GOSUB. Quoique... Si je fais ceci: - Code:
-
dim i%,a%(3) for i%=0 to 3 a%(i%) = i%*10 + 1 next i% test(a%) ... SUB test(a%) message str$(a%'0)) END_SUB j'obtiens une erreur sur "test(a%)". Normal. Mais si je fais ceci: - Code:
-
dim i%,a%(3) for i%=0 to 3 a%(i%) = i%*10 + 1 next i% test(a%) ... SUB test(a%(3)) message str$(a%'0)) END_SUB j'obtiens une erreur sur "message str$(a%'0))". On est bien rentré dans la procédure, donc il a essayé de passer quelque chose, mais il ne sait pas quoi en faire ensuite. Qu'en est-il exactement pour les tableaux ? Jack, je sais que tu viens de franchir un pas énorme avec SUB...END_SUB. Longtemps attendu, ces commandes vont simplifier pas mal de codage répétitif. Mais est-ce que je me trompe si je pense qu'il ne s'agit que d'un premier jet ? Oserais-je suggérer les évolutions suivantes? 1. ajouter une commande EXIT_SUB 2. créer un jey de commandes symétrique FUNCTION - EXIT_FUNCTION - END_FUNCTION 3. la valeur de retour serait affectée à une variable fictive du nom de la fonction, et ce nom pourrait se terminer par un $ si la valeur retournée doit être une chaîne de caractères. 4. créer un mode de passage de paramètres "par référence" via une pseudo-fonction REF(), un peu comme ceci: - Code:
-
dim a%,b% test(a%,ref(b%)) ... SUB test(x%,y%) y% = 2*x% END_SUB
5. utiliser le passage par référence pour passer des tableaux entiers, un peu comme ceci: - Code:
-
dim x%(3) test(ref(x%)) ... SUB test(x%(3) : ' ou SUB test(x%()) x%(0) = 3 x%(1) = 2 END_SUB
Ne prends pas mal ce que je suggère, et j'enfonce peut-être des portes ouvertes. En plus, comme certainement nous tous, je suis heureux d'avoir SUB - END_SUB et j'attendrai patiemment pour voir l'évolution. Bravo pour ce que tu as fait !
Dernière édition par Klaus le Sam 8 Sep 2012 - 19:53, édité 2 fois | |
|
| |
Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Sam 8 Sep 2012 - 19:45 | |
| Pourquoi "next a%" alors que ta boucle est "for i% ..." ? | |
|
| |
Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Version instantanée du 8 septembre 2012 PANORAMIC V 0.9.24i1 Sam 8 Sep 2012 - 19:53 | |
| Bien vu, Ygeronimi ! C'est corrigé ! | |
|
| |
Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Sam 8 Sep 2012 - 19:56 | |
| j'arrive à çà : - Code:
-
dim i%,a%(3) for i%=1 to 3 a%(i%)=i%*10+1 test(a%(i%)) next i% end
sub test(a%(i%)) message str$(a%(i%)) end_sub ou çà : - Code:
-
dim i%,a%(3) for i%=0 to 3 a%(i%)=i%*10+1 next i% test(a%(i%)) end
sub test(a%(i%)) message str$(a%(0))+","+str$(a%(1))+","+str$(a%(2))+","+str$(a%(3)) end_sub ...et je ne te dis pas où j'en serai après l'apéro | |
|
| |
Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Version instantanée du 8 septembre 2012 PANORAMIC V 0.9.24i1 Sam 8 Sep 2012 - 20:09 | |
| Le second exemple est étonnant, ne trouves-tu pas ? Tu passes un élément INEXISTANT du tableau, le numéro 4, et on a accès aux éléments existants du tableau ! Bluffant ! Regarde ton code avec un petit ajout: - Code:
-
dim i%,a%(3) for i%=0 to 3 a%(i%)=i%*10+1 next i% message str$(i%) : ' pour vérifier l'indice qu'on passe test(a%(i%)) end
sub test(a%(i%)) message str$(a%(0))+","+str$(a%(1))+","+str$(a%(2))+","+str$(a%(3)) end_sub dans la ligne "test(a%(i%))", on aurait dû avoir une erreur sur dépassement de l'indice... Décidément, il reste des choses à revoir. | |
|
| |
Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Sam 8 Sep 2012 - 20:12 | |
| Au secours , JACK !!!!! j'ai fait un essai et j'ai eu droit à un message d'erreur en boucle, plus moyen de s'échapper ! j'ai du tuer panoramic.exe ... Je sais que je suis lent à la détente mais une fois suffit ... ( j'avais juste enlever les parenthèses et leur contenu de "sub test( a%(i%))" dans le code du post au dessus ) | |
|
| |
Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Sam 8 Sep 2012 - 20:18 | |
| @ Klaus, en fait il passe le tableau mais pas en tant que a%(0) à a%(3) mais un tableau a%() à 4 cases C'est l'heure du Miam... | |
|
| |
bignono
Nombre de messages : 1127 Age : 67 Localisation : Val de Marne Date d'inscription : 13/11/2011
| Sujet: Re: Version instantanée du 8 septembre 2012 PANORAMIC V 0.9.24i1 Sam 8 Sep 2012 - 20:30 | |
| Un grand bonsoir à toute la planète Panoramic Et un grand grand grand MERCI à JACK pour cette nouvelle version! A+ | |
|
| |
Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Sam 8 Sep 2012 - 20:31 | |
| Une petite question ...
avant des messages d'erreur qui n'en finissent plus.
la bonne écriture est :
Sub fonction() End_sub
même si il n'y a rien entre les parenthèses ? ou je peux les virer ? | |
|
| |
Jack Admin
Nombre de messages : 2394 Date d'inscription : 28/05/2007
| Sujet: Re: Version instantanée du 8 septembre 2012 PANORAMIC V 0.9.24i1 Sam 8 Sep 2012 - 20:34 | |
| @Klaus: Les fonctions sont prévues d'ici peu. Tu ne peux pas faire : SUB test(a%(3)) car SUB est utilisé pour déclarer la procédure. Il te faut définir une variable et non pas le 4ème élément d'un tableau ! Variable locales et vartiables globales: Si tu fais SUB test(i%) la variable i% est locale à la procédure test. Elle n'a rien à voir avec la variable i% de ta boucle: tu peux utiliser et modifier i% dans la procédure, cela n'a aucune influence sur le i% défini par dim i%. Par contre, si tu déclares dim j%, tu peux modifier j% dans la procédure: tu utilises la variable locale. Exemple: - Code:
-
dim i%,j% i%=10 j%=5 imprime(i%): rem c'est la valeur 10 qui est passée à imprime print i%: rem i% vaut toujours 10 print j%: rem j% vaut 3 car imprime a modifié la variable globale j% end sub imprime(i%) rem i% est déclarée dans cette procédure: elle est locale à cette procédure, elle a été initialisée à 10 print i% i%=1: rem cette valeur n'est valable que dans la procédure print i%: rem i% vaut maintenant 1 j%=3: rem cette variable est globale (définie ailleurs). Elle est donc modifiée end_sub Il s'affiche: 10 1 10 3 Règle: Les variables déclarées par DIM sont GLOBALESLes variables déclarées par SUB sont LOCALESPar SUB, on peut redéfinir une variable déja définie dans un DIMUne variable qui fait partie de la définition de la procédure, comme i% dans sub proc(i%) est LOCALE à la procédure: elle peut être modifiée dans la procédure sans aucune influence sur les variables GLOBALES. Toutes les autres variables utilisées dans une procédures sont GLOBALES: leur modification dans la procédure est valable lors de la sortie de cette procédure.
Dernière édition par Jack le Sam 8 Sep 2012 - 21:04, édité 10 fois | |
|
| |
Jack Admin
Nombre de messages : 2394 Date d'inscription : 28/05/2007
| Sujet: Re: Version instantanée du 8 septembre 2012 PANORAMIC V 0.9.24i1 Sam 8 Sep 2012 - 20:37 | |
| @ygeronimi:
Les messages d'erreur sont des messages de la mise au point dans cette version d'essai.
Si tu n'as de paramètres, il n'y a pas de parenthèses. La définition est alors: sub sspg - - - end_sub
et l'appel se fait par le nom donné, ici sspg
Dernière édition par Jack le Sam 8 Sep 2012 - 20:52, édité 1 fois | |
|
| |
pan59
Nombre de messages : 367 Age : 67 Localisation : Wattignies Date d'inscription : 16/10/2011
| Sujet: Nouvelle version. Sam 8 Sep 2012 - 20:48 | |
| Bonjour à tous. Je ne sais pas comment retourner le résultat de la sub dans une variable, exemple x%=indexOf(a$, b$, p%). A moins que cela ne soit pas possible dans la version actuelle. Merci de votre aide. - Code:
-
dim p%, x% dim a$, b$
a$="bonjour" b$="jour" p%=4
indexOf(a$,b$,p%)
end
sub indexOf(chaine$,sous_chaine$,position%) x%=instr(chaine$,sous_chaine$)-1 if x%<position% then x%=-1 message str$(x%) end_sub | |
|
| |
papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: Version instantanée du 8 septembre 2012 PANORAMIC V 0.9.24i1 Sam 8 Sep 2012 - 20:49 | |
| Salut tout le monde. Testez ce code et tirez vous-mêmes les conclusions ! - Code:
-
dim i%,a%(3),x% ,j,k,l,m,n,o,p for i%=0 to 3 a%(i%) = i%*10 + 1 next i% test(x%) : ' ça fonctionne bien que les paramètres d'appel ne concordent pas. ' test(j,k,l,m,n,o,p) : ' ça fonctione bien que les paramètres d'appel ne concordent pas ' test : ' --> message Analyse_Ligne_Du_Source.Call.Erreur de Paramètres ' message Analyse_Ligne_Du_Source.Call.Le nom du sspg n'est pas correct message "terminé" end SUB test(z$,a,b) z$ = "hello" : message z$ a = 2 : b = 5*a : message "b = " + str$(b) message " a%(2) = " + str$(a%(2))
END_SUB
| |
|
| |
Jack Admin
Nombre de messages : 2394 Date d'inscription : 28/05/2007
| Sujet: Re: Version instantanée du 8 septembre 2012 PANORAMIC V 0.9.24i1 Sam 8 Sep 2012 - 20:58 | |
| @pan59: Ce que tu demandes, c'est l'implantation des fonctions. Cela viendra en son temps. Pour le moment, si tu veux un "retour" d'une procédure, tu places ce 'retour" dans une variable globale, c'est à dire dans une variable qui ne fait pas partie de la définition de ta procédure.
@papydall: C'est noté. | |
|
| |
Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Version instantanée du 8 septembre 2012 PANORAMIC V 0.9.24i1 Sam 8 Sep 2012 - 21:01 | |
| @Jack at Papydall: J'avais bien compris que les variables listés dans la DECLARATION de la procédure sont internes à la procédure. Ce sont ce qu'on appelle des paramètres formels, ou des variables formelles. C'est totalement différent des variables locales. Exemple: - Code:
-
dim i%, j% i% = 1 j% = 2 test(i%,j%) message "k%="+str$(k%)+" est donc une variable globale !" end
SUB test(x%,y%) dim k% k% = i% + j% x% = x% * 2 y% = y% * 3 message "test: x%="+str$(x%)+" y%="+str$(y%)+" i%="+str$(i%)+" j%="+str$(j%)+" k%="+str$(k%) end_sub
Bien sûr, x% et y% sont internes à la procédure. Mais k% est global, alors que cette variable est définie dans la procédure. Mais elle esl globale tout de même, et elle reste valide après la sortie de la procédure. Si la variable était locale, la ligne 5 devrait produire une erreur. | |
|
| |
pan59
Nombre de messages : 367 Age : 67 Localisation : Wattignies Date d'inscription : 16/10/2011
| Sujet: Nouvelle version. Sam 8 Sep 2012 - 21:04 | |
| Bonsoir Jack.
Merci pour l'information, je me doutais un peu qu'il fallait procéder ainsi.
Donc, il n'y a pas moyen pour l'instant de récupérer facilement le résultat d'une sub ?
L'intégration des fonctions est prévue dans quel délai, stp ? Merci. | |
|
| |
Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Version instantanée du 8 septembre 2012 PANORAMIC V 0.9.24i1 Sam 8 Sep 2012 - 21:13 | |
| @Ygeronimi: J'avais trouvé ton second exemple bluffant, jusqu'à ce que je remarque que tu utilises la même variable a% en-dehors de la procédure et également à l'intérieur, en tant que paramètre formel. Or, clairement panoramic utilise dans ce cas la variable définie en-dehors de la procédure et non le paramètre formel. La preuve; change le nom de la variable en-dehors de la procédure (ou à l'intérieur, peu importe) de sorte que ce ne soit pas le même nom. Résultat: erreur à l'exécution, ce qui est déjà plus normal. | |
|
| |
papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: Version instantanée du 8 septembre 2012 PANORAMIC V 0.9.24i1 Sam 8 Sep 2012 - 21:22 | |
| @Klaus Je viens juste de faire la même constatation que la tienne concernant les variables définies au sein même de la procédure. Malheureusement, elles ne sont pas locales. J’espère qu’elles seront locales. Ça facilite grandement la portabilité des procédures/fonctions entre les différents programmes.
@Jack Une fois encore merci Jack. On est un peu emballé par ces évolutions de PANORAMIC. Avec l’implémentation des fonctions et les corrections des petits bugs signalés par les Forumistes, on va se régaler !
| |
|
| |
Severin
Nombre de messages : 547 Localisation : Braunschweig / Germany Date d'inscription : 13/12/2010
| Sujet: Re: Version instantanée du 8 septembre 2012 PANORAMIC V 0.9.24i1 Sam 8 Sep 2012 - 22:21 | |
| Mein Test von Lokalen Variablen defekt / Fehler ? Mein Versuch Lokale Variablen mit FREE entfernen. Severin Did Local Variables defect / error? My attempt Local variables with FREE remove. Severin Avez variables locales défaut / erreur? Mes variables locales tentent avec FREE retirer. Severin - Code:
-
' *** TEST SUB-ROUTINEN ******************************************************** ' dim i%,j% ' i%=10 ' j%=5 ' dim ZZ0001% :' Sprungadresse für SUB-Routine ' ' *** SUB ERSTELLEN ************************************************************ ' imprime(ZZ0001%) : Rem Wert ist 10, die vergangen zu druckenden ' print i% : REM ist immer 10 ' print j% : Rem j% wird drei Drucke ersetzt seit der globalen Variable j% verändert ' end ' ' ****************************************************************************** ' sub imprime(ZZ0001%) ' dim k%,l% ' : Rem i% ist eine Variable lokal in der Prozedur ' k%=21 : REM Dieser Wert ist nur gültig in der Prozedur ' print k% ' ' : Rem i% wird in diesem Verfahren erklärt: es ist lokale diesem Verfahren ' l%=31 : rem diese Variable global (an anderer Stelle definiert). Es wird daher geändert ' print l% ' ' FREE k%,l% ' end_sub
' ****************************************************************************** | |
|
| |
Contenu sponsorisé
| Sujet: Re: Version instantanée du 8 septembre 2012 PANORAMIC V 0.9.24i1 | |
| |
|
| |
| Version instantanée du 8 septembre 2012 PANORAMIC V 0.9.24i1 | |
|