Les mots mono - vocalisme

5o5a -  
[Dal] Messages postés 6122 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,
comment determiner les mots mono_vocalismes?

4 réponses

  1. [Dal] Messages postés 6122 Date d'inscription   Statut Contributeur Dernière intervention   1 108
     
    Salut 5o5a,

    https://fr.wiktionary.org/wiki/monovocalisme

    Tu peux définir un type
    set of char;
    et une variable
    voyelles
    utilisant ce type, ce qui te permettra d'y mettre toutes les voyelles de l'alphabet dans lequel tu travailles.

    Ensuite, tu peux facilement tester si une lettre du mot que tu analyses et une voyelle ou non, comme ceci :
    if mot[n] in voyelles then
    en faisant varier la variable
    integer
    que j'ai appelé
    n
    (tu peux l'appeler comme tu veux) de 1 à la longueur en lettres du mot.

    C'est vraiment la seule astuce pratique à savoir pour te faciliter la vie, le reste est très basique et suppose que tu saches utiliser des booléen, faire des boucles et des tests et parcourir les lettres d'une chaîne.

    Dal
    1
  2. telliak Messages postés 3652 Date d'inscription   Statut Membre Dernière intervention   885
     
    Tu veux dire svp ? merci ?
    0
  3. Utilisateur anonyme
     
    Bonsoir

    ça peut se faire avec une Regex
    [aeiouy]
    avec l'option IgnoreCase
    http://regexstorm.net/tester?p=%5baeiouy%5d&i=En+ce+mement%2c+certes%2c+t%e2%80%99es+le+chef%2c+mets+%e2%80%93+beleve+me+%e2%80%93+ce+temps+est+bref+et+je+pr%c3%a9f%c3%a8re+%c3%aatre+dens+mes+semelles+qe+dens+tes+emp%c3%a8gnes&o=i 

    Tu vérifies ensuite que toutes les occurrences sont une seule et même voyelle.

    On doit même pouvoir trouver une Regex qui fait le boulot d'un coup, mais j'ai pas trop le temps de gratter là.
    0
    1. 5o5a
       
      merci
      0
  4. 5o5a
     
    j'ai essayé d'executer ce programme mais ça n'a pas marcher:

    program MonoEn_v;
    uses wincrt;
    Type
    tab=array[1..20]of string;
    Var
    n:integer;t:tab;v:char;

    procedure remplir(n:integer;var t:tab);
    Var i,j:integer;
    Begin
    For i:=1 to n Do
    Begin
    Repeat
    Write('donner une chaine de caractéres : ');readln(t[i]);
    j:=0;
    Repeat
    j:=j+1;
    Until not(upcase(t[i][j]) in ['A'..'Z']) or (j=length(t[i]));
    until (upcase(t[I][j]) in ['A'..'Z']) and (length(t[i]) in [3..15]);
    end;
    end;

    procedure saisir_v(var v:char);
    Begin
    Repeat
    writeln('donner un caractére v');readln(v);
    until (upcase(v) in ['A','E','I','O','U','Y']);
    end;

    procedure afficher(n:integer;t:tab;v:char);
    Var i,j:integer; test:boolean;
    Begin
    test:=false;
    writeln('les mots mono-vocalisme en "',v,'" sont: ');
    for i:=1 to n Do
    Begin
    for j:=1 to length(t[i]) do
    Begin
    Repeat
    test:=true;
    Until (t[i][j] <>v ) and (t[i][j] in ['A','E','I','O','U','Y']);
    end;
    writeln(t[i],'|');
    end;
    end;

    begin
    Repeat
    Readln(n);
    until n in [1..20];
    remplir(n,t);
    saisir_v(v);
    afficher(n,t,v);
    end.
    0
    1. [Dal] Messages postés 6122 Date d'inscription   Statut Contributeur Dernière intervention   1 108
       
      1.

      Pour poster ton code sur le forum, utilise la balise de code, sinon ton code est illisible.

      Comme cela :

      <code delphi>
      copie-colle le code de ton programme Pascal ici
      </code>

      si tu ne veux pas taper toi même les balises de code, tu peux cliquer sur la petite flèche à gauche de l’icône image du forum et en choisissant le langage "delphi" cela insérera dans la fenêtre d'édition du message du forum les balises pour toi et tu n'auras plus qu'à copier coller le code Pascal de ton programme entre les deux balises, comme illustré ci-dessus.

      cela va numéroter les lignes du programme, faire une coloration syntaxique Pascal et préserver l'indentation de ton code et ce sera plus lisible pour tous

      2.

      J'ai rapidement regardé quand même ton code.

      Si je comprends bien, dans ton code, on voit que tu traites un tableau de chaînes, avec pour chaque chaîne plusieurs mots, et que tu te proposes de vérifier, pour chaque mot, si ce sont des monovocalismes par rapport à une certaine voyelle donnée par l'utilisateur, et si oui, d'en établir la liste et indiquer à l'utilisateur quels sont ces mots.

      Tu dois donc déjà disposer d'un moyen de distinguer les mots les uns des autres dans la chaîne (dans une phrase, ils sont séparés par des espaces, des signes de ponctuation).

      Par exemple, crée une fonction ou une procédure qui, à partir d'une chaîne, retourne les mots contenus dans la chaîne.

      Ensuite, pour vérifier si chaque mot est un monovocalismes par rapport à une certaine voyelle donnée par l'utilisateur, crée une fonction
      isMonovocalisme
      qui retourne un booléen
      et qui prend en paramètres une string contenant le mot à vérifier, et un char contenant la voyelle par rapport à laquelle cette vérification doit être faite.

      Ensuite, tu peux afficher les mots qui passent le test au fur et à mesure, ou, si tu as besoin de les garder en mémoire, les stocker d'une façon ou d'une autre en utilisant une structure de données du langage Pascal.

      3.

      Tu utilises quel compilateur Pascal ?

      Dal
      0