Problème exécution programme PASCAL
zorg
-
jisisv Messages postés 3678 Statut Modérateur -
jisisv Messages postés 3678 Statut Modérateur -
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 :
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, c'est comme si il passe de l'instruction readln (chaine) à l'instruction writeln (chaine) en fin de programme.
Donc j'aimerais comprendre ce qui va pas : (
Merci
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 :
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, c'est comme si il passe de l'instruction readln (chaine) à l'instruction writeln (chaine) en fin de programme.
Donc j'aimerais comprendre ce qui va pas : (
Merci
A voir également:
- Problème exécution programme PASCAL
- Turbo pascal - Télécharger - Édition & Programmation
- My pascal - Télécharger - Édition & Programmation
- Programme demarrage windows - Guide
- Dev pascal - Télécharger - Édition & Programmation
- Programme word gratuit - Guide
2 réponses
Bon en fait je me réponds à moi même ^^
Voici le bon programme en plus simple :
program conversion_minuscules_en_majuscules ;
Merci !!
Voici le bon programme en plus simple :
program conversion_minuscules_en_majuscules ;
var
chaine : string[50] ;
i, x : integer ;
c : char ;
BEGIN
writeln ('Entrez votre phrase !') ;
readln (chaine) ;
for i := 1 to length(chaine) do
begin
if (chaine[i]>='a') and (chaine[i]<='z') 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.
Merci !!
Ceci fonctionne
Johan
johand@horus:~/src/pascal$ cat toupper.p
program conversion_minuscules_en_majuscules ;
var
chaine : string[50] ;
i : integer ;
c : char ;
x : integer ;
function isUpper(c : char) : boolean;
begin
isUpper := (chaine[i] >='a') and (chaine[i]<='z');
end;
BEGIN
writeln ('Entrez votre phrase !') ;
readln (chaine) ;
for i := 1 to length(chaine) do
begin
if isUpper(chaine[i]) then
begin
c := chaine[i] ;
x := (ord(c))-32 ;
c := chr(x) ;
chaine[i] := c ;
end ;
end ;
writeln ('Voici votre nouvelle phrase !') ;
writeln (chaine) ;
end.
johand@horus:~/src/pascal$ fpc toupper.p
Free Pascal Compiler version 2.0.0 [2005/09/09] for i386
Copyright (c) 1993-2005 by Florian Klaempfl
Target OS: Linux for i386
Compiling toupper.p
Linking toupper
33 Lines compiled, 0.1 sec
johand@horus:~/src/pascal$ ./toupper
Entrez votre phrase !
Hello World !
Voici votre nouvelle phrase !
HELLO WORLD !
Johan