Monophthongs

5o5a -  
[Dal] Posted messages 6122 Registration date   Status Contributor Last intervention   -
Hello,
how to determine the mono-vocalic words?

4 answers

  1. [Dal] Posted messages 6122 Registration date   Status Contributor Last intervention   1 108
     
    Hello 5o5a,

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

    You can define a type
    set of char;
    and a variable
    voyelles
    using this type, which will allow you to include all the vowels of the alphabet you are working with.

    Then, you can easily test if a letter in the word you are analyzing is a vowel or not, like this:
    if mot[n] in voyelles then
    by varying the variable
    integer
    that I called
    n
    (you can name it whatever you want) from 1 to the number of letters in the word.

    This is really the only practical tip to make your life easier; the rest is very basic and assumes that you know how to use booleans, make loops and tests, and iterate through the letters of a string.

    Dal
    1
  2. telliak Posted messages 3652 Registration date   Status Member Last intervention   885
     
    Do you mean please? Thank you?
    0
  3. Anonymous user
     
    Good evening

    It can be done with a Regex
    [aeiouy]
    with the IgnoreCase option
    http://regexstorm.net/tester?p=%5baeiouy%5d&i=In+this+moment%2c+indeed%2c+you+are+the+boss%2c+put+–+believe+me+–+this+time+is+short+and+I+prefer+to+be+in+my+shoes+than+in+your+troubles&o=i 

    You then check that all occurrences are the same vowel.

    We should even be able to find a Regex that does the job in one go, but I don't really have time to dig into that.

    --
    When I was little, the Dead Sea was only sick.
    George Burns
    0
    1. 5o5a
       
      Thank you
      0
  4. 5o5a
     
    I tried to run this program but it didn't work:

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

    procedure fill(n:integer;var t:tab);
    Var i,j:integer;
    Begin
    For i:=1 to n Do
    Begin
    Repeat
    Write('give a string: ');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 enter_v(var v:char);
    Begin
    Repeat
    writeln('give a character v');readln(v);
    until (upcase(v) in ['A','E','I','O','U','Y']);
    end;

    procedure display(n:integer;t:tab;v:char);
    Var i,j:integer; test:boolean;
    Begin
    test:=false;
    writeln('the mono-vocalism words in "',v,'" are: ');
    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];
    fill(n,t);
    enter_v(v);
    display(n,t,v);
    end.
    0
    1. [Dal] Posted messages 6122 Registration date   Status Contributor Last intervention   1 108
       
      1.

      To post your code on the forum, use the code tag; otherwise, your code is unreadable.

      Like this:

      <code delphi>
      copy-paste your Pascal program code here
      </code>

      If you don't want to type the code tags yourself, you can click on the small arrow to the left of the forum's image icon and by choosing the "delphi" language, it will insert the tags into the message editing window for you, and you will only need to copy and paste your Pascal code between the two tags, as illustrated above.

      This will number the lines of the program, provide Pascal syntax coloring, and preserve the indentation of your code, making it more readable for everyone.

      2.

      I quickly looked at your code anyway.

      If I understand correctly, in your code, you are handling an array of strings, where each string contains several words, and you intend to check for each word if they are monovocalisms with respect to a certain vowel given by the user, and if so, to establish the list and indicate to the user which words they are.

      You must therefore already have a way to distinguish the words from each other in the string (in a sentence, they are separated by spaces and punctuation marks).

      For example, create a function or procedure that, from a string, returns the words contained in that string.

      Next, to check if each word is a monovocalism with respect to a certain vowel provided by the user, create a function
      isMonovocalisme
      that returns a boolean
      and takes as parameters a string containing the word to check, and a char containing the vowel against which this verification should be made.

      Then, you can display the words that pass the test as you go, or if you need to keep them in memory, store them in some way using a data structure from the Pascal language.

      3.

      Which Pascal compiler are you using?

      Dal
      0