[Oberon] How to write this program in Oberon-07?
joerg.straube at iaeth.ch
Mon Jan 24 16:03:08 CET 2022
LOOP/EXIT might seem handy, but for source code readability and maintainability reasons it was neglected.
Use REPEAT or WHILE instead.
If numeric case is not implemented, use IF ELSIF or IF OR instead
Or look into this “elegant” alternative 😊
IMPORT In, Out, Strings;
WHILE In.Done DO
Strings.Search(ch, “AEIOUaeiou”, pos); IF pos >= 0 THEN INC(countVowels) END;
The Module Strings.Mod is quite portable.
I can send you the Oberon-07 version of it if you don’t have it.
Von: Oberon <oberon-bounces at lists.inf.ethz.ch> im Auftrag von Joe Turner <medianjoe at mailfence.com>
Antworten an: ETH Oberon and related systems <oberon at lists.inf.ethz.ch>
Datum: Montag, 24. Januar 2022 um 15:15
An: <oberon at lists.inf.ethz.ch>
Betreff: [Oberon] How to write this program in Oberon-07?
I'm working through the book "Into the Realm of Oberon" which is written for Oberon-2. I can't figure out how to translate the following program into Oberon-07 (I'm using the OBNC compiler):
VAR countVowels: INTEGER; ch: CHAR;
IF ~In.Done THEN EXIT END;
CASE ch OF
"a", "e", "i", "o", "u",
"A", "E","I","O","U": INC(countVowels)
Out.String(" vowels read.");Out.Ln;
Oberon-07 doesn't allow LOOP, EXIT, or ELSE in CASE.
Thanks in advance for any help.
-- Sent with https://mailfence.com Secure and private email -- Oberon at lists.inf.ethz.ch mailing list for ETH Oberon and related systems https://lists.inf.ethz.ch/mailman/listinfo/oberon
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the Oberon