Find words with alternating vowels and consonants

From Rosetta Code
Revision as of 02:51, 3 January 2021 by CalmoSoft (talk | contribs) (Created page with "=={{header|Ring}}== <lang ring> cStr = read("unixdict.txt") wordList = str2list(cStr) words = [] num = 0 vowels = "aeiou" consonants = "bcdfghjklmnpqrstvwxyz" see "working......")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Ring

<lang ring> cStr = read("unixdict.txt") wordList = str2list(cStr) words = [] num = 0 vowels = "aeiou" consonants = "bcdfghjklmnpqrstvwxyz"

see "working..." + nl

ln = len(wordList) for n = ln to 1 step -1

   if len(wordList[n]) < 10
      del(wordList,n)
   ok

next

see "Words are:" + nl + nl

for n = 1 to len(wordList)

   cflag = 0
   vflag = 0
   len = len(wordList[n])
   for m = 1 to len
       if m % 2 = 1
          cons = substr(consonants,wordList[n][m])
          if cons > 0
             cflag = 1
          else
             cflag = 0
             exit
          ok           
       ok
       if m % 2 = 0
          cons = substr(vowels,wordList[n][m])
          if cons > 0
             vflag = 1
          else
             vflag = 0
             exit
          ok           
       ok
   next
   if cflag = 1 and vflag = 1
      add(words,wordList[n])
   ok

next

for n = 1 to len(wordList)

   cflag = 0
   vflag = 0
   len = len(wordList[n])
   for m = 1 to len
       if m % 2 = 1
          cons = substr(vowels,wordList[n][m])
          if cons > 0
             cflag = 1
          else
             cflag = 0
             exit
          ok           
       ok
       if m % 2 = 0
          cons = substr(consonants,wordList[n][m])
          if cons > 0
             vflag = 1
          else
             vflag = 0
             exit
          ok           
       ok
   next
   if cflag = 1 and vflag = 1
      add(words,wordList[n])
   ok

next

words = sort(words)

for n = 1 to len(words)

   see "" + n + ". " + words[n] + nl

next

see "done..." + nl </lang> Output:

working...
Words are:

1. aboriginal
2. apologetic
3. bimolecular
4. borosilicate
5. calorimeter
6. capacitate
7. capacitive
8. capitoline
9. capitulate
10. caricature
11. colatitude
12. coloratura
13. colorimeter
14. debilitate
15. decelerate
16. decolonize
17. definitive
18. degenerate
19. deliberate
20. demodulate
21. denominate
22. denotative
23. deregulate
24. desiderata
25. desideratum
26. dilapidate
27. diminutive
28. epigenetic
29. facilitate
30. hemosiderin
31. heretofore
32. hexadecimal
33. homogenate
34. inoperative
35. judicature
36. latitudinal
37. legitimate
38. lepidolite
39. literature
40. locomotive
41. manipulate
42. metabolite
43. nicotinamide
44. oratorical
45. paragonite
46. pejorative
47. peridotite
48. peripatetic
49. polarimeter
50. recitative
51. recuperate
52. rehabilitate
53. rejuvenate
54. remunerate
55. repetitive
56. reticulate
57. savonarola
58. similitude
59. solicitude
60. tananarive
61. telekinesis
62. teratogenic
63. topologize
64. unilateral
65. unimodular
66. uninominal
67. verisimilitude
done...