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 :

Afficher le pluriel d'un mot donné


Sujet :

Turbo Pascal

  1. #1
    Candidat au Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Avril 2017
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 24
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Avril 2017
    Messages : 9
    Points : 4
    Points
    4
    Par défaut Afficher le pluriel d'un mot donné
    Bonjour

    Je n'ai pas compris pourquoi mon programme ne marche pas.

    Voilà l'énoncé :
    Écrire un programme qui permet d'afficher le pluriel d'un mot donné selon seulement les règles suivantes (toute autre règle et les exceptions sont exclues) :
    Si le mot se termine par un « u », on ajoute « X » : « eau » => « eaux »
    Si le mot se termine par « el », la fin au pluriel devient « eux » : « Ciel » => « cieux »
    Si le mot se termine par « al », la fin au pluriel devient « aux » : « animal » => « animaux » C
    Le reste des mots au pluriel prend « S » à la fin.
    Voilà mon programme :
    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
    19
    20
    21
    program pluriel;
    uses wincrt;
    var
    mot:string;
     
     
    begin
    writeln('saisir un mot');readln(mot);
     
    if  mot[length(mot)]='l' then
      if mot[length(mot)-1]='e'
      insert('eux',mot,length(mot)-2)
      else if mot[length(mot)-1]='a'
      insert('aux',mot,length(mot)-2)
     
     
    else if  mot[length(mot)]='u' then
             insert('u',mot,length(mot)+1)
    else
     insert('s',mot,length(mot)+1)
     end.

  2. #2
    Expert confirmé
    Avatar de anapurna
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2002
    Messages
    3 404
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 404
    Points : 5 790
    Points
    5 790
    Par défaut
    Salut

    Il te manque une condition si ton nom termine par L mais l’élément d'avant n'est ni un a ni un e.
    Ensuite, je ne suis pas sûr que insert soit le plus adéquat pour modifier tes noms ; il serait peut-être plus simple d'utiliser la fonction copy + la terminaison voulue.
    Nous souhaitons la vérité et nous trouvons qu'incertitude. [...]
    Nous sommes incapables de ne pas souhaiter la vérité et le bonheur, et sommes incapables ni de certitude ni de bonheur.
    Blaise Pascal
    PS : n'oubliez pas le tag

  3. #3
    Candidat au Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Avril 2017
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 24
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Avril 2017
    Messages : 9
    Points : 4
    Points
    4
    Par défaut
    oui vous avez raison
    j'ai ajouté la derniere condition
    else insert('s',mot,length(mot)+1) mais sans effet
    ??

  4. #4
    Rédacteur/Modérateur
    Avatar de Andnotor
    Inscrit en
    Septembre 2008
    Messages
    5 659
    Détails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Septembre 2008
    Messages : 5 659
    Points : 13 032
    Points
    13 032
    Par défaut
    Du fait qu'il manque des then, ça doit pas compiler

    En admettant que ce soit une erreur de retranscription:
    else se réfère toujours au if précédent contenu dans le même bloc begin..end. Le compilateur va interpréter ton code comme suit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    if 'l' then
        if 'e' then ...
        else if 'a' then ...
        else if 'u' then ...
        else ..

  5. #5
    Membre émérite

    Homme Profil pro
    Formation: Chimie et Physique (structure de la matière)
    Inscrit en
    Décembre 2010
    Messages
    1 329
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 77
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Formation: Chimie et Physique (structure de la matière)
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2010
    Messages : 1 329
    Points : 2 562
    Points
    2 562
    Billets dans le blog
    9
    Par défaut [TPW] Afficher le pluriel d'un mot donné
    Bonjour,

    Puisque l'énoncé invite à envisager quatre cas, l'instruction CASE ne serait-elle pas plus appropriée ?

    http://cyberzoide.developpez.com/info/turbo/chap5.php3
    https://pascal.developpez.com/cours/ptrau/?page=page_8

    # Autre idée: afin d'uniformiser tous les cas envisagés, n'aurait-on pas intérêt à scinder le mot de départ en deux sous-chaînes:
    - le mot initial privé de sa dernière lettre,
    - le caractère final, à partir duquel on peut faire des choix ?
    Ils se ramènent en fait à trois, après lecture attentive des règles proposées.

    https://pascal.developpez.com/cours/...page=pg_String

    # Je ne peux m'empêcher de remarquer que l'énoncé, forcément simpliste pour rester accessible (il aborde le codage de la grammaire française, rien de moins), conduit à des réponses comiques ...
    Écrire un programme qui permet d'afficher le pluriel d'un mot donné selon seulement les règles suivantes (toute autre règle et les exceptions sont exclues) :
    Si le mot se termine par un « u », on ajoute « X » : « eau » => « eaux »
    Si le mot se termine par « el », la fin au pluriel devient « eux » : « Ciel » => « cieux »
    Si le mot se termine par « al », la fin au pluriel devient « aux » : « animal » => « animaux » C
    Le reste des mots au pluriel prend « S » à la fin.
    Un tutu, des tutux,
    un logiciel, des logicieux,
    un panel, des paneux,
    un corral, des corraux ...
    Les intervenants n'y sont évidemment pour rien.


    Le français, notre affaire à tous
    Grand Dictionnaire Terminologique

Discussions similaires

  1. Pourquoi le programme ne marche pas ?
    Par Javamar dans le forum Débuter avec Java
    Réponses: 15
    Dernier message: 26/03/2013, 23h54
  2. Mon programme ne marche pas !
    Par Robmilou dans le forum Débuter
    Réponses: 3
    Dernier message: 23/10/2007, 19h39
  3. Réponses: 3
    Dernier message: 16/04/2007, 18h01
  4. Mon programme ne marche pas aprés le if:?
    Par mitherkiller dans le forum C
    Réponses: 28
    Dernier message: 28/03/2007, 20h47
  5. Sos mon programme ne marche pas
    Par monalisa_dulouvre dans le forum C
    Réponses: 49
    Dernier message: 26/12/2006, 19h35

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