
Записать программу, выясняющую, можно ли из букв слова X составить слово Y. (Паскаль)


Ответы на вопрос

Ответ:
var
mn, st: set of char;
s, s1: string;
f: char;
i, k, p: integer;
begin
writeln('Введите слово X');
readln(s);
for i := 1 to length(s) do
mn := mn + [s[i]];
writeln('Введите слово Y');
readln(s1);
for i := 1 to length(s1) do
st := st + [s1[i]];
if (st <= mn) and (length(s1) <= length(s)) then writeln('Можно составить') else writeln('Нелья');
end.
Объяснение:



Для написания программы на языке Паскаль, которая будет определять, можно ли из букв слова X составить слово Y, можно использовать алгоритм с подсчетом количества вхождений каждой буквы в оба слова. Вот пример реализации этой программы:
pascalprogram CanFormWord; // Функция для подсчета количества вхождений каждой буквы в слове function CountLetters(word: string): array of Integer; var counts: array[Char] of Integer; ch: Char; begin // Инициализируем массив счетчиков нулями for ch := 'a' to 'z' do counts[ch] := 0; // Подсчитываем количество вхождений каждой буквы for ch in word do Inc(counts[ch]); Result := counts; end; // Функция, которая проверяет, можно ли из букв слова X составить слово Y function CanFormWord(X, Y: string): Boolean; var countX, countY: array of Integer; ch: Char; begin // Если длины слов различаются, то невозможно составить слово Y из букв слова X if Length(X) <> Length(Y) then begin Result := False; Exit; end; // Получаем массивы с количеством вхождений букв в слова X и Y countX := CountLetters(X); countY := CountLetters(Y); // Сравниваем количество вхождений каждой буквы в словах X и Y for ch := 'a' to 'z' do begin if countX[ch] < countY[ch] then begin Result := False; Exit; end; end; Result := True; end; var X, Y: string; begin // Вводим слова X и Y Write('Введите слово X: '); Readln(X); Write('Введите слово Y: '); Readln(Y); // Проверяем, можно ли составить слово Y из букв слова X if CanFormWord(X, Y) then Writeln('Можно составить слово Y из букв слова X.') else Writeln('Невозможно составить слово Y из букв слова X.'); end.
Программа принимает два слова (X и Y) от пользователя и затем вызывает функцию CanFormWord
, которая проверяет, можно ли из букв слова X составить слово Y. Если это возможно, программа выведет сообщение "Можно составить слово Y из букв слова X.", в противном случае выведет "Невозможно составить слово Y из букв слова X.".


Похожие вопросы
Топ вопросов за вчера в категории Другие предметы

Последние заданные вопросы в категории Другие предметы
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili