Programme en pascal

Fermé
sindy5 - 21 nov. 2008 à 18:23
 amie - 24 nov. 2008 à 21:31
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
A voir également:

5 réponses

samar83 Messages postés 67 Date d'inscription vendredi 26 octobre 2007 Statut Membre Dernière intervention 12 novembre 2009 2
21 nov. 2008 à 20:29
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
KX Messages postés 16760 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 12 février 2025 3 020
22 nov. 2008 à 18:42
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
abdelli1991 Messages postés 64 Date d'inscription lundi 12 mai 2008 Statut Membre Dernière intervention 8 avril 2009
22 nov. 2008 à 21:02
il n'ya pas une fonction qui s'appelle "lowercase"!!
0
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
KX Messages postés 16760 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 12 février 2025 3 020
22 nov. 2008 à 22:38
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
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
KX Messages postés 16760 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 12 février 2025 3 020 > amie
22 nov. 2008 à 23:23
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
amie > KX Messages postés 16760 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 12 février 2025
23 nov. 2008 à 00:31
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

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
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
KX Messages postés 16760 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 12 février 2025 3 020
23 nov. 2008 à 22:38
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
amie > KX Messages postés 16760 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 12 février 2025
24 nov. 2008 à 21:31
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