Bonjour à tous,
tout d'abord merci pour le temps que vous voulez bien me consacrer afin de lire mon message et je l'espère d'y répondre. Je vais essayer d'être rapide :
lorsque je compile mon programme, l'erreur 216 apparait, je vous poste mon code ci-dessous:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52 unit tirage; interface const max=9; type img=record numero:integer; // numero de l'image compteur:integer; // nombre de fois que l'image a été attribué end; PImg=^img; listeImg=array[1..max*3] of PImg; Tableau=array[1..6,1..max] of pinteger; var PListe:listeImg; PteurT:Tableau; procedure tiralea(ligne,colonne:integer); implementation procedure tiralea(ligne,colonne:integer); var i,j,z,nombre:integer; begin nombre:=trunc((ligne*colonne)/2); // valeur : nombre de paires ; astuce(trunc): dans tous les cas on obtiendra la même valeur ! for i:=1 to nombre do begin new(PListe[i]); PListe[i]^.numero:=i; // image(i)=numero(i) ... jusque la rien de très compliqu PListe[i]^.compteur:=0; // initialisation: l'image i a été attribué 0 fois end; for i:=1 to ligne do for j:=1 to colonne do repeat z:=random(nombre)+1; // on tire un numéro de carte au hasard if PListe[z]^.compteur<2 then // si l'image n'a pas été utilisé plus de 2 fois(ou 2) alors... begin new(PteurT[i,j]); PteurT[i,j]^:=Pliste[z]^.numero; Pliste[z]^.compteur:=Pliste[z]^.compteur+1; end else PteurT[i,j]^:=0; // Astuce until PteurT[i,j]^<>0; end; end.
Question subsidiaire: C'est mieux de faire un tableau de pointeurs pointant vers des entiers ou un pointeur pointant vers un tableau d'entiers? (Vous avez suivi?)
Merci pour le temps que vous aurez bien voulu m'accorder![]()
Partager