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 :

Rechercher et afficher la position de la première lettre d'une chaîne


Sujet :

Turbo Pascal

  1. #1
    Nouveau Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Octobre 2013
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2013
    Messages : 2
    Points : 1
    Points
    1
    Par défaut Rechercher et afficher la position de la première lettre d'une chaîne
    Salut tout le monde;
    j'ai une difficulté à résoudre ce problème, j'ai besoin de votre aide svp
    Écrire un programme en Pascal qui permet de saisir une chaîne de caractères CH (contient des lettres et des chiffres) puis de rechercher et d'afficher la position de la première lettre dans la chaîne.
    Exemple pour CH'234YHT09' :
    le programme affichera comme résultat: la première lettre est :Y dans la position 4.
    Merci d'avance

  2. #2
    Responsable Pascal, Lazarus et Assembleur


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

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

    Informations forums :
    Inscription : Mars 2003
    Messages : 7 968
    Points : 59 658
    Points
    59 658
    Billets dans le blog
    2
    Par défaut
    Bonjour et bienvenue,

    Pour que l'on puisse t'aider, il faudrait au moins que tu montres ce que tu as fait et que tu désignes ce qui te pose problème.


  3. #3
    Nouveau Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Octobre 2013
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2013
    Messages : 2
    Points : 1
    Points
    1
    Par défaut
    Voilà que j'ai essayé mais ça ne marche plus
    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
    program chaine;
    uses
      wincrt;
    var
      ch: string;
      i, p: integer;
    begin
      writeln('donner une chaine');
      readln(ch);
      for i:=1 to length (ch) do
       begin
          if ch[i] in ['a'..'z'] then
            p:= pos(ch[i],ch);
          writeln('la première lettre est ', ch[i],' dans la position',p);
        end;
    end.

  4. #4
    Rédacteur/Modérateur

    Avatar de Roland Chastain
    Homme Profil pro
    Enseignant
    Inscrit en
    Décembre 2011
    Messages
    4 091
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Décembre 2011
    Messages : 4 091
    Points : 15 530
    Points
    15 530
    Billets dans le blog
    9
    Par défaut
    Bonjour !

    Tout d'abord, pensez à utiliser les balises appropriées pour insérer du code dans vos messages. Voyez l'explication que j'ai donnée ici, avec l'image jointe.

    Maintenant, concernant votre code, il y a plusieurs petits problèmes à régler.

    En premier lieu, cette ligne

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    writeln('la première lettre est ', ch[i],' dans la position',p);
    s'exécute pour toutes les valeurs de i, qu'une lettre ait été trouvée ou non.

    En second lieu, l'emploi de for ne convient pas à ce que vous voulez faire, puisqu'on ne demande que la première lettre trouvée. Une boucle de type

    serait plus appropriée.

    Enfin, votre code ne détecte que les minuscules, alors que l'énoncé demande de rechercher les lettres.

  5. #5
    Membre expert
    Avatar de e-ric
    Homme Profil pro
    Apprenti chat, bienfaiteur de tritons et autres bestioles
    Inscrit en
    Mars 2002
    Messages
    1 564
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Apprenti chat, bienfaiteur de tritons et autres bestioles

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 564
    Points : 3 968
    Points
    3 968
    Par défaut
    Salut

    L'emploi de l'instruction for ne me choque pas en soi mais il faut interrompre la boucle à la première lettre trouvée et, comme le dit Roland, afficher le texte de réponse uniquement en cas de recherche fructueuse.

    L'emploi de Pos ne sert à rien puisque l'indice de boucle i est la position à proprement parler.

    Enfin, l'implémentation d'une fonction serait du plus bel effet.

    @+

Discussions similaires

  1. Réponses: 12
    Dernier message: 17/04/2015, 13h48
  2. Réponses: 0
    Dernier message: 17/09/2012, 21h00
  3. [MySQL] Afficher en fonction de la première lettre..
    Par jim1 dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 12/04/2007, 14h42
  4. [VB.NET] Mettre la première lettre d'une String en majuscule
    Par annedeblois dans le forum Windows Forms
    Réponses: 6
    Dernier message: 27/10/2006, 18h47
  5. Récupérer les deux premières lettres d'une chaine
    Par moscovisci dans le forum ASP
    Réponses: 3
    Dernier message: 10/01/2006, 15h53

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