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 :

[TP] Détermination du poids d'un mot


Sujet :

Turbo Pascal

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Inscrit en
    Juillet 2007
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 2
    Par défaut [TP] Détermination du poids d'un mot
    Salut à tous,
    S'il vous plait j'ai besoin d'aide dans un exercice pascal...
    J'ai essayé de le résoudre toute seule..J'ai fait l'exécution ,ça a marché mais ça ne correspond pas tout à fait à l'exercice..
    Bon voilà l'énoncé:
    On appelle poids d'un mot,la somme des produits de la position de chaque voyelle contenue dans le mot par son rang dans l'alphabet français.Une lettre a le même rang qu'elle soit écrite en majuscule ou en miniscule.
    Ecrire un prog en pascal qui calcule et affiche le poids d'un mot donné...

    Voilà ce que j'ai eu comme idée et ce que j'ai pu faire..
    Mais j'aimerais bien que vous m'indiquiez la position de l'erreur sachant que je suis encore débutante...
    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
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
     
    program poids;
    uses wincrt;
    var mot:string;
    i,poi,rana,rano,ranu,rani,rane,rany,posa,posi,pose,poso,posu,posy :integer;
    begin
    writeln('entrez votre mot');
    readln (mot);
     
     
    posa:=pos('A',mot);poso:=pos('O',mot);posi:=pos('I',mot);posu:=pos('U',mot) ;pose:=pos('E',mot);posy:=pos('Y',mot);
     
     
    for i:=1 to length(mot) do
    begin
    case upcase (mot[i]) of
    'A': rana:=1;
    'E': rane:=5;
    'U': ranu:=21;
    'I': rani:=9;
    'O': rano:=15;
    'Y': rany:=25;
    end;
    case upcase (mot[i]) of
    'A': posa:=posa+1;
    'E': pose:=pose+1;
    'U': posu:=posu+1;
    'I': posi:=posi+1;
    'O': poso:=poso+1;
    'Y': posy:=posy+1;
    end;
    end;
    poi:=(rana*posa)+(rani*posi)+(ranu*posu)+(rano*poso)+(rane*pose)+(rany*posy) ;
    writeln(poi);
     
    end.


    Merci d'avance

  2. #2
    Expert confirmé Avatar de Graffito
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    5 993
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 993
    Par défaut
    Bonjour,

    2 problemes :
    - les variables posX et ranX ne sont pas initialisées à 0 (ou il manque le else dans le case)
    - les posX ne doivent pas être incrémentées et devraient être égales à i.

    Un code plus simple pourrait ressembler à ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    poi:=0 ;
    for i:=1 to length(mot) do 
      case upcase (mot[i]) of
      ...
      'E': poi:=poi+ 5*i ;
      ...
      end ;
    writeln(poi) ;

  3. #3
    Candidat au Club
    Inscrit en
    Juillet 2007
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 2
    Par défaut
    Voilà..
    Je l'ai corrigé et ça march super bien maintenant
    Merci
    voilà
    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
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    program poids;
    uses wincrt;
    var   mot:string;
          i,poi,rana,rano,ranu,rani,rane,rany,posa,posi,pose,poso,posu,posy :integer;
    begin
    writeln('entrez votre mot');
    readln (mot);
    posa:=pos('A',mot);poso:=pos('O',mot);posi:=pos('I',mot);posu:=pos('U',mot) ;pose:=pos('E',mot);posy:=pos('Y',mot);
     
     
    for i:=1 to length(mot) do
    begin
    case upcase (mot[i]) of
    'A':  rana:=1;
    'E':  rane:=5;
    'U':  ranu:=21;
    'I':  rani:=9;
    'O':  rano:=15;
    'Y':  rany:=25;
    end;
    case upcase (mot[i]) of
    'A':  posa:=posa+i;
    'E':  pose:=pose+i;
    'U':  posu:=posu+i;
    'I':  posi:=posi+i;
    'O':  poso:=poso+i;
    'Y':  posy:=posy+i;
    end;
    end;
    poi:=(rana*posa)+(rani*posi)+(ranu*posu)+(rano*poso)+(rane*pose)+(rany*posy) ;
    writeln(poi);
     
    end.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Déterminer le nombre d'occurences des mots dans un fichiers texte
    Par fraisa1985 dans le forum Général Java
    Réponses: 13
    Dernier message: 26/10/2021, 01h58
  2. Déterminer si un mot est un Palindrome
    Par alvanoto dans le forum Débuter avec Java
    Réponses: 9
    Dernier message: 28/05/2009, 13h37
  3. Réponses: 6
    Dernier message: 23/04/2009, 20h56
  4. Réponses: 25
    Dernier message: 26/11/2007, 19h06
  5. Calcul du poid d'un mot (moteur de recherche)
    Par vodevil dans le forum Algorithmes et structures de données
    Réponses: 25
    Dernier message: 23/11/2006, 03h07

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