| Version instantanée du 3 octobre 2012: PANORAMIC V 0.9.24i3 | |
|
+5Klaus Jicehel Jean Claude Yannick Jack 9 participants |
|
Auteur | Message |
---|
Jack Admin
Nombre de messages : 2394 Date d'inscription : 28/05/2007
| Sujet: Version instantanée du 3 octobre 2012: PANORAMIC V 0.9.24i3 Mer 3 Oct 2012 - 18:46 | |
| Version instantanée du 3 octobre 2012: PANORAMIC V 0.9.24i3Une 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 Télécharger ce fichierCette version corrige des bugs, par rapport à la dernière version instantanée PANORAMIC V0.9.24i2 du 12 septembre 2012. Voici les améliorations: - Dans un SUB, possibilité d'utiliser un tableau déclaré avec DIM_LOCAL. - Les variables locales à un SUB (déclarées avec DIM_LOCAL) sont libérées à la sortie du SUB. - Dans un SUB, une variable définie en paramètre (variable formelle) ne peut être redéfinie en variable locale (par DIM_LOCAL). - Dans un SUB, ADR() fonctionne sur les variables locales et sur les paramètres (variables formelles). Il reste encore certains bugs (moins prioritaires), qui seront corrigés ultérieurement, par exemple: - appel d'un SUB avec une chaine de caractères contenant le signe "=". - appel d'un SUB avec un nombre de paramètres différent du nombre de paramètres défini par sa déclaration. | |
|
| |
Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Mer 3 Oct 2012 - 19:35 | |
| Merci JACK ! | |
|
| |
Jean Claude
Nombre de messages : 5950 Age : 70 Localisation : 83 Var Date d'inscription : 07/05/2009
| Sujet: Re: Version instantanée du 3 octobre 2012: PANORAMIC V 0.9.24i3 Mer 3 Oct 2012 - 19:46 | |
| Merci Jack pour cette version de correction,
A+
| |
|
| |
Jicehel
Nombre de messages : 5947 Age : 52 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Re: Version instantanée du 3 octobre 2012: PANORAMIC V 0.9.24i3 Mer 3 Oct 2012 - 21:23 | |
| Merci Jack, belle avancée encore On va tester | |
|
| |
Invité Invité
| Sujet: Re: Version instantanée du 3 octobre 2012: PANORAMIC V 0.9.24i3 Mer 3 Oct 2012 - 22:14 | |
| Bonsoir Jack. D'abord merci pour le mal que tu te donnes pour améliorer Panoramic. Je viens d'essayer mon loader avec cette version, et malheureusement je dois reprendre la version précédente. J'ai une erreur avec un message d'erreur: indice de tableau hors limite. le tableau: dim tri%(70000) la partie du code qui est dans un sub est ceci: - Code:
-
sub tri(nb%) dim_local a%,b%,b$,i% ,c% : restore for a%=1 to nb% read b% for c%=0 to 66 caption 0,"b%="+str$(b%)+" c%="+str$(c%)+" nb%="+str$(nb%)+" a%+nb%*c%="+str$(a%+nb%*c%) ' résultat:124 (le 1er data) c%= 0 nb%=1000 a%+nb%*c%= 1 ' se bloque au premier data (1000 datas) à la ligne suivante avec: dim tri%(70000) tri%( a% + nb%*c% ) = b% next c% next a%: i%=1 : restore c'est à dire le tableau est défini au départ, et est rempli dans un sub. Je vais essayer de le faire à partir d'un label pour voir: même chose dans une procédure normale. |
|
| |
Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Version instantanée du 3 octobre 2012: PANORAMIC V 0.9.24i3 Mer 3 Oct 2012 - 23:55 | |
| Merci, Jack ! La libération des variables locales, ADR() pour variables locales et paramètres formels - impeccable ! Un grand progrès.
J'ai deux questions: 1. as-tu vu le problème avec les SELECT...CASE imbriqués, et qu'est-ce que tu en penses ? 2. que penses-tu de ce que j'ai suggéré depuis,l'annonce des procédures, à savoir: 2.1. la commande EXIT_SUB 2.2. la commande LABEL_LOCAL (analogue à DIM_LOCAL)
Avant même d'aller vers des fonctions, ces éléments seraient utiles pour le fonctionnement indépendant des procédures | |
|
| |
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 3 octobre 2012: PANORAMIC V 0.9.24i3 Jeu 4 Oct 2012 - 5:23 | |
| BRAVO JACK.
MAIS TU N'AS PAS INDIQUE QU’ON PEUT DESORMAIS APPELER RECURSIVEMENT LES SUB !
J’ai fait des tests et je conclus que :
LA RECURSIVITE EST POSSIBLE ! VIVE LA RECURSIVITE ! Est-ce que c'est vrai ou c'est le BUG le plus beau jamais découvert!Voici 3 exemples d’appels récursifs à des procédures : 1er exemple : Simulation de la fonction factorielle - Code:
-
' Simulation d'une fonction récursive dim f%,fact : f% = 10 : fact = 1 factoriel(f%) : print_locate 50,50 : print "FACTORIELLE RECURSIVE" print_locate 50,70 : print f%;"! = " ; fact end ' ****************************** sub factoriel(n%) if label("exit_factoriel") = 0 then label exit_factoriel if n% < 2 then goto exit_factoriel fact = n%*fact factoriel(n%-1) : ' appel récursif exit_factoriel: end_sub ' ***************************************
2ème exemple : Appel récursif à une procédure avec transfert d’un paramètre formel - Code:
-
' Appel récursif d'une SUB compter(1) end ' *************************** SUB compter(i%) if i% < 11 print i% compter(i%+1) end_if end_sub ' ***************************
3ème exemple : Appel récursif à une procédure avec transfert de 2 paramètres formels - Code:
-
' Appel récursif d'une SUB affiche(0,0) end ' ************************************************************ SUB affiche(a%, b%) if a% < 9 if b% < 10 print a% * 10 + b%; " "; : if a%*10+b% < 10 then print " "; affiche(a%, b% + 1) else print : affiche(a% + 1, 0) end_if end_if end_sub ' ************************************************************ | |
|
| |
Jicehel
Nombre de messages : 5947 Age : 52 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Re: Version instantanée du 3 octobre 2012: PANORAMIC V 0.9.24i3 Jeu 4 Oct 2012 - 8:21 | |
| Abus de langage ygeromini, dans ce cas, on ne parle pas de bug, mais d'effet de bord par exemple mais c'est une très bonne nouvelle en effet. Bien vu. Nardo tu vas pouvoir simplifier la librairie sur les arbres ... | |
|
| |
Jean Claude
Nombre de messages : 5950 Age : 70 Localisation : 83 Var Date d'inscription : 07/05/2009
| |
| |
Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Jeu 4 Oct 2012 - 11:57 | |
| Qu' est ce que j'ai dit ????? ...Pour une fois que je ferme ma grande gueule ...sniff! | |
|
| |
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 3 octobre 2012: PANORAMIC V 0.9.24i3 Jeu 4 Oct 2012 - 12:21 | |
| Jicehel s'est trompé d'interlocuteur! | |
|
| |
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 3 octobre 2012: PANORAMIC V 0.9.24i3 Jeu 4 Oct 2012 - 13:16 | |
| Salut tout le monde. Il parait qu’on ne peut pas utiliser une variable indicée (déclarée globale en dehors de la SUB) à l’intérieur d’une SUB. - Code:
-
dim t(6),i% for i% = 1 to 6 : t(i%) = i% : next i%
calcul() end
sub calcul() print t(1) : ' Not correct arithmetic expression : Index overflow.Line : 8 end_sub
Dans le code suivant, si on change DIM_LOCAL en DIM (à l’intérieur ou à l’extérieur de la SUB) ==== > ERREUR - Code:
-
dim t(6),i% for i% = 1 to 6 : t(i%) = i% : next i%
calcul(t(1),t(2),t(3),t(4),t(5),(6)) end
sub calcul(a,b,c,d,e,f) dim_local t1(6) t1(1) = a : t1(2) = b : t1(3) = c : t1(4) = d : t1(5) = e : t1(6) = f print t1(1) end_sub
| |
|
| |
Invité Invité
| Sujet: Re: Version instantanée du 3 octobre 2012: PANORAMIC V 0.9.24i3 Jeu 4 Oct 2012 - 14:42 | |
| Enfin le monde se réveil. Même Pagiciel ne peut fonctionner avec cette version: erreur à la ligne suivante: - Code:
-
atr$(1)="00000":atr$(2)="01000":atr$(3)="00100":atr$(4)="00010":atr$(5)="00001":atr$(6)="01100":atr$(7)="01010" avec - Code:
-
dim font$ , atr$(15), ..... erreur: (30) Indice de tableau hors limite Line:41 |
|
| |
Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Version instantanée du 3 octobre 2012: PANORAMIC V 0.9.24i3 Jeu 4 Oct 2012 - 15:41 | |
| @Papydall: Une autre mouture de la factorielle, sans label: - Code:
-
dim k%, fact%
fact% = 1 k% = 5 fact(k%) print str$(k%)+"! = "+str$(fact%) end
sub fact(x%) if x%>1 fact% = fact%*x% fact(x%-1) end_if end_sub | |
|
| |
Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Version instantanée du 3 octobre 2012: PANORAMIC V 0.9.24i3 Jeu 4 Oct 2012 - 15:52 | |
| @Jack: J'ai tiré avantage du fait que le nombre de paramètres d'une procédure n'est pas contrôlé pour le cas où on passe moins de paramètres que prévus dans la déclaration de la procédure. Je fais ceci: - Code:
-
test(0) test(1,"a") test(2,"a","b")
sub test(np%,p1$,p2$,p3$,p4$) if n%=0 then message "pas de paramètres" if n%=1 then message "1 paramètre: "+p1$ if n%=2 then message "2 paramètres: "+p1$+","+p2$ if n%=3 then message "3 paramètres: "+p1$+","+p2$+","+p3$ if n%=4 then message "4 paramètres: "+p1$+","+p2$+","+p3$+","+p4$ end_sub
En fait, tous les paramètres sont utilisables, seulement ceux qui ne sont pas passés lors de l'appel ont la valeur du dernier paramètre passé. Dans le cas test(2,"a","b"), p1$="a", p2$="b", p3$="b" et p4$="b". Ceci me permet d'appeler une procédure avec un nombre de paramètres variables ce qui est bien pratique pour l'appel des fonctions DLL. Par contre, on ne peut pas simplement omettre un paramètre: cela provoque une erreur de syntaxe. Donc, un appel comme MaProcedure("a",,"c") n'est pas possible. Si tu veux faire un contrôle plus strict du nombre de paramètres, pourrais-tu envisager une possibilité quelconque d'avoir un nombre de paramètres variables ? Activer/désactiver cela par exemple par une directive ? C'est juste une question... | |
|
| |
Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Jeu 4 Oct 2012 - 18:32 | |
| @ papydall, çà c'est génial ! - Code:
-
dim x% x%=0 ma_procedure(x%) end
Sub Ma_procedure(f%) if f%=3 message "Super!" else Ma_procedure(3) end_if end_Sub | |
|
| |
Jicehel
Nombre de messages : 5947 Age : 52 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Re: Version instantanée du 3 octobre 2012: PANORAMIC V 0.9.24i3 Jeu 4 Oct 2012 - 18:35 | |
| @Ygeronimi, en effet c'était pour Papydall, mais bon ce n'était pas très grave @Klaus, Jack, Papydall et Nardo principalement il est plus beau comme ça le code de la factorielle. | |
|
| |
Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Jeu 4 Oct 2012 - 19:17 | |
| @ Jicehel, Je m'en doutais mais pour une fois que je ne disais rien.... | |
|
| |
Jack Admin
Nombre de messages : 2394 Date d'inscription : 28/05/2007
| Sujet: Re: Version instantanée du 3 octobre 2012: PANORAMIC V 0.9.24i3 Jeu 4 Oct 2012 - 20:10 | |
| @cosmos70: il y a effectivement un bug quand dans un SUB on utilise un tableau déclaré par DIM. Je le corrige pour la prochaine version. | |
|
| |
Invité Invité
| Sujet: Re: Version instantanée du 3 octobre 2012: PANORAMIC V 0.9.24i3 Jeu 4 Oct 2012 - 20:13 | |
| Merci Jack. Très agréable à lire. merci |
|
| |
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 3 octobre 2012: PANORAMIC V 0.9.24i3 Jeu 4 Oct 2012 - 20:17 | |
| @Jack Et la récursivité, tu confirmes ? - Code:
-
dim n% : n% = 1000 ma_procedure(n%) end Sub Ma_Procedure(appel%) if variable("compteur%") = 0 then dim_local compteur% if appel% = 0 message str$(compteur%) + " appels récursifs à Ma_procedure" else compteur% = compteur% + 1 : Ma_Procedure(appel%-1) end_if end_Sub
| |
|
| |
bignono
Nombre de messages : 1127 Age : 67 Localisation : Val de Marne Date d'inscription : 13/11/2011
| Sujet: Re: Version instantanée du 3 octobre 2012: PANORAMIC V 0.9.24i3 Jeu 4 Oct 2012 - 21:28 | |
| Bonsoir Jack, Je viens de rentrer de voyage, et je vois la nouvelle version. Je te remercie pour cette nouvelle version. Bon, maintenant, j'ai unes semaine de lecture forum à rattraper. A+ | |
|
| |
topmozika
Nombre de messages : 79 Age : 63 Localisation : Antananarivo - Madagascar Date d'inscription : 09/06/2012
| Sujet: Re: Version instantanée du 3 octobre 2012: PANORAMIC V 0.9.24i3 Sam 6 Oct 2012 - 12:59 | |
| Bonjour tout le monde! Merci beaucoup pour les corrections pour l’amélioration de la précédente version Jack. BRAVO ET MERCI. Le SUB est vraiment tres utile pour la simplification du programme alors çà devient encore plus intéressant. A+ BON FIN DE LA SEMAINE | |
|
| |
Nardo26
Nombre de messages : 2294 Age : 56 Localisation : Valence Date d'inscription : 02/07/2010
| Sujet: Re: Version instantanée du 3 octobre 2012: PANORAMIC V 0.9.24i3 Sam 6 Oct 2012 - 13:33 | |
| Merci Jack pour cette nouvelle version !! La libération des variables locales était vraiment nécessaire... - Jicehel a écrit:
- Abus de langage ygeromini, dans ce cas, on ne parle pas de bug, mais d'effet de bord par exemple mais c'est une très bonne nouvelle en effet. Bien vu. Nardo tu vas pouvoir simplifier la librairie sur les arbres ...
C'est clair qu'elle va être simplifiée ! | |
|
| |
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 3 octobre 2012: PANORAMIC V 0.9.24i3 Sam 6 Oct 2012 - 13:51 | |
| Salut tout le monde Je crois que l’appel récursif à une SUB n’est pas vraiment .... récursif ! Je vais approfondir un peu mes tests et je vous mettrais au courant ! | |
|
| |
Contenu sponsorisé
| Sujet: Re: Version instantanée du 3 octobre 2012: PANORAMIC V 0.9.24i3 | |
| |
|
| |
| Version instantanée du 3 octobre 2012: PANORAMIC V 0.9.24i3 | |
|