Les mots mono - vocalisme

5o5a -  
[Dal] Messages postés 6204 Date d'inscription   Statut Contributeur Dernière intervention   - 24 mai 2019 à 20:07
Bonjour,
comment determiner les mots mono_vocalismes?
A voir également:

4 réponses

[Dal] Messages postés 6204 Date d'inscription   Statut Contributeur Dernière intervention   1 104
 
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
telliak Messages postés 3668 Date d'inscription   Statut Membre Dernière intervention   880
 
Tu veux dire svp ? merci ?
0
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
5o5a
 
merci
0
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
[Dal] Messages postés 6204 Date d'inscription   Statut Contributeur Dernière intervention   1 104
 
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 ent 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