Bonjour !!

J'aimerais votre aide pour un problème étrange en Pascal. Je débute en pascal et j'ai voulu écrire un programme qui convertit les caractères d'une chaîne en majuscules.

Mon programme ressemble à ceci :

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
 
program conversion_minuscules_en_majuscules ;
 
type lettres_min = 'a'..'z' ;
 
var
	chaine		: string[50] ;
	i			: integer ;
	minuscules	: set of lettres_min ;
	c	 		: char ;
	x			: integer ;
 
BEGIN
 
 
writeln ('Entrez votre phrase !') ;
readln (chaine) ;
 
for i := 1 to length(chaine) do
	begin
 
	if chaine[i] in minuscules then
		begin
		c	:= chaine[i] ;
		x 	:= (ord(c))-32 ;
		c   := chr(x) ;
		chaine[i] := c ;
		end ;
 
	end ;
 
writeln ('Voici votre nouvelle phrase !') ;
writeln (chaine) ;
 
 
readln
END.
Mon astuce principale consiste à retrancher 32 sur la valeur numérique ASCII d'un caractère minuscule, on obtient le caractere majuscule correspondant.

Seulement ... le programme ne détecte aucune erreur et pourtant il ne fonctionne pas DU TOUT, enfin c'est comme si il passe de l'instruction readln (chaine) au début à l'instruction writeln (chaine) en fin de programme, en ignorant complétement la boucle for.

Donc j'aimerais comprendre ce qui va pas : (

Merci