[pascal] découper un string en caractere

Fermé
troy06 Messages postés 57 Date d'inscription mardi 19 février 2002 Statut Membre Dernière intervention 16 mars 2007 - 2 févr. 2003 à 15:41
ZOUARI Messages postés 60 Date d'inscription lundi 26 avril 2004 Statut Contributeur Dernière intervention 14 mai 2011 - 5 oct. 2007 à 12:27
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

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 lundi 26 avril 2004 Statut Contributeur Dernière intervention 14 mai 2011 29
5 oct. 2007 à 12:27
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 mardi 19 février 2002 Statut Membre Dernière intervention 16 mars 2007
2 févr. 2003 à 23:46
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
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 vendredi 18 janvier 2002 Statut Membre Dernière intervention 2 janvier 2008 117
3 févr. 2003 à 01:09
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