[pascal] découper un string en caractere

troy06 Messages postés 57 Date d'inscription   Statut Membre Dernière intervention   -  
ZOUARI Messages postés 60 Date d'inscription   Statut Contributeur Dernière intervention   -
Je suis en premiere candi et je dois fair eun touché-coulé. J'ai des coordonées dans uun strinf (ex : B4) et je dois mettre la lettre (de a à j) dans une variable de type char et le chiffre dans une variable de type integer (de 1 à 10) pour pouvoir ensuite les utiliser comme coordonée dans un tablau. je me charge de transformer la lettre en chiffre

D'avance merci

*Ca sent mauvais dit le chat en parlant de la viande qu'il 
ne peut atteindre (proverbe persan)*
A voir également:

5 réponses

zagor
 
salut!
tu crées un tableau de type string de longueur 3, la première postion est la lettre et les suivantes les chiffres, ce qui donnerai à peu près :


program convertion();
type alpha = string[3];

var coordonnee : alpha;
lettre : char;
chiffre : int;

begin write('coordonnées ');
read(coordonnee);
lettre := coordonnee[1];
chiffre := coordonnee[2] + coordonnee [3];
end.

c'est pas sur qu'il n'y ait pas d'erreur, mais l'idée est de se dire que la chaine de caractère est en fait un tableau de string.
1
ZOUARI Messages postés 60 Date d'inscription   Statut Contributeur Dernière intervention   29
 
Bonjour,
la solution est
program Zouari;
uses wincrt;
var
l:char;
x:integer;
ch:string[3];
Procedure convertir (ch:string;var lettre :char;var x :integer);
var d,e,u:integer;
Begin
lettre := ch[1];
val(ch[2],d,e);
val (ch[3],u,e);
if length (ch) = 3 then
x := (d * 10)+ u
else x := d;
end;
Begin
Write ('Donnez votre chaîne : '); Readln (ch);
convertir (ch,l,x);
Writeln (l);
Writeln (x);
End.
1
troy06 Messages postés 57 Date d'inscription   Statut Membre Dernière intervention  
 
merci pour ton idée.
Ca fontcionne en gros mais t'avai juste oublié d'utiliser la fonction ord car dans le strring il prend le chiffre comme un caractere et non un 'integer'. Il me reste juste un prob pour le 10 parce que c'est a deux chiffres.

*Ca sent mauvais dit le chat en parlant de la viande qu'il 
ne peut atteindre (proverbe persan)*
0
zagor
 
si je trouve une solution pour le dix je te dis, mais pour l'insant j'ai un peu abondonné pascal.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Taboujr Messages postés 507 Date d'inscription   Statut Membre Dernière intervention   117
 
Le plus simple, c'est peut-être d'utiliser le premier et le dernier caractère du string qui contient le code de la case. Comme ça, pour 10 tu as 0 (inutilisé par ailleurs). Voilà, c'est juste une petite idée...

TaBou JuNioR
0