SHARE
TWEET

Untitled

a guest Feb 27th, 2020 95 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #include <iostream> //подключение библиотеки для команд ввода и вывода текста
  2. #include <string> //подключение библиотеки для использования переменных типа строка
  3. #include <windows.h> // подключения библиотеки для русского языка
  4. #include <cstdlib> // Подключение библиотеки для изменения темы консоли
  5. #include <time.h> // Подключение библиотеки для генерации случайных чисел
  6. using namespace std;
  7. int main() { // главная функция, с неё начинается выполнение программы
  8.     system("color F0"); // смена заднего цвета консоли на белый и цвета текста на чёрный
  9.     SetConsoleOutputCP(1251); //устанавливает кодировку вывода на консоль
  10.     SetConsoleCP(1251); // устанавливает кодировку ввода из консолиsrand(time(NULL)); // команда для работы генератора случайных чисел
  11.     int a = 0, max = 0, lex = 0, l = 0, r = 0, element = 200;
  12.     /* инициализируются переменные,а-счётчик,max-длина проверяемого слова для сравнения с длиной максимального,
  13.     lex-длина самого длинного слова,l-позиция 1 буквы проверяемого слова,
  14.     r-счётчик,element-изначальная длина текста*/
  15.     string max_word, kek; // инициализация переменных max_word для записи туда самого длинного слова,kek-текст
  16.     for (int a = 0; a < 200; a++) { // цикл заполнения текстом переменную kek
  17.         kek += rand() % 25 + 65; //в кек вписываются случайные буквы английского алфавита
  18.         if (rand() % 25 < 6) { // цикл для добавления пробелов между словами, уменьшая число 10 мы уменьшаем частоту встречи пробелов
  19.             kek += 32; //добавление пробела перед буквой
  20.             element++; // увеличение длины текста на 1
  21.         }
  22.     }
  23.     for (a; a < element; a++) { // цикл для нахождения самого длинного слова
  24.         while (a < element && int(kek.at(a)) != 32) { // цикл работает пока не закончится текст и пока не найдётся пробел
  25.             max++; // увеличение длины проверяемого слова на 1
  26.             a++; // увеличение счётчика
  27.         }
  28.         if (max == lex) { // если длина проверяемого слова равна длине максимального слова,то они оба выведутся
  29.             r = 1;//r работает условия для вывода
  30.             l = a - max; //вычисление позиции 1 буквы слова
  31.             max_word += " и "; // добавление строки для удобства
  32.             while (a > l) { // запись слова в переменную max_word
  33.                 max_word += kek.at(l); // запись слова посимвольно
  34.                 l++; // следующий символ
  35.             }
  36.         }
  37.         if (max > lex) { // смена максимального
  38.             r = 0; // слово 1 ,а не несколько
  39.             l = a - max;//вычисление позиции 1 буквы слова
  40.             lex = max; // lex присваивается длина рассматриваемого слова
  41.             max_word = ""; // стирается предыдущее слово
  42.             while (a > l) { // запись слова в переменную max_word
  43.                 max_word += kek.at(l); // запись слова посимвольно
  44.                 l++; // следующий символ
  45.             }
  46.         }
  47.         max = 0; // счётчик длины зануляется
  48.     }
  49.     cout << kek << endl; // вывод текста
  50.     if (r == 1) { // проверяется условия нескольких слов
  51.         cout << "Самые длинные слова-" << max_word << " Их длина-" << lex << endl; // вывод текстов
  52.     }
  53.     else // если слово 1
  54.         cout << "Самое длинное слово-" << max_word << " Его длина-" <<lex << endl; // вывод текстов
  55.     system("pause"); //остановка для просмотра программы
  56. }
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
Top