Bonjour a tous,
premier message donc desolé si je m'y prends un peu mal
cela fait une semaine que je m'enerve sur un programme pascal a faire en plus assez simple : je m'explique : l'utilisateur doit entrer 20 nombres.Le but de l'exo est d'afficher toutes les combinaisons à 6 chiffres possibles parmis les 20 nombres entrés par l'utilisateur.De plus il ne faut pas que le meme chiffre apparaissent la meme fois.Enfin l'ordre n'a pas d'importance.
Exemple : utilisateur : 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
resultat: 4 5 6 7 8 10, 9 20 12 2 3 4 etc...
voila mon programme :
Code Delphi : 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
53
54
55
56
57
58
59 PROGRAM exo; VAR a,b,c,d,e,f:integer; cpt1,cpt2,cpt3,cpt4,cpt5,cpt6:integer; i,n:integer; TYPE t=array[1..20] of integer; BEGIN {programme principal} write('merci d''entrer les vingts chiffres'); for i:=1 to 20 do begin read(n); t[i]:=n; end; a:=t[1];b:=[2];c:=t[3];d:=t[4];e:=t[5];f:=t[6]; while (cpt1<>20) do if (a<>b) and (a<>c) and (a<>d) and (a<>e) and (a<>f) then while (cpt2<>20) do if (b<>a) and (b<>c) and (b<>d) and (b<>e) and (b<>f) then while (cpt3<>20) do if (c<>a) and (c<>b) and (c<>d) and (c<>e) and (c<>f) then while (cpt4<>20) do if (d<>a) and (d<>b) and (d<>c) and (d<>e) and (d<>f) then while (cpt5<>20) do if (e<>a) and (e<>b) and (e<>c) and (e<>d) and (e<>f) then while (cpt6<>20) do if (f<>a) and (f<>b) and (f<>c) and (f<>d) and (f<>e) then begin writeln(a,' -',b,'- ',c,'- ',d,'- ',e,'- ',f) cpt6:=cpt6+1; f:=t[cpt6]; end else begin cpt6:=cpt6+1; f:=t[cpt6]; end else begin cpt5:=cpt5+1; e:=t[cpt5]; end else begin cpt4:=cpt4+1; d:=t[cpt4]; end else begin cpt3:=cpt3+1; c:=t[cpt3]; end else begin cpt2:=cpt2+1; b:=t[cpt2]; end else begin cpt1:=cpt1+1; a:=t[cpt1]; end ; readln; readln; END.
Merci de votre aide la plus rapide possible !
bebop
Partager