Problème exécution programme PASCAL
zorg
-
jisisv Messages postés 3645 Date d'inscription Statut Modérateur Dernière intervention -
jisisv Messages postés 3645 Date d'inscription Statut Modérateur Dernière intervention -
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
- Dev pascal - Télécharger - Édition & Programmation
- Programme demarrage windows - Guide
- Message programmé iphone - 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