Изучаем язык BASIC. Занятие 28 Нахождение слов по некоторым признакам и их перестановка

Раздел Информатика
Класс -
Тип Конспекты
Автор
Дата
Формат doc
Изображения Нет
For-Teacher.ru - все для учителя
Поделитесь с коллегами:

Занятие 28

Задана строка символов, поменять местами самое длинное слово с самым коротким.

CLS

INPUT A$

A$=A$ + "‗"

K = 1 : S=0

L = LEN(A$)

DO

N = INSTR (K,A$,"‗")

S = S + 1

SL$(S) = MID$(A$, K, N-K)

SK(S)=LEN(SL$(S))

K = N + 1

LOOP WHILE N <> L

min = 1000: max = -1000

FOR I = 1 TO S

IF SK(I) < min THEN min = SK(I) : D = I

IF SK(I) > max THEN max = SK(I) : D1 = I

NEXT I

SWAP SL$(D), SL$(D1)

FOR I = 1 TO S

PRINT SL$(D); "‗";

NEXT I

Задана строка символов, поменять местами второе слово с четным количеством букв с последним.

Ввод

FOR I = 1 TO S

IF SK(I) /2= SK(I) \2 THEN D = D + 1: M=I

IF D = 2 THEN EXIT FOR

NEXT I

SWAP SL$(M), SL$(S)

FOR I = 1 TO S

PRINT SL$(D); "‗";

NEXT I

Задана строка символов, поменять местами предпоследнее слово с нечетным количеством букв с первым.

Ввод

FOR I = S TO 1 STEP -1

IF SK(I) /2 <> SK(I) \2 THEN D = D + 1: M=I

IF D = 2 THEN EXIT FOR

NEXT I

SWAP SL$(M), SL$(1)

FOR I = 1 TO S

PRINT SL$(D); "‗";

NEXT I

Найти самое длинное слово, начинающееся с согласной буквы и распечатать его.

Ввод

max = -1000

B$ = "QqWwRrTtPpSsDdFfGgHhJjKkLlZzXxCcVvBbNnMm"

FOR I =1 TO LEN(B$)

X$ = MID$(B$,I,1)

FOR J =1 TO S

IF SK(J)> max AND X$ = MID$(SL$(J),1,1) THEN max = SK(J) : D = J

NEXT J, I

PRINT SL$(D)

Напечатать все слова, начинающееся с двух согласных букв.

Ввод

B$ = "QqWwRrTtPpSsDdFfGgHhJjKkLlZzXxCcVvBbNnMm"

FOR I =1 TO LEN(B$)

X$ = MID$(B$,I,1)

FOR J =1 TO S

IF X$ = MID$(SL$(J),1,1) AND X$ = MID$(SL$(J),2,1) THEN PRINT SL$(J); "‗";

NEXT J, I

Домашнее задание.

Задана строка символов, напечатать все слова, заканчивающиеся на 2 согласные буквы, если таких нет сообщить об этом.

Ввод

F = 0

B$ = "QqWwRrTtPpSsDdFfGgHhJjKkLlZzXxCcVvBbNnMm"

FOR I =1 TO LEN(B$)

X$ = MID$(B$,I,1)

FOR J =1 TO S

IF X$ = MID$(SL$(J),S-1,1) AND X$ = MID$(SL$(J),S,1) THEN F=1: PRINT SL$(J); "‗";

NEXT J, I

IF F = 0 THEN PRINT "Слов нет"

Задана строка символов, выбрать слова, у которых две последние буквы гласные, если таких нет, то записать все слова в обратном порядке.

IF F = 0 THEN

FOR I = S TO 1 STEP -1

PRINT SL$(I); "‗";

NEXT I

END IF

© 2010-2022