Programme en pascal

Bonjour,
Bonjour,
slt tous le monde
j'ai fais un programme en pascal qui lit une chaine de caractéres en majuscule(max 10)puis al'affiche en minuscul
Que pensez-vous que le logiciel est vrai ou faux
Si les erreurs possible aidez-moi

program casse;
var s:string;
c:char;
begin
c:='x';
writeln(c);
writeln(upcase(c));
writeln;
s:='LA chaine de Caractèr';
writeln(s);
writeln(upcase(s));
writeln(lowercase(s));
readln;
end.

merci
Configuration: Windows XP
Internet Explorer 7.0

5 réponses

  1. la chaine de caractères doit être en MAJUSCULE ou tu entre votre chaine et puis tu la transforme en MAJ pui en Min!
    aussi t'as utilisé la commande writeln sans paramètres!?
    0
    1. Modérateur
      Salut,
      En fait ton programme ne lit pas un une chaine de caractère puisque tu n'utilises pas readln
      De plus tu précises max 10, mais tu ne t'en sers pas dans ton code...
      Par contre le writeln sans paramètre n'est pas un problème (idem pour readln)
      Mais globalement ton code est lourd et comporte beaucoup d'éléments inutiles...
      program casse;
      
      var s:string[10]; // max 10
      begin
      readln(s); // en lettres quelconques
      writeln(lowercase(s)); // en lettres minuscules
      readln;
      end.
      0
      1. il n'ya pas une fonction qui s'appelle "lowercase"!!
        0
        1. salut
          t'a raison il n'existe pas une fonction pascal lowercasecontrairement à upcasequi met un caractere en majuscul et non pas une chaine de caractere alors:
             program casse;
             var s:string[10]; // max 10
             begin
               writeln('entrez la chaine de caractere  : '); 
               readln(s); // en lettres quelconques
                for i:=1 to length(s) do
                  s[i]:=upcase(s[i]); // en lettres majuscules
           
                writeln('la chaine en majuscul : ',s);
             readln;
          end.

          cordialement
          0
      2. Modérateur
        Sous Dev-Pascal on peut utiliser lowercase et upcase sur des string
        Mais il y a toujours des variantes d'une interface à l'autres...

        Selon ce que vous utilisez comme interface Pascal, il y aura des erreurs ou pas...

        Si il fallait refaire ces fonctions voici comment on pourrait s'y prendre :
        function lowercase(s:string):string;
        var i:integer;
        begin
        result:='';
        for i:=1 to length(s) do
            if ('A'<=s[i]) and (s[i]<='Z')
               then result:=result+chr(ord(s[i])+32)
               else result:=result+s[i];
        end;
        
        function upcase(s:string):string;
        var i:integer;
        begin
        result:='';
        for i:=1 to length(s) do
            if ('a'<=s[i]) and (s[i]<='z')
               then result:=result+chr(ord(s[i])-32)
               else result:=result+s[i];
        end;
        0
        1. salut
          mon compilateur n'accepte plus lowercasecontrairement àupcase
          en tt cas lowercase n'existe même pas dans le help..
          autre chose, il n'accepte aussi pas cette derniere sur des string mais sur un seul caractere..
          merci pour les definitions je l'ai bien compris..(code Ascii + une difference constante(32))
          j'aime savoire comment les integrer dans la bibliothèque du pascal pour la réutilisation.. est qu'on peut les definir dans les unités?
          cordialement
          0
        2. Modérateur
          @amieTu pourrais utiliser une unité "mes_fonctions" :
          unit mes_fonctions;
          
          interface
          
          function lowercase(s:string):string;
          function upcase(s:string):string;
          
          implementation
          
          // copier coller les fonctions du dessus
          
          begin
          end.
          Et à chaque fois que tu en as besoin :
          program SansTitre; uses mes_fonctions;
          Bien sûr l'intérêt est de remplir ton unité à chaque fois que tu as de nouvelles fonctions à y mettre...
          0
        3. @KXmerci bien KX pour ta repense rapide et de mettre ma question en considération..
          je vais essayer et si jamais j'aurai des problemes je poses mes questions ...daccord?
          cordialement amie
          0
      3. bonsoir
        j'ai definis l'unité mes_fcts mais lorsque j'ecrit
        dans un pgm uses mes_fcts,il m'affiche l'erreur 72 :

             -> Erreur de format dans un fichier d'unit‚
        
                 Le fichier .TPU n'est pas valable.
        
                Il a peut être été créé avec une version
             ancienne de Turbo Pascal. Dans ce cas, vous
             devez regénérer un nouveau .TPU depuis le
                          fichier source .PAS.
        

        svp si quelqu'un peut me diriger quoi faire ca sera tres gentil...merci davance
        cdlt
        0
        1. Modérateur
          Plusieurs pistes possibles :
          As-tu compilé ton unité dans le même dossier que ton programme ?
          Quel programme utilises-tu pour faire fonctionner Pascal ?
          0
        2. @KXbonsoir KX
          merci beaucoup pour ton soutien
          en fin j'ai reglé mon problème ..au fait j'ai cru qu'en pascal et c++ c'est la même chose; pour definir de nouveaux fonctions en c++ en enregistre le pgm avec les include avec extension .H et pour les utiliser on ecrit #include<mes_fct.h> et moi j'ai enregistré mon fichier aves l'extension .tpudans le fichierunits.
          et pour resoudre mon probleme j'ai tout simplement enregistré le fichier avec l'extension.pas
          merci bcp bcp autre fois et désolé pour le derangement.
          cdlt.
          0