mettre un chaine en majuscule

mettre un chaine en majuscule - Delphi/Pascal - Programmation

Marsh Posté le 28-05-2004 à 16:58:33    

salut a tous,
j'ai un petit exo a faire en pascal.
il faut que je mette un chaine en maj en utilisant un case of, j'ai réussi mais je trouve ca top lourdo lol.
voila le code (juska E lol):

Code :
  1. var chaine:string;
  2.     i:integer;
  3. begin
  4.   writeln('Quel est la chaine?');
  5.   readln(chaine);
  6.   for i:=0 to length(chaine) do
  7.   case chaine[i] of
  8.   'a':write('A');
  9.   'b':write('B');
  10.   'c':write('C');
  11.   'd':write('D');
  12.   'e':write('E');
  13.   end;
  14.   readln;
  15. end.


 
c'est la seule solution ou on peut faire un truc du genre

Code :
  1. case chaine of
  2. 'a'..'z':donne 'A'..'Z'


merci  :)

Reply

Marsh Posté le 28-05-2004 à 16:58:33   

Reply

Marsh Posté le 28-05-2004 à 17:33:42    

Je trouve très tordu d'utiliser un case dans ce cas-ci, je vois pas du tout à quoi il servirait :heink:


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 28-05-2004 à 17:42:19    

ba je sais bien, mais c'est l'énnoncé [:spamafote].
mon prof est un tordu, il nous fait tj utiliser des trucs de cinglés pour faire des trucs simples :D

Reply

Marsh Posté le 28-05-2004 à 17:51:36    

avec un  
 
case chaine[i] of
  'a'..'z': Write(chaine[i] - (Ord('a') - Ord('A')));
else
  Write(chaine[i]);
end;
 
 
Mais ça n'a pas vraiment d'intérêt par rapport à un if.


Message édité par antp le 28-05-2004 à 17:52:56

---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 28-05-2004 à 21:55:26    

merci,
je n'ai pas vu ord, je vais me documenter par curiosité :)

Reply

Marsh Posté le 28-05-2004 à 22:36:36    

Ord c'est juste pour avoir la valeur numérique d'un caractère/énumération, vu que le langage est fortement typé il n'aime pas mélanger les types mêmes s'ils sont proches.


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 29-05-2004 à 01:44:18    

ok,
sinon ca ca marche :

Code :
  1. case chaine[i] of
  2. 'a'..'z': Write(upcase(chaine[i]));
  3. else
  4. Write(chaine[i]);
  5. end;


 
je sais pas si c'est bien par contre  :)


Message édité par $man le 29-05-2004 à 01:45:23
Reply

Marsh Posté le 29-05-2004 à 08:17:24    

Benh là c'est un peu inutile vu que UpCase change les 'a'..'z' en 'A'..'Z' via une soustraction de Ord de 'a' et 'A' comme je l'avais posté... Donc le case ne sert _vraiment_ à rien :D


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 29-05-2004 à 09:19:43    

pour le case je suis bien d'accord, en fait je crois que des qu'on voit un nouveau truc, il veut le caser lol

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed