Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
103
Task/General-FizzBuzz/Modula-2/general-fizzbuzz.mod2
Normal file
103
Task/General-FizzBuzz/Modula-2/general-fizzbuzz.mod2
Normal file
|
|
@ -0,0 +1,103 @@
|
|||
MODULE GeneralFizzBuzz;
|
||||
FROM Conversions IMPORT StrToInt;
|
||||
FROM FormatString IMPORT FormatString;
|
||||
FROM Terminal IMPORT Write,WriteString,WriteLn,ReadChar;
|
||||
|
||||
TYPE
|
||||
Word = ARRAY[0..63] OF CHAR;
|
||||
|
||||
PROCEDURE WriteInt(i : INTEGER);
|
||||
VAR buf : Word;
|
||||
BEGIN
|
||||
FormatString("%i", buf, i);
|
||||
WriteString(buf);
|
||||
END WriteInt;
|
||||
|
||||
PROCEDURE ReadInt() : INTEGER;
|
||||
VAR
|
||||
buf : ARRAY[0..9] OF CHAR;
|
||||
c : CHAR;
|
||||
i : INTEGER;
|
||||
BEGIN
|
||||
i := 0;
|
||||
LOOP
|
||||
c := ReadChar();
|
||||
IF (c=0C) OR (i>9) THEN
|
||||
BREAK
|
||||
ELSIF (c=012C) OR (c=015C) THEN
|
||||
WriteLn;
|
||||
buf[i] := 0C;
|
||||
BREAK
|
||||
ELSIF (c<'0') OR (c>'9') THEN
|
||||
Write(c);
|
||||
buf[i] := 0C;
|
||||
BREAK
|
||||
ELSE
|
||||
Write(c);
|
||||
buf[i] := c;
|
||||
INC(i)
|
||||
END
|
||||
END;
|
||||
StrToInt(buf, i);
|
||||
RETURN i
|
||||
END ReadInt;
|
||||
|
||||
PROCEDURE ReadLine() : Word;
|
||||
VAR
|
||||
buf : Word;
|
||||
i : INTEGER;
|
||||
c : CHAR;
|
||||
BEGIN
|
||||
i := 0;
|
||||
WHILE i<HIGH(buf) DO
|
||||
c := ReadChar();
|
||||
IF (c=0C) OR (c=012C) OR (c=015C) THEN
|
||||
WriteLn;
|
||||
buf[i] := 0C;
|
||||
BREAK
|
||||
ELSE
|
||||
Write(c);
|
||||
buf[i] := c;
|
||||
INC(i)
|
||||
END
|
||||
END;
|
||||
RETURN buf;
|
||||
END ReadLine;
|
||||
|
||||
VAR
|
||||
i,max : INTEGER;
|
||||
fa,fb,fc : INTEGER;
|
||||
wa,wb,wc : Word;
|
||||
done : BOOLEAN;
|
||||
BEGIN
|
||||
max := ReadInt();
|
||||
|
||||
fa := ReadInt();
|
||||
wa := ReadLine();
|
||||
fb := ReadInt();
|
||||
wb := ReadLine();
|
||||
fc := ReadInt();
|
||||
wc := ReadLine();
|
||||
|
||||
FOR i:=1 TO max DO
|
||||
done := FALSE;
|
||||
IF i MOD fa = 0 THEN
|
||||
done := TRUE;
|
||||
WriteString(wa);
|
||||
END;
|
||||
IF i MOD fb = 0 THEN
|
||||
done := TRUE;
|
||||
WriteString(wb);
|
||||
END;
|
||||
IF i MOD fc = 0 THEN
|
||||
done := TRUE;
|
||||
WriteString(wc);
|
||||
END;
|
||||
IF NOT done THEN
|
||||
WriteInt(i)
|
||||
END;
|
||||
WriteLn;
|
||||
END;
|
||||
|
||||
ReadChar
|
||||
END GeneralFizzBuzz.
|
||||
Loading…
Add table
Add a link
Reference in a new issue