Advertisement
Guest User

Untitled

a guest
Feb 27th, 2020
138
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.56 KB | None | 0 0
  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. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement