Programme en pascal

sindy5 -  
 amie -
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. samar83 Messages postés 70 Date d'inscription   Statut Membre 2
     
    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
  2. KX Messages postés 19031 Statut Modérateur 3 020
     
    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
  3. abdelli1991 Messages postés 68 Statut Membre
     
    il n'ya pas une fonction qui s'appelle "lowercase"!!
    0
    1. amie
       
      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. KX Messages postés 19031 Statut Modérateur 3 020
     
    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. amie
       
      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
      1. KX Messages postés 19031 Statut Modérateur 3 020 > amie
         
        Tu 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
      2. amie > KX Messages postés 19031 Statut Modérateur
         
        merci 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
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. amie
     
    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. KX Messages postés 19031 Statut Modérateur 3 020
       
      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
      1. amie > KX Messages postés 19031 Statut Modérateur
         
        bonsoir 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