44 lines
1 KiB
Text
44 lines
1 KiB
Text
PROGRAM MIDDLE
|
|
|
|
!$DOUBLE
|
|
|
|
FUNCTION LUNG(N)
|
|
LUNG=LEN(STR$(INT(ABS(N))))+1
|
|
END FUNCTION
|
|
|
|
FUNCTION NCNT(N)
|
|
NCNT=VAL(MID$(STR$(INT(ABS(N))),(LUNG(N)-1)/2,3))
|
|
END FUNCTION
|
|
|
|
FUNCTION EVEN(N)
|
|
EVEN=INT(N/2)=N/2
|
|
END FUNCTION
|
|
|
|
PROCEDURE NUMBER_EXAM(N->R$)
|
|
R$="" LG%=LUNG(N)-2
|
|
IF EVEN(LG%) THEN R$="?EVEN," END IF
|
|
IF LG%<3 THEN
|
|
R$=R$+"ONLY"+STR$(LG%)+" DIGIT"
|
|
IF LG%=1 THEN
|
|
R$=R$+"S"
|
|
END IF
|
|
END IF
|
|
IF RIGHT$(R$,1)="," THEN R$=LEFT$(R$,LEN(R$)-1) EXIT PROCEDURE END IF
|
|
IF LEFT$(R$,1)="?" THEN EXIT PROCEDURE END IF
|
|
IF R$<>"" THEN R$="?"+R$ EXIT PROCEDURE END IF
|
|
R$=STR$(NCNT(N))
|
|
IF LEFT$(R$,1)=" " THEN R$=MID$(R$,2) END IF
|
|
IF LEN(R$)=1 THEN R$="00"+R$ END IF
|
|
IF LEN(R$)=2 THEN R$="0"+R$ END IF
|
|
END PROCEDURE
|
|
|
|
BEGIN
|
|
DATA(123,12345,1234567,987654321,10001,-10001,-123,-100,100,-12345)
|
|
DATA(1,2,-1,-10,2002,-2002,0)
|
|
FOR I%=1 TO 17 DO
|
|
READ(N)
|
|
PRINT(N;" ",)
|
|
NUMBER_EXAM(N->R$)
|
|
PRINT(R$)
|
|
END FOR
|
|
END PROGRAM
|