MODULE Pangrams; FROM InOut IMPORT WriteString, WriteLn; FROM Strings IMPORT Length; (* Check if a string is a pangram *) PROCEDURE pangram(s: ARRAY OF CHAR): BOOLEAN; VAR letters: ARRAY [0..25] OF BOOLEAN; i: CARDINAL; BEGIN FOR i := 0 TO 25 DO letters[i] := FALSE; END; FOR i := 0 TO Length(s)-1 DO IF (s[i] >= 'A') AND (s[i] <= 'Z') THEN letters[ORD(s[i]) - ORD('A')] := TRUE; ELSIF (s[i] >= 'a') AND (s[i] <= 'z') THEN letters[ORD(s[i]) - ORD('a')] := TRUE; END; END; FOR i := 0 TO 25 DO IF NOT letters[i] THEN RETURN FALSE; END; END; RETURN TRUE; END pangram; PROCEDURE example(s: ARRAY OF CHAR); BEGIN WriteString("'"); WriteString(s); WriteString("' is "); IF NOT pangram(s) THEN WriteString("not "); END; WriteString("a pangram."); WriteLn(); END example; BEGIN example("The quick brown fox jumps over the lazy dog"); example("The five boxing wizards dump quickly"); example("abcdefghijklmnopqrstuvwxyz"); END Pangrams.