Примеры программ на языке QBASIC

Поиск вхождения S2 в S1 с разрядкой по В.Мартьянову


REM  Поиск вхождения S2 в S1 с разрядкой по В.Мартьянову
CLS
INPUT "Введите S1: ", S1$: L1 = LEN(S1$)
INPUT "Введите S2: ", S2$: L2 = LEN(S2$)
FOR H = 1 TO L1
  IF (H = 1) OR (L2 > 1) THEN
     FOR I = 1 TO L1 - (L2 - 1) * H
	IF MID$(S1$, I, 1) = MID$(S2$, 1, 1) THEN
	   FOR J = 2 TO L2
	     IF MID$(S1$, I + (J - 1) * H, 1) <> MID$(S2$, J, 1) THEN GOTO m1
	   NEXT J
	   PRINT "Шаг: "; H - 1, "Позиции: "; I;
	   FOR K = 1 TO L2 - 1: PRINT "-"; I + K * H; : NEXT K: PRINT
	   K = 1
m1:   END IF
     NEXT I
   END IF
NEXT H
IF K = 0 THEN PRINT "Строка S2 не входит в S1"
END