Count how many vowels and consonants occur in a string: Difference between revisions

Add Modula-2
(Count how many vowels and consonants occur in a string en FreeBASIC)
(Add Modula-2)
Line 1,096:
{{out}}
<pre><|"vowels" -> 22, "consonants" -> 24, "other" -> 11|></pre>
 
=={{header|Modula-2}}==
<lang modula2>MODULE VowelsAndConsonants;
FROM InOut IMPORT WriteString, WriteCard, WriteLn;
FROM Strings IMPORT Length;
 
PROCEDURE uppercase(c: CHAR): CHAR;
BEGIN
IF (c >= 'a') AND (c <= 'z') THEN
c := CHR(ORD(c) - 32);
END;
RETURN c;
END uppercase;
 
PROCEDURE CountVowelsAndConsonants(s: ARRAY OF CHAR; VAR v, c: CARDINAL);
VAR i, length: CARDINAL;
ch: CHAR;
BEGIN
v := 0;
c := 0;
length := Length(s);
IF length > 0 THEN
FOR i := 0 TO length-1 DO
ch := uppercase(s[i]);
IF (ch >= 'A') AND (ch <= 'Z') THEN
IF (ch = 'A')
OR (ch = 'E')
OR (ch = 'I')
OR (ch = 'O')
OR (ch = 'U') THEN
INC(v);
ELSE
INC(c);
END;
END;
END;
END;
END CountVowelsAndConsonants;
 
PROCEDURE Display(s: ARRAY OF CHAR);
VAR v, c: CARDINAL;
BEGIN
WriteString('"');
WriteString(s);
WriteString('": ');
CountVowelsAndConsonants(s, v, c);
WriteCard(v, 0);
WriteString(' vowels, ');
WriteCard(c, 0);
WriteString(' consonants.');
WriteLn;
END Display;
 
BEGIN
Display("If not now, then when? If not us, then who?");
END VowelsAndConsonants.</lang>
{{out}}
<pre>"If not now, then when? If not us, then who?": 10 vowels, 20 consonants.</pre>
 
=={{header|Nim}}==
2,096

edits