Вопрос задан 15.07.2023 в 07:32. Предмет Информатика. Спрашивает Панферов Данил.

Реализовать любом языке из списка: Си/C++/C#/Pascal/Basic/JavaScript/FASM. Задано для развлечения

=)) Дан список слов, и одно слово.Список слов можно задать в любом виде: прочитать из файла (тогда нужно указать формат файла, или приложить его пример), ввести с клавиатуры, задать константой, и т.д.Слово должно вводиться с клавиатуры.Проверить, присутствуют ли в списке слова, состоящие из тех же букв (или их части), из которых состоит слово. Порядок букв не имеет значения. В искомых словах может быть меньше букв, чем в исходном. Как по количеству, так и по разнообразию. То есть, нельзя искать слова с тремя буквами "е", если в слове их только две, но можно с двумя и с одной.Пример:Список слов: рыба, рак, щука, лебедь, карась, пескарь, баня, бубен, столб, баян, барыня.Слово: рабыняВывод программы: рыба, баня, баян, барыня
0 0
Перейти к ответам

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

Внимание! Ответы на вопросы дают живые люди. Они могут содержать ошибочную информацию, заблуждения, а также ответы могут быть сгенерированы нейросетями. Будьте внимательны. Если вы уверены, что ответ неверный, нажмите кнопку "Пожаловаться" под ответом.
Отвечает Коренев Ваня.

===== PascalABC.NET =====

begin

 var СписокСлов := ReadlnString('Список слов через пробел:').ToWords;

 var ИсходныйСловарь := new Dictionary<char, integer>;

 var РабочийСловарь := new Dictionary<char, integer>;

 foreach var Символ in ReadlnString('Слово:') do

   ИсходныйСловарь[Символ] := ИсходныйСловарь.Get(Символ) + 1;

 var СтрокаВывода: string;

 foreach var Слово in СписокСлов do

 begin  

   foreach var Символ in Слово do

     РабочийСловарь[Символ] := РабочийСловарь.Get(Символ) + 1;

   var МожноПостроитьСлово := True;

   foreach var ЭлементРабочегоСловаря in РабочийСловарь do

   begin

     var Ключ := ЭлементРабочегоСловаря.Key;

     var ПределПовторовБуквы: integer;

     if ИсходныйСловарь.TryGetValue(Ключ, ПределПовторовБуквы) then

     begin  

       if ЭлементРабочегоСловаря.Value > ПределПовторовБуквы then

       begin

         МожноПостроитьСлово := False;

         break

       end

     end

     else

     begin

       МожноПостроитьСлово := False;

       break

     end  

   end;  

   if МожноПостроитьСлово then

   begin

     if СтрокаВывода <> '' then

       СтрокаВывода += ', ';

     СтрокаВывода += Слово

   end;  

   РабочийСловарь.Clear;

 end;

 Println(СтрокаВывода)

end.


0 0
Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.

Вот пример реализации данной задачи на языке JavaScript:

javascript
function findWords(word, wordList) { var sortedWord = word.toLowerCase().split('').sort().join(''); var result = []; for (var i = 0; i < wordList.length; i++) { var sortedListWord = wordList[i].toLowerCase().split('').sort().join(''); if (sortedListWord.includes(sortedWord)) { result.push(wordList[i]); } } return result; } var wordList = ['рыба', 'рак', 'щука', 'лебедь', 'карась', 'пескарь', 'баня', 'бубен', 'столб', 'баян', 'барыня']; var word = prompt('Введите слово:'); var matchingWords = findWords(word, wordList); alert('Совпадающие слова: ' + matchingWords.join(', '));

Этот код принимает список слов и одно слово от пользователя. Затем он проверяет каждое слово из списка, приводя их к нижнему регистру, сортируя буквы в алфавитном порядке и сравнивая их с отсортированным введенным словом. Если в слове из списка присутствуют все буквы из введенного слова (в любом порядке), то оно добавляется в результирующий список. Наконец, программа выводит список совпадающих слов на экран.

Вы можете скопировать этот код в файл с расширением .html и запустить его в любом современном браузере, либо выполнить его в консоли разработчика на странице веб-сайта.

0 0

Похожие вопросы

Топ вопросов за вчера в категории Информатика

Последние заданные вопросы в категории Информатика

Задать вопрос