FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC

Développement d'applications avec le langage Panoramic
 
AccueilAccueil  FAQFAQ  RechercherRechercher  S'enregistrerS'enregistrer  MembresMembres  GroupesGroupes  Connexion  
Derniers sujets
» I Love You
par JL35 Aujourd'hui à 16:25

» MARK_ON déclenche un événement ON_CLICK à la place de ...
par Jean Claude Hier à 18:08

» mise a jour calculatrice
par joeeee2017 Hier à 15:57

» [solved] 3D_LINE How to ?
par Jicehel Hier à 11:01

» Convertisseur de base 10 de 2 à 36
par gigi75 Mar 17 Oct 2017 - 18:49

» calculatrice avec touches movibles
par joeeee2017 Dim 15 Oct 2017 - 1:11

» CORTANA
par gigi75 Sam 14 Oct 2017 - 16:32

» Calculatrice
par Jean Claude Sam 14 Oct 2017 - 12:30

» Compilateur FBPano
par jean_debord Jeu 12 Oct 2017 - 9:53

» KGF_dll - nouvelles versions
par Klaus Mar 10 Oct 2017 - 18:49

» à propos de Panoramic_Editor [Résolu]
par Klaus Mar 10 Oct 2017 - 3:19

» Un petit "coucou" à tous les Panoramiciens !
par Jack Ven 6 Oct 2017 - 10:24

» Pourquoi le compilateur stagne
par mindstorm Mer 4 Oct 2017 - 20:38

» Panoramic ?
par Marc37 Mer 4 Oct 2017 - 0:39

» Premiers pas avec Arduino
par Marc37 Mer 4 Oct 2017 - 0:29

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Octobre 2017
LunMarMerJeuVenSamDim
      1
2345678
9101112131415
16171819202122
23242526272829
3031     
CalendrierCalendrier

Partagez | 
 

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

Voir le sujet précédent Voir le sujet suivant Aller en bas 
Aller à la page : Précédent  1, 2, 3, 4  Suivant
AuteurMessage
papydall

avatar

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

MessageSujet: Re: Version instantanée du 12 septembre 2012 PANORAMIC V0.9.24i2   Jeu 13 Sep 2012 - 2:01

Danke Klaus. Laughing Laughing
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://papydall-panoramic.forumarabia.com/
Yannick

avatar

Nombre de messages : 7994
Age : 46
Localisation : Bretagne
Date d'inscription : 15/02/2010

MessageSujet: re   Jeu 13 Sep 2012 - 3:02

@ papydall,

Je viens de placer cette page dans "mes favoris \ programmation"

Encore une page qui trouverait sa place dans une rubrique de Cours sur la prog.

Merci

Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Yannick

avatar

Nombre de messages : 7994
Age : 46
Localisation : Bretagne
Date d'inscription : 15/02/2010

MessageSujet: proposition   Jeu 13 Sep 2012 - 3:11

Je me permet une suggestion pour l'éditeur panoramic:

les mots clé (chez moi) c'est en bleu
les commentaires c'est en rose
( je vois la vie en rose même quand je suis dans le brouillard Laughing)
le reste est en noir

un paramètre de sub ne pourrait il pas avoir
une couleur particulière pour bien le distinguer dans l'éditeur
( les nouveau panoramiciens apprécieraient peut être ).
ce serait un moyen pour l'éditeur de dire :
"Attention ! c'est un param, pas une variable !"
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Jack
Admin
avatar

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

MessageSujet: Re: Version instantanée du 12 septembre 2012 PANORAMIC V0.9.24i2   Jeu 13 Sep 2012 - 11:31

@papydall:
Ton explication est parfaite.
Je vais la mettre dans la rubrique "Tutoriels et éclaircissements".


Une petite confidence, ne le répète pas aux autres: je suis en train de coder les fonctions.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://panoramic.free-boards.net
Yannick

avatar

Nombre de messages : 7994
Age : 46
Localisation : Bretagne
Date d'inscription : 15/02/2010

MessageSujet: re   Jeu 13 Sep 2012 - 11:43

Pourquoi tu chuchotes ? on t'a tous entenduuuuu...... Laughing Laughing Laughing
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
papydall

avatar

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

MessageSujet: Re: Version instantanée du 12 septembre 2012 PANORAMIC V0.9.24i2   Jeu 13 Sep 2012 - 13:56

sunny sunny !!! BRAAAAAAVOOOOO JACK !!! sunny sunny


Dernière édition par papydall le Jeu 13 Sep 2012 - 14:18, édité 1 fois
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://papydall-panoramic.forumarabia.com/
papydall

avatar

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

MessageSujet: Re: Version instantanée du 12 septembre 2012 PANORAMIC V0.9.24i2   Jeu 13 Sep 2012 - 14:17

Salut tout le monde.

Voici un petit code illustrant l’appel des procédures.
Bien sûr, on pourrait écrire un programme plus concis et même plus élégant pour obtenir le même résultat.
Mais ce n’est pas le résultat du programme en soit que j’ai voulu montrer, mais une des manières de faire des appels aux différentes procédures.

Code:

' Exemple d'appel des procédures
' ==============================================================================
' Ici débute le module principal du programme
dim m% : ' Seule cette variable est globale, toutes les autres sont locales

init()
Affiche("T A B L E  D E  M U L T I P L I C A T I O N",240,10)
Affiche(string$(50,"*"),240,40)
for m% = 2 to 9 : table(m%)  : next m%
end
' Fin du module principal

' ==============================================================================
' ******** INITIALISATION
' Procédure INIT() sans paramètres d'appel mais les parenthèses sont obligatoires
SUB init()
    width 0,800 : height 0,700
    color 0,0,0,0 : font_color 0,0,255,0 : font_size 0,12 : font_bold 0
END_SUB
' ==============================================================================

' ******** Afficher un texte à l'écran
' Le texte ainsi que la position de l'affichage sont passés comme paramètres
' formels par le module appelant
' Procédure Affiche : les 3 paramètres d'appel sont locaux
SUB Affiche(texte$,colonne%,ligne%)
    print_locate colonne%,ligne% : print texte$
END_SUB
' ==============================================================================
' ******** Afficher la table
' Affiche une table de multiplication : le multiplicande(m%) est passé comme
' paramètre formel par le module appelant.
' Le multiplicateur i% est déclaré dans la procédure comme variable locale
SUB table(m%)
    DIM_LOCAL i%,s$,lig%,col% : ' variables locales : à la sortie de la procédures
                                ' elles seront automatiquement éliminées.
    affiche(string$(54,"_"),150,50): ' Une procédure peut appeler une autre
    col% = 150*(m%-1): lig% = 70
    if col% > 600
      col% = col%-600 : lig% = 320
    end_if
    for i% = 1 to 9
        s$ = str$(i%*m%)
        if i%*m% < 10 then s$ = "  "+s$
        print_locate col%,lig% : print str$(i%)+" X "+str$(m%)+" = "+s$
        lig% = lig%+20
    next i%
    affiche(string$(54,"_"),150,270)
    affiche(string$(54,"_"),150,500)
END_SUB
' ==============================================================================

A+


Dernière édition par papydall le Jeu 13 Sep 2012 - 15:47, édité 1 fois
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://papydall-panoramic.forumarabia.com/
Jicehel

avatar

Nombre de messages : 5858
Age : 45
Localisation : 77500
Date d'inscription : 19/04/2011

MessageSujet: Re: Version instantanée du 12 septembre 2012 PANORAMIC V0.9.24i2   Jeu 13 Sep 2012 - 14:35

Belle illustration Wink
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Jean Claude

avatar

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

MessageSujet: Re: Version instantanée du 12 septembre 2012 PANORAMIC V0.9.24i2   Jeu 13 Sep 2012 - 15:26

@Papydall,
Ton exemple est très bien fait et a un réel intérêt pour ceux qui se demandent comment utiliser une procédure avec SUB().

Premier constat: il n'y a aucun LABEL dans ton code.
Deuxième constat: les dimensions, couleur de fond, taille et couleur de la police de FORM 0 sont gérées dans une procédure.
Troisième constat: La procédure AFFICHAGE est utilisée plusieurs fois pour des objectifs différents
et enfin la procédure de calcul TABLE(m%) est appelée par une boucle (FOR/NEXT)

Résultat: le code (principal) est limité à 5 lignes en comptant END et une seule variable globale est déclarée.

JE DIS BRAVO POUR L'EXEMPLE CAR TRÈS EXPLICITE (Tu devrais te lancer dans la fabrication de Tutos).

Une remarque: pour optimiser l'affichage des résultats dont LEN()>1 j'ai ajouté un espace à la ligne 44 (if i%*m% < 10 then s$ = " "+s$).

PS: j'ai une info, il paraît que Jack serait entrain de coder les functions, mais garde çà pour toi...

A+


Dernière édition par Jean Claude le Jeu 13 Sep 2012 - 17:13, édité 1 fois
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
papydall

avatar

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

MessageSujet: Re: Version instantanée du 12 septembre 2012 PANORAMIC V0.9.24i2   Jeu 13 Sep 2012 - 15:41

@Jicehel et @Jean Claude

Merci pour vos réactions !

@Jean Claude
Bien que le texte de ton PS soit à peine visible, j’ai réussi à le lire, non pas parce mon acuité visuelle est bonne (très loin de là) mais parce que, parfois (et pas toujours) je me sens plus intelligent que Gauss, Newton et Einstein réunis ! HA HA HA ,HI HI HI, HO HO Ho Laughing Laughing Laughing Laughing Laughing Laughing Laughing Laughing Laughing
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://papydall-panoramic.forumarabia.com/
Yannick

avatar

Nombre de messages : 7994
Age : 46
Localisation : Bretagne
Date d'inscription : 15/02/2010

MessageSujet: re   Jeu 13 Sep 2012 - 15:45

après pan59 qui hurlait voilà que tout le monde chuchote ... Laughing Laughing Laughing
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
papydall

avatar

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

MessageSujet: Re: Version instantanée du 12 septembre 2012 PANORAMIC V0.9.24i2   Jeu 13 Sep 2012 - 15:52

Parce qu’il y a des choses sécrètes que tout le monde (ne) doit (pas) savoir !
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://papydall-panoramic.forumarabia.com/
papydall

avatar

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

MessageSujet: Re: Version instantanée du 12 septembre 2012 PANORAMIC V0.9.24i2   Jeu 13 Sep 2012 - 16:23

@Ygeronimi

C'est plus clair maintenant les SUB...END_SUB, n'est-ce pas?

lol! lol!
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://papydall-panoramic.forumarabia.com/
Yannick

avatar

Nombre de messages : 7994
Age : 46
Localisation : Bretagne
Date d'inscription : 15/02/2010

MessageSujet: re   Jeu 13 Sep 2012 - 16:28

heu....t'es sûr que tu veux une réponse.... Laughing



edit : je reviens dans une heure
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Nardo26

avatar

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

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

Si il y en a qui se posent des questions sur l'utilité des SUB, moi je ne m'en pose pas du tout... Wink

il n'y a qu'a voir le dernier source de mon générateur de fichier html... Wink

J'utilise allègrement....
il manque plus que les cerises sur le gâteau : les fonctions Very Happy

un petit exemple :
Code:
' ------------------------------------------------------------------------------
'  Supprime tous les fichiers du répertoire A$ portant l'extension B$
'  Appel : DelAllFile("C:\TEMP","tmp")
' ------------------------------------------------------------------------------
SUB DelAllFile(A$,B$)
  DIM_LOCAL t$,origin$
  origin$ = DIR_CURRENT$ : B$ = UPPER$(B$)
  DIR_CHANGE A$
  t$ = FILE_FIND_FIRST$
  WHILE t$ <> "_"
    IF UPPER$(RIGHT$(t$,3)) = B$ THEN FILE_DELETE t$
    t$ = FILE_FIND_NEXT$
  END_WHILE
  FILE_FIND_CLOSE
  DIR_CHANGE origin$
END_SUB
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://nardo26.lescigales.org
JL35



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

MessageSujet: Re: Version instantanée du 12 septembre 2012 PANORAMIC V0.9.24i2   Jeu 13 Sep 2012 - 18:54

C'est vrai que c'est plus net que le GOSUB, mais pas révolutionnaire quand même (depuis qu'on a le DIM/FREE local), si je reprends ton exemple avec gosub:
Code:
A$="C:\TEMP": B$="tmp": GOSUB DelAllFile
...
DelAllFile:
  DIM t$,origin$
  origin$ = DIR_CURRENT$ : B$ = UPPER$(B$)
  DIR_CHANGE A$
  t$ = FILE_FIND_FIRST$
  WHILE t$ <> "_"
    IF UPPER$(RIGHT$(t$,3)) = B$ THEN FILE_DELETE t$
    t$ = FILE_FIND_NEXT$
  END_WHILE
  FILE_FIND_CLOSE
  DIR_CHANGE origin$
  FREE t$: FREE origin$
RETURN
le problème c'est si on attend un résultat en retour, et là c'est plus scabreux, il faut faire attention aux variables. Vivement les fonctions !

il avait dit 1 heure, et ygeronimi n'est toujours pas là... je crains qu'il n'ait commis une erreur fatale (fatal error).


Dernière édition par JL35 le Jeu 13 Sep 2012 - 18:59, édité 1 fois
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Jicehel

avatar

Nombre de messages : 5858
Age : 45
Localisation : 77500
Date d'inscription : 19/04/2011

MessageSujet: Re: Version instantanée du 12 septembre 2012 PANORAMIC V0.9.24i2   Jeu 13 Sep 2012 - 18:57

La fonction retourne une valeur uniquement.
Pour ce que tu souhaite JL35, l'idéal serait de pouvoir passer les variable soit par valeur soit par adresse, mais là ça complique un peu peut être pour certains (hein ygeronimi) et Jack n'en parle pas pour le moment. Je ne sais pas s'il veut aller dans cette voie (de toute façon, il sait que l'on en veut toujours plus.... Wink ).
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
JL35



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

MessageSujet: Re: Version instantanée du 12 septembre 2012 PANORAMIC V0.9.24i2   Jeu 13 Sep 2012 - 19:30

Ce que j'attendais des SUB, c'était un fonctionnement identique à celui de QBasic ou FreeBasic (entre autres), c'est à dire un appel du genre:
Code:
Masub(Fich$, i%, j%, 10)
' ici au retour i% et j% contiennent les valeurs attendues val1 et val2)
...
SUB Masub(f$, p2%, p3%, p4%)
... traitement...
p2% = val1
p2% = val2
END_SUB
c'est à dire que seul le rang et la nature des variables sont pris en compte par la SUB, et le résultat est bien rangé dans les variables d'appel.
Et là on pouvait faire des bibliothèques de s/p avec renvoi de résultats complètement indépendantes des programmes principaux.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Invité
Invité



MessageSujet: Re: Version instantanée du 12 septembre 2012 PANORAMIC V0.9.24i2   Jeu 13 Sep 2012 - 19:34

C'est un programme pour me faire une réflexion et peut-être avoir une autre idée ensuite.
Pour récupérer les paramètres, sans se servir de variables. On en pensera ce qu'on en voudra.
Code:
' teste
dim a$,b$,c$,a%
b$="envoi "
c$="un code"
a%=123456
teste(10,a%,b$,c$)

for a%=1 to count(10):print item_read$(10,a%):next a% : delete 10
end
sub teste(obj%,a%,b$,c$)

if object_exists(obj%)=0 then dlist obj%
  clear obj%
  item_add obj%,a%*10
  item_add obj%,b$+"reçut"
  item_add obj%,c$+" salutation"
end_sub
Revenir en haut Aller en bas
Nardo26

avatar

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

MessageSujet: Re: Version instantanée du 12 septembre 2012 PANORAMIC V0.9.24i2   Jeu 13 Sep 2012 - 19:38

@JL35: Les SUB n'ont rien a voir avec les gosub...

Là où je trouve un intérêt c'est le passage de paramètre et les DIM locaux !

il n'y a qu'a voir la gymnastique que je faisait avec des DLIST pour simuler tout ça...
sans compter la palanqué de FREE de variables avec des noms à rallonge en fin de chaque procédure...
j'ai bien regretté de ne pas pouvoir écrire FREE a,b,c
(mais apparemment il n'y avait pas grand monde qui utilisait cette commande)

Et quand il va y avoir les fonctions ?....
j'ose même pas imaginer la réduction de taille du code et le gain en lisibilité pour, par exemple, ma librairie AVL... Smile cheers
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://nardo26.lescigales.org
Yannick

avatar

Nombre de messages : 7994
Age : 46
Localisation : Bretagne
Date d'inscription : 15/02/2010

MessageSujet: re   Jeu 13 Sep 2012 - 20:11

@ JL35,

Je me suis fait piégé dans le monde réel... Laughing

(Il a fallu que j'aille dépanné mon père, il a réussi à crever deux pneus en même temps...
...fait pas les choses à moitié le paternel ! Laughing Laughing Laughing )


Dernière édition par ygeronimi le Jeu 13 Sep 2012 - 20:22, édité 1 fois
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
JL35



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

MessageSujet: Re: Version instantanée du 12 septembre 2012 PANORAMIC V0.9.24i2   Jeu 13 Sep 2012 - 20:13

Enfin c'est quand même le même usage (gosub, sub, fonctions): avoir une partie de code réentrante (pour ne pas avoir à la réécrire 36000 fois).
L'exemple que donne cosmos pour le renvoi de paramètres c'est je pense ce que tu faisais toi Nardo en parlant de dlist, c'est une idée intéressante, mais un peu acrobatique quand même.
Les Dim locaux c'est effectivement déjà un gros progrès, et comme tu dis les Free en série c'était un peu lourdingue.

@ygeronimi
ouf! tu me rassures... bien que je préfère écrire un programme que de changer des pneus ! j'espère qu'il avait deux roues de secours (mais c'est rare) ! Very Happy
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Yannick

avatar

Nombre de messages : 7994
Age : 46
Localisation : Bretagne
Date d'inscription : 15/02/2010

MessageSujet: re   Jeu 13 Sep 2012 - 20:21

le "DIM_LOCAL" cà c'est génial, cela m' évitera de faire des noeuds dans mes "x%"
car c'est mon défaut, je le confesse, j'aime bien x%. C'est mon inconnu préféré
depuis le collège ...avec sa copine y% bien sûr ! Laughing


C'est bien le problème, y en avait qu' une ! Laughing
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Nardo26

avatar

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

MessageSujet: Re: Version instantanée du 12 septembre 2012 PANORAMIC V0.9.24i2   Jeu 13 Sep 2012 - 20:39

cosmos70 a écrit:
C'est un programme pour me faire une réflexion et peut-être avoir une autre idée ensuite.
Pour récupérer les paramètres, sans se servir de variables. On en pensera ce qu'on en voudra.
Code:
...
Oui cela ressemble à ce que je faisait jusqu'à présent... Wink

Pour l'instant, en attendant les fonctions je déclare une variable globale commençant pour le nom de la procédure suivi de _return
Par exemple :
Code:
MaFonction(12)
print "resultat ="+STR$(MaFonction_retour)
END
SUB MaFonction(x)
  IF VARIABLE("MaFonction_retour")=0 THEN DIM MaFonction_retour
  ...
  ...
END_SUB

Et si je veux passer à une procédure un nombre de paramètre variable (comme pour un print par exemple), je passe par une DLIST
Code:
DLIST 125
...
ITEM_ADD 125,Param1
ITEM_ADD 125,Param2
...
ITEM_ADD 125,ParamN
MaProcedure(125)
...
END
SUB MaProcedure(N)
  DIM_LOCAL NbParam, i
  ' lecture du nb de paramètre
  NbParam = COUNT(N)
  ' Traitement des paramètres
  FOR i=1 TO NbParam
    ....
  NEXT i
END_SUB
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://nardo26.lescigales.org
Jicehel

avatar

Nombre de messages : 5858
Age : 45
Localisation : 77500
Date d'inscription : 19/04/2011

MessageSujet: Re: Version instantanée du 12 septembre 2012 PANORAMIC V0.9.24i2   Jeu 13 Sep 2012 - 20:56

C'est une bonne solution Nardo et à la fin, on met à jour N en la vidant par exemple et en empilant les valeurs résultat Wink
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Contenu sponsorisé




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

Revenir en haut Aller en bas
 
Version instantanée du 12 septembre 2012 PANORAMIC V0.9.24i2
Voir le sujet précédent Voir le sujet suivant Revenir en haut 
Page 2 sur 4Aller à la page : Précédent  1, 2, 3, 4  Suivant
 Sujets similaires
-
» Galerie du mois de Septembre 2012
» PANORAMIC_IDE: version instantanée du 25 septembre 2010
» PANORAMIC_IDE: version instantanée du 20 septembre 2010
» Version instantanée du 7 janvier 2015 : PANORAMIC V 0.9.26i5
» Version instantanée du 30 mai 2015 : PANORAMIC V 0.9.26i6

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: