Для выполнения указанных задач в программе QBASIC можно написать соответствующий код. Рассмотрим каждую задачу по отдельности.
Часть 1: Составление слов из заданного
Задача: Из слова "АЛГОРИТМИЗАЦИЯ" нужно проверить, можно ли составить слова: "АЛГОРИТМ", "РИТМ", "ГОРА", "РАЦИЯ", "ЗИМА".
Для этого нужно проверить, содержатся ли все буквы из каждого слова в заданном исходном слове. Также важно учесть количество повторений букв.
Часть 2: Определение самого длинного из трёх введённых слов
Задача: Ввести три слова и определить, какое из них является самым длинным.
Программа на языке QBASIC
CLS
' Задача 1: Проверка возможности составления слов
PRINT "Задача 1: Проверка составления слов из слова 'АЛГОРИТМИЗАЦИЯ'"
DIM sourceWord AS STRING
sourceWord = "АЛГОРИТМИЗАЦИЯ"
DIM wordsToCheck(5) AS STRING
wordsToCheck(1) = "АЛГОРИТМ"
wordsToCheck(2) = "РИТМ"
wordsToCheck(3) = "ГОРА"
wordsToCheck(4) = "РАЦИЯ"
wordsToCheck(5) = "ЗИМА"
FOR i = 1 TO 5
DIM tempSource AS STRING
tempSource = sourceWord
DIM currentWord AS STRING
currentWord = wordsToCheck(i)
DIM isPossible AS INTEGER
isPossible = 1 ' Флаг возможности составления слова
FOR j = 1 TO LEN(currentWord)
DIM letter AS STRING
letter = MID$(currentWord, j, 1) ' Берём очередную букву из проверяемого слова
DIM pos AS INTEGER
pos = INSTR(tempSource, letter) ' Проверяем, есть ли буква в исходном слове
IF pos > 0 THEN
tempSource = LEFT$(tempSource, pos - 1) + MID$(tempSource, pos + 1) ' Удаляем найденную букву
ELSE
isPossible = 0 ' Если буквы нет, то составить слово невозможно
EXIT FOR
END IF
NEXT j
IF isPossible = 1 THEN
PRINT "Слово "; currentWord; " можно составить."
ELSE
PRINT "Слово "; currentWord; " нельзя составить."
END IF
NEXT i
PRINT
PRINT "Задача 2: Определение самого длинного из трёх слов"
' Ввод трёх слов
DIM word1 AS STRING, word2 AS STRING, word3 AS STRING
PRINT "Введите первое слово: "; : INPUT word1
PRINT "Введите второе слово: "; : INPUT word2
PRINT "Введите третье слово: "; : INPUT word3
' Поиск самого длинного слова
DIM maxLength AS INTEGER
DIM longestWord AS STRING
maxLength = LEN(word1)
longestWord = word1
IF LEN(word2) > maxLength THEN
maxLength = LEN(word2)
longestWord = word2
END IF
IF LEN(word3) > maxLength THEN
maxLength = LEN(word3)
longestWord = word3
END IF
PRINT "Самое длинное слово: "; longestWord; " (длина: "; maxLength; " символов)"
END
Объяснение программы
Часть 1: Проверка составления слов
- Заданное слово "АЛГОРИТМИЗАЦИЯ" сохраняется в переменной
sourceWord
.
- Слова, которые нужно проверить, сохраняются в массиве
wordsToCheck
.
- Для каждого слова из массива:
- Проверяется, содержатся ли его буквы в исходном слове.
- Если буква найдена, она удаляется из временной копии исходного слова (
tempSource
), чтобы учесть количество повторений букв.
- Если все буквы найдены, слово можно составить; иначе — нельзя.
Часть 2: Определение самого длинного слова
- Пользователь вводит три слова.
- Сравнивается длина каждого слова.
- Находится слово с максимальной длиной, которое затем выводится.
Пример работы программы
Вывод для задачи 1:
Задача 1: Проверка составления слов из слова 'АЛГОРИТМИЗАЦИЯ'
Слово АЛГОРИТМ можно составить.
Слово РИТМ можно составить.
Слово ГОРА можно составить.
Слово РАЦИЯ можно составить.
Слово ЗИМА можно составить.
Вывод для задачи 2:
Задача 2: Определение самого длинного из трёх слов
Введите первое слово: АЛГОРИТМ
Введите второе слово: РАЦИЯ
Введите третье слово: ИНФОРМАТИКА
Самое длинное слово: ИНФОРМАТИКА (длина: 11 символов)
Эта программа решает обе задачи и помогает наглядно увидеть их выполнение.