Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
93
Task/General-FizzBuzz/Action-/general-fizzbuzz.action
Normal file
93
Task/General-FizzBuzz/Action-/general-fizzbuzz.action
Normal file
|
|
@ -0,0 +1,93 @@
|
|||
DEFINE MAX_NUMBERS="200"
|
||||
DEFINE MAX_LEN="20"
|
||||
DEFINE MAX_FACTORS="5"
|
||||
DEFINE PTR="CARD"
|
||||
|
||||
PROC PrintResult(BYTE max,n BYTE ARRAY factors PTR ARRAY texts)
|
||||
BYTE i,j,t
|
||||
BYTE ARRAY values(MAX_FACTORS)
|
||||
|
||||
FOR j=0 TO n-1
|
||||
DO
|
||||
values(j)=1
|
||||
OD
|
||||
|
||||
FOR i=1 TO max
|
||||
DO
|
||||
t=0
|
||||
FOR j=0 TO n-1
|
||||
DO
|
||||
IF values(j)=0 THEN
|
||||
t=1 Print(texts(j))
|
||||
FI
|
||||
values(j)==+1
|
||||
IF values(j)=factors(j) THEN
|
||||
values(j)=0
|
||||
FI
|
||||
OD
|
||||
IF t=0 THEN PrintB(i) FI
|
||||
Put(32)
|
||||
OD
|
||||
RETURN
|
||||
|
||||
BYTE FUNC Find(CHAR ARRAY s CHAR c BYTE POINTER err)
|
||||
BYTE i
|
||||
|
||||
FOR i=1 TO s(0)
|
||||
DO
|
||||
IF s(i)=c THEN
|
||||
err^=0 RETURN (i)
|
||||
FI
|
||||
OD
|
||||
err^=1
|
||||
RETURN (0)
|
||||
|
||||
PROC Main()
|
||||
BYTE max,i,n,pos,err
|
||||
BYTE ARRAY factors(MAX_FACTORS)
|
||||
PTR ARRAY texts(MAX_FACTORS)
|
||||
CHAR ARRAY
|
||||
s(100),tmp(100),
|
||||
t0(MAX_LEN),t1(MAX_LEN),t2(MAX_LEN),
|
||||
t3(MAX_LEN),t4(MAX_LEN)
|
||||
|
||||
texts(0)=t0 texts(1)=t1 texts(2)=t2
|
||||
texts(3)=t3 texts(4)=t4
|
||||
|
||||
DO
|
||||
PrintF("Max number (1-%B): ",MAX_NUMBERS)
|
||||
max=InputB()
|
||||
UNTIL max>=1 AND max<=MAX_NUMBERS
|
||||
OD
|
||||
|
||||
n=0
|
||||
DO
|
||||
PrintF("Number of rules (1-%B): ",MAX_FACTORS)
|
||||
n=InputB()
|
||||
UNTIL n>=1 AND n<=MAX_FACTORS
|
||||
OD
|
||||
|
||||
FOR i=0 TO n-1
|
||||
DO
|
||||
DO
|
||||
PrintF("Rule #%B (number space text):",i+1)
|
||||
InputS(s)
|
||||
pos=Find(s,' ,@err)
|
||||
IF pos=1 OR pos=s(0) THEN
|
||||
err=1
|
||||
FI
|
||||
IF err=0 THEN
|
||||
SCopyS(tmp,s,1,pos-1)
|
||||
factors(i)=ValB(tmp)
|
||||
IF factors(i)<2 THEN
|
||||
err=1
|
||||
FI
|
||||
SCopyS(texts(i),s,pos+1,s(0))
|
||||
FI
|
||||
UNTIL err=0
|
||||
OD
|
||||
OD
|
||||
|
||||
PutE()
|
||||
PrintResult(max,n,factors,texts)
|
||||
RETURN
|
||||
Loading…
Add table
Add a link
Reference in a new issue