IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Turbo Pascal Discussion :

Ecrire un programme qui lit une chaîne de caractères


Sujet :

Turbo Pascal

  1. #1
    Membre à l'essai
    Inscrit en
    Novembre 2008
    Messages
    55
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 55
    Points : 23
    Points
    23
    Par défaut Ecrire un programme qui lit une chaîne de caractères
    Je suis perdue et je ne trouve pas la réponse.
    Voilà l'exercice :
    Ecrire un programme qui lit une chaîne de caractères et qui
    la transforme en « écriture secrète »comme suit :
    – les lettres de l’alphabet sont décalées de deux positions ; càd. ’A’ devient
    ’C’, ’B’ devient ’D’, . . . , ’Y’ devient ’A’ et ’Z’ devient ’B’
    – un blanc est remplacé par le symbole ’+’
    Et voilà mon travail mais il n'est pas correct :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    uses crt;
    var i,j:integer;
        p:string;
    begin
    write('Donner une phrase:');readln(p);
    clrscr;
     i:=1 ;
     j:=1 ;
    for i:=1 to length(p) do
     begin
     
    write(chr(i+65+j)) ;
     
     
     
      end;
    readln;
    end.
    La vraie question c'est quelles fonctions convenables je dois utiliser ?

  2. #2
    Membre à l'essai
    Inscrit en
    Novembre 2008
    Messages
    55
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 55
    Points : 23
    Points
    23
    Par défaut
    il reste d'autres modifications a faire!!!!

  3. #3
    Responsable Pascal, Lazarus et Assembleur


    Avatar de Alcatîz
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Mars 2003
    Messages
    7 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ressources humaines
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2003
    Messages : 7 938
    Points : 59 417
    Points
    59 417
    Billets dans le blog
    2
    Par défaut
    Bonjour,

    L'énoncé dit "qui la transforme", donc je comprends plutôt qu'il faut transformer la chaîne avant de l'afficher.

    Pour la transformation, l'instruction case of est bien adaptée :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    case p[i] of
      'A'..'X', 'a'..'x' : { ... }
      'Y'..'Z', 'y'..'z' : { ... }
      ' ' : { ... }
    end;
    Règles du forum
    Cours et tutoriels Pascal, Delphi, Lazarus et Assembleur
    Avant de poser une question, consultez les FAQ Pascal, Delphi, Lazarus et Assembleur
    Mes tutoriels et sources Pascal

    Le problème en ce bas monde est que les imbéciles sont sûrs d'eux et fiers comme des coqs de basse cour, alors que les gens intelligents sont emplis de doute. [Bertrand Russell]
    La tolérance atteindra un tel niveau que les personnes intelligentes seront interdites de toute réflexion afin de ne pas offenser les imbéciles. [Fiodor Mikhaïlovitch Dostoïevski]

  4. #4
    Membre à l'essai
    Inscrit en
    Novembre 2008
    Messages
    55
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 55
    Points : 23
    Points
    23
    Par défaut
    j'ai oublié de maître (chaîne de caractère formée par de lettres majuscules et des espaces)
    Alors pas besoin de case of pour transformer le caractère
    est ce que j'aurai besoin de quelles fonctions
    copy
    chr
    ord
    ucc
    ou bien d'autres??

  5. #5
    Rédacteur
    Avatar de darrylsite
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    1 299
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 1 299
    Points : 2 501
    Points
    2 501
    Par défaut
    On peut utiliser une chaine de caractere comme un tableau. On peut acceder à charqu'un de ses element qui sont des caracteres comme suit chaine[i] où i est l'indice du tableau et commence à1.

    Le code que Alcatîz a donné se prete bien à ton exercice où les p[i] sont les caracteres de la chaine p.

  6. #6
    Membre à l'essai
    Inscrit en
    Novembre 2008
    Messages
    55
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 55
    Points : 23
    Points
    23
    Par défaut
    merci de votre aide mais je ne sais pas comment utilisé cette fonction
    je demande un coup de pouce les gars

  7. #7
    Expert confirmé

    Inscrit en
    Août 2006
    Messages
    3 942
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 3 942
    Points : 5 654
    Points
    5 654
    Par défaut
    Bai,
    Citation Envoyé par agan2012 Voir le message
    merci de votre aide mais je ne sais pas comment utilisé cette fonction
    je demande un coup de pouce les gars
    Quelle fonction ?

    Comme c'est un exercice de cours, tu as dû apprendre ce qui t'est nécessaire.
    Si les cons volaient, il ferait nuit à midi.

  8. #8
    Membre averti

    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    190
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Savoie (Rhône Alpes)

    Informations forums :
    Inscription : Novembre 2003
    Messages : 190
    Points : 305
    Points
    305
    Par défaut
    salut,

    je vais ajouter un indice !!!!!

    Reprend le code d'Alcatiz, c-à-d le case qui sépare les majuscules jusqu'à X, les majuscules Y et Z, et l'espace. Et construis une nouvelle chaîne caractère par caractère en indexant ta chaîne p comme un tableau (cf message de darrylsite).

    Dans le 1er cas du case (lettres de A à X), le décalage doit être de 2 lettres. Or ces lettres sont ordonnées. Par ex A doit avoir le code 65 (en hexa il me semble). Et C doit valoir 67 dans ce cas.

    Indice: ord est une fonction qui te donne cet indice. Chr est sa fonction réciproque (redonne la lettre à partir du code). T'as besoin de rien d'autre (je connais même pas le "ucc" ).

    Pour info la concaténation se fait avec "concat" ou tout simplement l'opérateur "+".

    A demain (ou pt'et aujourd'hui d'ailleurs)
    L'ami des tout petits

  9. #9
    Membre à l'essai
    Inscrit en
    Novembre 2008
    Messages
    55
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 55
    Points : 23
    Points
    23
    Par défaut
    Citation Envoyé par Gabi Voir le message
    salut,

    je vais ajouter un indice !!!!!

    Reprend le code d'Alcatiz, c-à-d le case qui sépare les majuscules jusqu'à X, les majuscules Y et Z, et l'espace. Et construis une nouvelle chaîne caractère par caractère en indexant ta chaîne p comme un tableau (cf message de darrylsite).

    Dans le 1er cas du case (lettres de A à X), le décalage doit être de 2 lettres. Or ces lettres sont ordonnées. Par ex A doit avoir le code 65 (en hexa il me semble). Et C doit valoir 67 dans ce cas.

    Indice: ord est une fonction qui te donne cet indice. Chr est sa fonction réciproque (redonne la lettre à partir du code). T'as besoin de rien d'autre (je connais même pas le "ucc" ).

    Pour info la concaténation se fait avec "concat" ou tout simplement l'opérateur "+".

    A demain (ou pt'et aujourd'hui d'ailleurs)
    merci boucoup de votre aide Gabi
    Je réfléchirai et je reviendrai

  10. #10
    Membre à l'essai
    Inscrit en
    Novembre 2008
    Messages
    55
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 55
    Points : 23
    Points
    23
    Par défaut
    Citation Envoyé par Gabi Voir le message


    (je connais même pas le "ucc" ).



    A demain (ou pt'et aujourd'hui d'ailleurs)
    une erreur de frappe je dois casser mon clavier
    tu sais que si je veux tapper un s il faut maintenir Alt + 115
    c'est bien "succ "
    désolé

Discussions similaires

  1. Réponses: 6
    Dernier message: 08/05/2015, 09h11
  2. Fonction qui indique une chaîne de caractère
    Par luigieti dans le forum Algorithmes et structures de données
    Réponses: 0
    Dernier message: 07/12/2013, 16h32
  3. Agent qui récupère une chaîne de caractères dans une JSP
    Par makaphrodite dans le forum Programmation par agent
    Réponses: 4
    Dernier message: 17/02/2013, 12h23
  4. Réponses: 6
    Dernier message: 09/03/2011, 13h16
  5. [Débutant] Programme qui affiche des chaînes de caractère
    Par funy16 dans le forum Débuter avec Java
    Réponses: 8
    Dernier message: 04/11/2009, 09h44

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo