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 : 25
    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 435
    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 435
    Points : 5 848
    Points
    5 848
    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.

  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 : 25
    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 763
    Détails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Septembre 2008
    Messages : 5 763
    Points : 13 381
    Points
    13 381
    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 333
    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 333
    Points : 2 570
    Points
    2 570
    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.

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, 22h54
  2. Mon programme ne marche pas !
    Par Robmilou dans le forum Débuter
    Réponses: 3
    Dernier message: 23/10/2007, 18h39
  3. Réponses: 3
    Dernier message: 16/04/2007, 17h01
  4. Mon programme ne marche pas aprés le if:?
    Par mitherkiller dans le forum C
    Réponses: 28
    Dernier message: 28/03/2007, 19h47
  5. Sos mon programme ne marche pas
    Par monalisa_dulouvre dans le forum C
    Réponses: 49
    Dernier message: 26/12/2006, 18h35

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