- Преподавателю
- Информатика
- Изучаем язык BASIC. Занятие 28 Нахождение слов по некоторым признакам и их перестановка
Изучаем язык BASIC. Занятие 28 Нахождение слов по некоторым признакам и их перестановка
Раздел | Информатика |
Класс | - |
Тип | Конспекты |
Автор | Гегелашвили Т.П. |
Дата | 28.08.2015 |
Формат | doc |
Изображения | Нет |
Занятие 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