*donnee(x,y) = blablabla............

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
Avatar de l’utilisateur
SPH
Messages : 4949
Inscription : mer. 09/nov./2005 9:53

*donnee(x,y) = blablabla............

Message par SPH »

Hiiiii,

Comment utiliser un dim au lieu d'une variable pour faire ca :

dim donnee(2,2)
*donnee(0,0) = blablabla......
*donnee(0,1) = blablabla.........
*donnee(0,2) = blablabla...........
*donnee(1,0) = blablabla.............
*donnee(1,1) = blablabla................
*donnee(1,2) = blablabla...................
*donnee(2,0) = blablabla......................
*donnee(2,1) = blablabla.........................
*donnee(2,2) = blablabla.............................
Anonyme

Message par Anonyme »

tu vires les "*" , et tu remplaces les blabla... par des nombres... 8O
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Message par Backup »

Cpl.Bator a écrit :tu vires les "*" , et tu remplaces les blabla... par des nombres... 8O
ben moi j'ai pas compris la question :? :)
Avatar de l’utilisateur
SPH
Messages : 4949
Inscription : mer. 09/nov./2005 9:53

Message par SPH »

*a = 1

le "*" designe bien un pointeur ?

Moi, je cherche a pointer vers un dim.

donc transformer des pointeurs style :
*a1
*a2
*a3
etc...
en dim a(100)

donc, mon *a se transforme en *a(x) mais pointer vers un dim ne fonctionne aparement pas...
Anonyme

Message par Anonyme »

Code : Tout sélectionner

*A = AllocateMemory(4)
PokeL(*A,45)
Dim T(0)
Debug "ZERO ="
Debug T(0)
T() = *A
Debug "QUARANTE CINQ ="
Debug T(0)
Avatar de l’utilisateur
SPH
Messages : 4949
Inscription : mer. 09/nov./2005 9:53

Message par SPH »

Cpl.Bator a écrit :

Code : Tout sélectionner

*A = AllocateMemory(4)
PokeL(*A,45)
Dim T(0)
Debug "ZERO ="
Debug T(0)
T() = *A
Debug "QUARANTE CINQ ="
Debug T(0)
Merci.

Il y a quelque chose qui me dépasse. Regardez :

Code : Tout sélectionner

a=20
*a=580
Debug a
Debug *a
"*a= 20", c'est pareil que "a=20" ??? :?:
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Message par Backup »

c'est peut etre ça que tu voulais ..

Code : Tout sélectionner

a=20
*a=580
Debug a
Debug @*a 
comtois
Messages : 5186
Inscription : mer. 21/janv./2004 17:48
Contact :

Message par comtois »

Code : Tout sélectionner

a=20
*b.long=@a ; Récupère l'adresse de a
Debug a
Debug *b  ; Affiche l'adresse contenu par b, c'est à dire l'adresse de a
Debug *b\l; Affiche le contenu de l'adresse ci dessus 
Debug "*****"
Dim *Donnees.long(2,2) ; C'est un tableau de pointeurs, c'est à dire qui contient des adresses !

*Donnees(1,1)=@a
Debug *Donnees(1,1) ; Affiche l'adresse de a
Debug *Donnees(1,1)\l ; Affiche le contenu de l'adresse ci dessus
http://purebasic.developpez.com/
Je ne réponds à aucune question technique en PV, utilisez le forum, il est fait pour ça, et la réponse peut profiter à tous.
Anonyme

Message par Anonyme »

Vala du vrac pour t'aider à comprendre.

Code : Tout sélectionner

Dim T(10)
Debug "Adresse du tableau = " +Str(@T())
*Adresse = @T()
Debug ""

For i = 1 To 10
  Debug "Ecriture à l'adresse = "+Str(*Adresse+(i*4))
	*Pointeur = AllocateMemory(4)
		PokeL(*Adresse+(i*4),i)
Next 
Debug ""

Debug "LECTURE DU TABLEAU T()"
For i = 1 To 10
Debug T(i)
Next 



Debug ""
Debug ""
Debug "Passons au strings....."
Debug "Comme les chaines de caractères sont de tailles inconnue , les tableaux de strings contient que des pointeurs vers les chaines...."
Debug "Dim Txt$(10) <- Prepare un tableau de 10 'strings' vierge , en réalité , ce tableau est un tableau d'integer , il contient que des pointeurs !"

Dim Txt$(10)
*Adresse = @Txt$()
TEXT$ = "PUREBASIC ! "

Debug ""
Debug "REMPLISSAGE DU TABLEAU Txt$() AVEC DES POINTEURS" 

For i = 1 To 10
PokeL(*Adresse+(i*4),@TEXT$ )
Next 

Debug ""
Debug "LECTURE DU TABLEAU Txt$() " 

For i = 1 To 10
Debug Txt$(i)
Next 

Debug  ""
Debug "ATTENTION , SI TU SUPPRIMES LE CONTENU DE LA VARIABLE TEXT$ , TOUT LES ELEMENTS DU TABLEAU TXT$() SERONT SUPPRIMER"
Debug  "IDEM POUR LES TABLEAU NUMERIQUES"

Debug "MODIFICATION DE TEXT$"
Text$ = "CPL.BATOR !"

For i = 1 To 10
Debug Txt$(i)
Next 
:wink:
Avatar de l’utilisateur
SPH
Messages : 4949
Inscription : mer. 09/nov./2005 9:53

Message par SPH »

y a t'il une utilité d'utiliser certaines de ces variantes ? Rapidité par exemple ??
Anonyme

Message par Anonyme »

oui la rapidité , pour un petit projet , comme une démo ( vu ton taf ) c'est pas utile du moment que le frame rate est là , mais cela peut s'avérer très utile pour le traitement d'image par exemple , car cela consomme énormément de mémoire.
Avatar de l’utilisateur
SPH
Messages : 4949
Inscription : mer. 09/nov./2005 9:53

Message par SPH »

Cpl.Bator a écrit :oui la rapidité , pour un petit projet , comme une démo ( vu ton taf ) c'est pas utile du moment que le frame rate est là , mais cela peut s'avérer très utile pour le traitement d'image par exemple , car cela consomme énormément de mémoire.
Pourquoi fred ne cache pas derriere des instructions banales tous ces trucs + rapides ? (que ce soit transparent pour nous koi)
Anonyme

Message par Anonyme »

le fait de "caché" sous forme de fct° ne servirais à rien , l'appel de fonction est "trop lourd" , regarde , j'ai expliqué ici comment modifié rapidement l'éran via des pointeurs , d'autre on tiré les lignes de codes , puis ils en ont fait des fonction toute prêtes , puis après ils on tirer des conclusions comme quoi plot() et aussi rapide que de "poké" l'écran... , on peut faire un poil plus rapide encore via l'asm je pense , mais bon , c'est pas mon domaine.
Avatar de l’utilisateur
djes
Messages : 4252
Inscription : ven. 11/févr./2005 17:34
Localisation : Arras, France

Message par djes »

Tu connais les listes chainées? Avant qu'elles n'existent, on utilisait les pointeurs pour faire la même chose : pointer sur des zone mémoires réservées de façon dynamique. Maintenant on se sert surtout des pointeurs quand on utilise les fonctions du système d'exploitation. Celles-ci renvoient ou demandent des structures, désignées par des pointeurs, car il serait difficilement envisageable de copier toutes les données à chaque fois (imagine une procédure avec 100 paramètres, ce serait dingue!).
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Message par Backup »

SPH a écrit : Pourquoi fred ne cache pas derriere des instructions banales tous ces trucs + rapides ? (que ce soit transparent pour nous koi)
la question que je me pose, c'est

pourquoi Fred n'inclue pas sous forme de fonction, les procedures tres utile que certain on trouvé , je pense au procedure de capture d'ecran, ou bien
décoration de fenêtre, ou bien animation de fenetre, etc ...

au lieu d'avoir une collection de procédures, elle seraient inclues dans le langage, et cela ajouterai des commande a Purebasic ..

surtout que des procédures "librairie" open-source , c'est pas ça qui manque sur nos Forum .. :)

on aurai d'un coup plein de nouvelles fonctions , pour manipuler des Webcams, des images, du son, le MIDI, bref vous imaginez bien :)
Répondre