[pascal] découper un string en caractere
troy06
Messages postés
57
Date d'inscription
Statut
Membre
-
ZOUARI Messages postés 62 Statut Contributeur -
ZOUARI Messages postés 62 Statut Contributeur -
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)*
D'avance merci
*Ca sent mauvais dit le chat en parlant de la viande qu'il
ne peut atteindre (proverbe persan)*
5 réponses
-
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. -
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. -
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)* -
si je trouve une solution pour le dix je te dis, mais pour l'insant j'ai un peu abondonné pascal.
-
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
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