Staer1188
15.10.2020 15:11

составить программу на паскаль: для заданного достаточно длинного слова найти в имеющемся словаре все слова, в которых использованы только буквы, входящие в заданное слово(с учетом кратности вхождения)

Нажмите на рекламу ниже и сразу увидите ответ
Популярные вопросы:
Ответ:
маша3025
31.05.2020 14:51
S - Заданная символьная строка
s2 - Заданное слово
Идея проста: мы проходим по заданной строке и копируем подстроку, начиная с символа i, с количеством символов, равным количеством символов заданного слова. Например:
Символьная строка:
34строка3254строка
Заданное слово:
строка
Мы просто берём и проходим циклом
34строка3254строка
34строка3254строка
34строка3254строка
...
и т.д. до самого конца. Если рассматриваемая нами подстрока равна заданному слову, то мы увеличиваем счётчик k на 1, после завершения цикла мы просто возвращаем значение нашего счётчика - количество вхождений заданного слова в строку.
P.S. Мы идём циклом не от 1 до length(s), а от 1 + l1 - l2. К примеру в нашей строке
нет смысла рассматривать подстроку, начиная отсюда
34строка3254строка
т.к. символов в ней явно меньше чем в самом заданном слове, следовательно, дальше оно нам уже не попадётся:)
Исходный код в приложении.

Напишите функцию, которая определяет, сколько раз входит в символьную строку заданное слово.
0,0(0 оценок)
Ответ:
vlad1446
15.03.2021 10:52

На C++

 

#include <iostream>
using std::cout;

using std::cin;
using std::endl;
#include <cstdlib>
using std::rand;
using std::srand;
#include <ctime>
using std::time;

int main()
{
   int B[4][5];
   int sum[5] = { 0 };
   long product = 1;

   srand(time(0));

   //Инициализировать массива значениями от 0 до 9 и вывести таблицу на экран
   for(int i = 0; i < 4; i++)
   {
      for(int j = 0; j < 5; j++)
      {
         B[i][j] = rand() % 10;
         cout << B[i][j] << ' ';
      }
      cout << endl;
   }
   cout << endl;

   //Записать в одномерный массив сумму эллементов столбца
   for(int i = 0; i < 5; i++)
   {
      for(int j = 0; j < 4; j++)
      {
         sum[i] += B[j][i];
      }
   }


   //Вывести на экран значения одномерного массива
   for(int i = 0; i < 5; i++)
   {
      cout << sum[i] << ' ';
   }
   
   //Вычесление произведения(умножения)
   for(int i = 0; i < 5; i++)
   {
      product *= sum[i];
   }

   cout << "\n\nProduct = " << product << endl;

 

   cin.get();
   return 0;
}

0,0(0 оценок)
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота