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. 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
  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. 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
  4. 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. 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