RosettaCodeData/Task/Amb/ERRE/amb.erre
2016-12-05 23:44:36 +01:00

50 lines
1.2 KiB
Text

PROGRAM AMB
!
! for rosettacode.org
!
!$KEY
DIM SET1$[2],SET2$[2],SET3$[2],SET4$[2]
FUNCTION WORDS_OK(STRING1$,STRING2$)
WORDS_OK=(RIGHT$(STRING1$,1)=LEFT$(STRING2$,1))
END FUNCTION
PROCEDURE AMB(SET1$[],SET2$[],SET3$[],SET4$[]->RESULT$)
RESULT$="" ! Empty string, e.g. fail
FOR A=0 TO 2 DO
FOR B=0 TO 2 DO
FOR C=0 TO 2 DO
FOR D=0 TO 2 DO
IF WORDS_OK(SET1$[A],SET2$[B]) AND WORDS_OK(SET2$[B],SET3$[C]) AND WORDS_OK(SET3$[C],SET4$[D]) THEN
RESULT$=SET1$[A]+" "+SET2$[B]+" "+SET3$[C]+" "+SET4$[D]
EXIT PROCEDURE
END IF
END FOR
END FOR
END FOR
END FOR
END PROCEDURE
BEGIN
PRINT(CHR$(12);) ! CLS
SET1$[0]="the" SET1$[1]="that" SET1$[2]="a"
SET2$[0]="frog" SET2$[1]="elephant" SET2$[2]="thing"
SET3$[0]="walked" SET3$[1]="treaded" SET3$[2]="grows"
SET4$[0]="slowly" SET4$[1]="quickly" SET4$[2]=""
AMB(SET1$[],SET2$[],SET3$[],SET4$[]->TEXT$)
IF TEXT$<>"" THEN
PRINT("Correct sentence would be:")
PRINT(TEXT$)
ELSE
PRINT("Failed to fine a correct sentence.")
END IF
PRINT
PRINT("Press any key to exit.")
REPEAT
GET(Z$)
UNTIL LEN(Z$)<>0
END PROGRAM