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 Jean Claude Aujourd'hui à 18:16

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

» mise a jour calculatrice
par joeeee2017 Aujourd'hui à 15:57

» [solved] 3D_LINE How to ?
par Jicehel Aujourd'hui à 11:01

» Convertisseur de base 10 de 2 à 36
par gigi75 Hier à 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 | 
 

 Simuler un tableau à 3 dimensions

Voir le sujet précédent Voir le sujet suivant Aller en bas 
AuteurMessage
papydall

avatar

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

MessageSujet: Simuler un tableau à 3 dimensions   Dim 13 Oct 2013 - 2:42

PANORAMIC ne supporte nativement que les tableaux à deux dimensions.
Voici comment on peut simuler un tableau à trois dimensions.

Spoiler:
 

Mais est-ce bien utile cette astuce ?
Probablement NON !
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://papydall-panoramic.forumarabia.com/
Laurent (Minibug)

avatar

Nombre de messages : 2353
Age : 51
Localisation : Vienne (86)
Date d'inscription : 10/02/2012

MessageSujet: Re: Simuler un tableau à 3 dimensions   Dim 13 Oct 2013 - 8:24

Bonjour papydall,

Bin oui, fallait juste y penser !!!!

Bravo, excellente idée.

bounce bounce bounce 
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: Simuler un tableau à 3 dimensions   Dim 13 Oct 2013 - 10:40

Astucieux effectivement.
L'utilité je ne la voit pas au premier abord mais je garde çà sous le coude, on ne sait jamais.

A+
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   Dim 13 Oct 2013 - 13:55

Bravo Papydall !

Je ne sais pas encore à quoi cela pourra servir
mais je suis sûr que nos esprits tordus vont y trouver une utilité...Laughing 
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: Simuler un tableau à 3 dimensions   Dim 13 Oct 2013 - 14:16

Tu devrais juste ajouter une astuce pour la declaration du tableau pour que les indices soient automatiques
pour le tableau(x,y,z) => déclaration du tableau(x,((y+1)*(z+1))-1)
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Mumu



Nombre de messages : 172
Localisation : 45
Date d'inscription : 20/12/2012

MessageSujet: Re: Simuler un tableau à 3 dimensions   Dim 13 Oct 2013 - 15:03

L'idée est tout bonnement Géniale !!!

Edit: Et pourquoi ne pas envisager des tableaux à n dimensions... ?
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
bignono

avatar

Nombre de messages : 1086
Age : 60
Localisation : Val de Marne
Date d'inscription : 13/11/2011

MessageSujet: Re: Simuler un tableau à 3 dimensions   Dim 13 Oct 2013 - 20:17

Bonsoir Papydall Smile 
C'est génial ton truc! Idea 
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
mindstorm

avatar

Nombre de messages : 534
Age : 48
Localisation : charente
Date d'inscription : 13/02/2013

MessageSujet: Re: Simuler un tableau à 3 dimensions   Dim 13 Oct 2013 - 22:25

papydall est de retour
je vois un usage pour l'imprimante 3D
mais je ne suis pas sur de savoir l'utiliser
cyclops 
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   Dim 13 Oct 2013 - 23:39

Moi aussi je vois bien çà en 3D...

...Imaginons une scene 3D avec chaque pixel dans un tableau 3D...study 
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: Simuler un tableau à 3 dimensions   Lun 14 Oct 2013 - 0:31

Ça permet par exemple d'extrapoler pour des calculs matriciels.
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   Lun 14 Oct 2013 - 4:12

Et la couleur qui a trois variables en RGB...Very Happy

Je dirai même que cela (le tableau 3D) mérite un petit article explicatif a publié sur le mag.
C'est une chose qui n' existe pas en natif et que tu crées avec Panoramic, cela peut être
utile de le mettre sur le mag pour le retrouver plus facilement. 
C' est même digne de la rubrique des tutoriels...
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
papydall

avatar

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

MessageSujet: Re: Simuler un tableau à 3 dimensions   Lun 14 Oct 2013 - 8:23

Bonjour tout le monde et merci pour vos interventions.

Vous avez tous des bonnes idées pour utiliser des tableaux à 3 dimensions.
Comme je suis actuellement en panne (heu, en panne d’idées s’entend !), je vous propose un code pour mieux illustrer comment on peut utiliser ces tableaux tridimensionnels simulés.
Le programme en lui-même n’a que peu  d’intérêt, mais il montre comment déclarer ce type de tableaux, et la manière de l’utiliser.
Vous trouverez certainement des bonnes applications utilisant des tableaux à 3 dimensions ! Alors ne vous en privez pas.

Code:
rem ============================================================================
'  Simulation et utilisation d'un tableau à 3 dimensions
rem ============================================================================

dim n1, n2 ,n3, x, y, z : n1 = 10 : n2 = 20 : n3 = 5
dim tableau(n1,n2*n3) : ' simuler un tableau à 3 dimensions n1,n2,n3
dim get_tableau : ' variable dans laquelle on récupère la valeur du tableau(x,y,z)
dim rand : ' variable qui contiendra un entier aléatoire entre mini et maxi
color 0,0,0,0 : display : caption 0,"<CLICK> pour arrêter"
' Initialiser le tableau tridimensionnel par des entiers aléatoires
for x = 1 to n1
   for y = 1 to n2
       for z = 1 to n3
           rand(10,150) : ' entier aléatoire entre 10 et 150
           set_tableau(x,y,z,rand) : ' affecter la valeur rand au tableau(x,y,z)
       next z
   next y
next x
rem ===========================================================================
' Recupérer le contenu du tableau tridimensionnel pour tracer des cercles dont
' les coordonnées de leur centre ainsi que leur rayon en dépendent.
for x = 1 to n1
    for y = 1 to n2
        for z = 1 to n3
            get_tableau(x,y,z) : 2d_pen_width 1 + get_tableau/100
            2d_pen_color rnd(255),rnd(255),rnd(255)
            2d_circle 300+get_tableau,200+get_tableau,get_tableau/4
            2d_circle 300+get_tableau,200-get_tableau,get_tableau/4
            2d_circle 300-get_tableau,200-get_tableau,get_tableau/4
            2d_circle 300-get_tableau,200+get_tableau,get_tableau/4
            2d_circle 300,200+get_tableau,get_tableau/4
            2d_circle 300,200-get_tableau,get_tableau/4
            2d_circle 300+get_tableau,200,get_tableau/4
            2d_circle 300-get_tableau,200,get_tableau/4
         if scancode <> 0 then terminate
        next z
    next y
next x
caption 0, " terminé"
end
rem ============================================================================
' Affectation du tableau
' Sub permetant de mettre la valeur V dans Tableau(x,y,z)
sub Set_Tableau(x,y,z,v)
   Tableau(x, y + z * (n3-1)) = v
end_sub
rem ============================================================================
' Lecture du tableau
' Sub renvoyant la valeur de Tableau(x,y,z) dans la variable Get_Tableau
SUB Get_Tableau(x,y,z)
   Get_Tableau = Tableau(x, y + z *(n3-1))
end_sub
rem ===========================================================================

' Fournir un entier aléatoire entre mini et maxi bornes comprises
SUB Rand(mini,maxi)
   rand = int(rnd(maxi-mini+1))+mini
END_SUB
rem ============================================================================


Dernière édition par papydall le Lun 14 Oct 2013 - 15:09, édité 1 fois (Raison : Correction de l'erreur signalée par Jicehel)
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: Simuler un tableau à 3 dimensions   Lun 14 Oct 2013 - 9:23

Je pense qu'il y avait un petit problème dans les formules, je n'ai pas trop le temps de vérifier (je dois me préparer pour le boulot) mais j'ai modifié un peu le prog.

Code:
rem ============================================================================
'  Simulation et utilisation d'un tableau à 3 dimensions
rem ============================================================================

dim n1, n2 ,n3, x, y, z : n1 = 10 : n2 = 20 : n3 = 5
dim tableau(n1,n2*n3) : ' simuler un tableau à 3 dimensions n1,n2,n3
dim get_tableau : ' variable dans laquelle on récupère la valeur du tableau(x,y,z)
dim rand : ' variable qui contiendra un entier aléatoire entre mini et maxi
color 0,0,0,0 : display : caption 0,"<CLICK> pour arrêter"
' Initialiser le tableau tridimensionnel par des entiers aléatoires
for x = 1 to n1
  for y = 1 to n2
      for z = 1 to n3
          rand(10,150) : ' entier aléatoire entre 10 et 150
          set_tableau(x,y,z,rand) : ' affecter la valeur rand au tableau(x,y,z)
      next z
  next y
next x
rem ===========================================================================
' Recupérer le contenu du tableau tridimensionnel pour tracer des cercles dont
' les coordonnées de leur centre ainsi que leur rayon en dépendent.
for x = 1 to n1
    for y = 1 to n2
        for z = 1 to n3
            get_tableau(x,y,z) : 2d_pen_width 1 + get_tableau/100
            2d_pen_color rnd(255),rnd(255),rnd(255)
            2d_circle 300+get_tableau,200+get_tableau,get_tableau/4
            2d_circle 300+get_tableau,200-get_tableau,get_tableau/4
            2d_circle 300-get_tableau,200-get_tableau,get_tableau/4
            2d_circle 300-get_tableau,200+get_tableau,get_tableau/4
            2d_circle 300,200+get_tableau,get_tableau/4
            2d_circle 300,200-get_tableau,get_tableau/4
            2d_circle 300+get_tableau,200,get_tableau/4
            2d_circle 300-get_tableau,200,get_tableau/4
            wait 20
        if scancode <> 0 then terminate
        next z
    next y
next x
caption 0, " terminé"
end
rem ============================================================================
' Affectation du tableau
' Sub permetant de mettre la valeur V dans Tableau(x,y,z)
sub Set_Tableau(x,y,z,v)
  Tableau(x, y + (z-1) * n2) = v
end_sub
rem ============================================================================
' Lecture du tableau
' Sub renvoyant la valeur de Tableau(x,y,z) dans la variable Get_Tableau
SUB Get_Tableau(x,y,z)
  Get_Tableau = Tableau(x, y + (z-1) * n2)
end_sub
rem ===========================================================================

' Fournir un entier aléatoire entre mini et maxi bornes comprises
SUB Rand(mini,maxi)
  rand = int(rnd(maxi-mini+1))+mini
END_SUB
rem ============================================================================
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
papydall

avatar

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

MessageSujet: Re: Simuler un tableau à 3 dimensions   Lun 14 Oct 2013 - 12:57

Bonjour Jicehel
A quel endroit, penses-tu voir quelque chose qui cloche dans les formules ?
Personnellement, je n’en voie pas, mais qui sait ?

NB : pour le WAIT 20, je l’avais dans mon code, mais je l’ai supprimé par inattention avant de poster ! Embarassed 
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: Simuler un tableau à 3 dimensions   Lun 14 Oct 2013 - 14:03

Sauf erreur de logique de ma part, car j'ai regardé très vite ce matin avant de partir, tu avais écrit:

' =========================================================
' Affectation du tableau
' Sub permetant de mettre la valeur V dans Tableau(x,y,z)

sub Set_Tableau(x,y,z,v)
Tableau(x, y + z * (n3-1)) = v
end_sub


=> Tu écris la valeur en x, y+z*(n3-1) soit pour x = 1 , y=2, z=3 en (1,2+3*(5-1)) soit en (1,14)

'==========================================================
' Lecture du tableau
' Sub renvoyant la valeur de Tableau(x,y,z) dans la variable Get_Tableau
SUB Get_Tableau(x,y,z)
Get_Tableau = Tableau(x, y + z * 10)
end_sub

=> Pour les mêmes valeurs, tu lis le tableau en (1,2+3*10) soit (1,32)

-----

De plus, je pense que c'est mieux d'utiliser la même formule pour la compréhension et la mise à jour (je trouve très bien l'usage de n3 à la place de la valeur fixe 10 qui dépend en réalité de la taille du tableau, comme dans ton cas où tu as réglé la valeur à 5)

Mais bon, c'est comme ça que je l'ai lu rapidement ce matin, peut-être que j'ai manqué quelque chose...
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
papydall

avatar

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

MessageSujet: Re: Simuler un tableau à 3 dimensions   Lun 14 Oct 2013 - 15:22

Merci Jicehel d’avoir remarqué l’erreur due au copier/coller.
Il fallait écrire, dans les 2 SUBs Set_tableau() et Get_Tableau() , les mêmes paramètres, à savoir (x, y + z *(n3 – 1)).

J’ai corrigé ci-haut.
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: Simuler un tableau à 3 dimensions   Lun 14 Oct 2013 - 15:32

En plus du coup, tes proc. sont plus facilement adaptable, puisque tu utilise 3 variables pour déclarer ton tableau. On pourrait même avoir une procédure d'initialisation qui fixe les variables pour le programme à partir d'un appel.
Le seul problème de cette méthode est que l'on doit adapter n3 à la valeur du tableau utilisé si on a plusieurs tableaux.

Sinon histoire de chipoter car je suis un chipoteur, la formule fonctionne tout à fait, mais personnellement, j'aurais trouvé plus logique (la logique étant quelque chose de propre à chacun ...) d'écrire: (x, y *(n2 – 1) + z )

Toutefois, on est d'accord que cela ne change rien au fonctionnement du programme...
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
papydall

avatar

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

MessageSujet: Re: Simuler un tableau à 3 dimensions   Lun 14 Oct 2013 - 16:09

Eh bien, je suis ravi d’apprendre une autre qualité de toi : chipoteur !

Ta logique est … logique,    
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: Simuler un tableau à 3 dimensions   Lun 14 Oct 2013 - 16:37

Very Happy Je suis content. Merci Papydall Wink
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Contenu sponsorisé




MessageSujet: Re: Simuler un tableau à 3 dimensions   

Revenir en haut Aller en bas
 
Simuler un tableau à 3 dimensions
Voir le sujet précédent Voir le sujet suivant Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» [Annulée] Une sorte de "tableau" dans un Message
» Arret d'un tableau horaire..
» [Phanta] Commande d'un tableau d'accueil pour mettre dans un widget du portail
» [RESOLU] sVariables tableau
» [résolu]Programmer et afficher un Tableau au format swf avec eanim

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC :: PANORAMIC :: Les inutilitaires-
Sauter vers: