Bonjour,

J'ai un petit problème avec les tableaux, ou plutôt les boucles on dirait.
Je m'arrache les cheveux () à comprendre ce qui ne va pas dans ce programme : le début du programme en fait n'affiche pas les writeln('...') que j'ai écrit, et au moment d'entrer des char, je ne peux en entrer qu'un et après le command shell ne répond plus...
Si vous avez des remarques, ça serait sympa.
Merci d'avance.
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
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
program crypto;
uses crt;
const fin=26;
      maxlettre='Z';
type  tabori=array[1..fin] of char;
      tabin=array[1..fin] of char;
      tabres=array[1..fin] of char;
      tabcomb=array[1..fin] of char;
      tabcode=array[1..fin] of string;
var a:tabori;
    b:tabin;
    c:tabres;
    p:tabcomb;
    nomcode:tabcode;
    lettre,reponse:char;
    i,j:integer;
 
 
BEGIN
 
        for lettre:='A' to maxlettre do
        begin
        	i:=1;
                a[i]:=lettre;
                inc(i,1);
        end;
        writeln('Tableau alphabetique initial');
        for i:=1 to fin do
        begin
        	writeln(a[i]);
	end;
 
        for i:=1 to fin do
        begin
        	IF odd(i) THEN b[i]:='I'
                ELSE b[i]:='O';
        end;
        for i:=1 to fin do
        begin
        writeln(b[i]);
        end;
 
        for i:=1 to fin do
        begin
        	IF odd(i) THEN c[i]:=a[i+1]
                ELSE c[i]:=a[i];
        end;
 
        for i:=1 to fin do
        begin
        writeln(c[i]);
        end;
 
        writeln('Codons le mot que vous souhaitez');
        writeln('Entrez lettre par lettre le mot en question:');
        for j:=1 to fin do
        begin
        	writeln('Entrez la',j,'-ieme lettre du mot:');
                readln(reponse);
                p[j]:=reponse;
                begin
                          a[1]:='A'; a[fin]:='Z';
        		while (p[j]<>a[1] )AND (p[j]<>a[fin]) do
                        	IF p[j]>a[j] THEN
                                REPEAT
                                	a[j-1]:=a[j]
                                UNTIL p[j]=a[j]	
				ELSE
                        	REPEAT
                         		a[j+1]:=a[j];
                        	UNTIL p[j]=a[j];
                        IF p[j]=a[1] THEN a[j]:='A'
                                  ELSE a[j]:='Z';
                end;
        end;
 
        for j:=1 to fin do
        writeln(p[j]);
        writeln;
 
        for j:=1 to fin do
        writeln('Ainsi, au rang',j,'les tableaux p et a correspondent');
        writeln;
        for j:=1 to fin do
                begin
                	IF odd(j) THEN nomcode[j]:=c[j]
                        ELSE nomcode[j]:='sym';
                end;
                writeln;
                for j:=1 to fin do
                writeln('Voici le mot apres chiffrage:');
                writeln('<');
                write(nomcode[j]);
                writeln('>');
                readln;
 
 
END.