меню був обраний зараз. У разі натискання на клавішу enter залежно від значення цієї змінної викликається одна з чотирьох функцій start (), options (), about () або стандартна функція exit (int). Наприкінці при природному ході програми функція menu () викликає сама себе. p align="justify"> Функція start () запускає алгоритм вирішення задачі і містить в собі підменю для визначення джерела послідовності.
У разі вибору пункту меню Createwith-> File послідовність завантажується з файлу Z: open.txt. Якщо цього файлу не існує, програма повідомляє про це і переходить в меню. Якщо був обраний пункт меню Createwith-> Generator , то за допомогою функції posled_rand (posled *); генерується послідовність з 48 елементів .
Таблиця 2.2.2 - Функції для роботи з послідовностями - ALG.CPP
Назва функцііОпісаніе функцііvoid posled_new (int n, posled * p); Функція заповнює структуру posled * p, передану за вказівником, порожній послідовністю розміру n.void posled_delete (posled * p); Функція звільняє пам'ять, займану последовательностью.void posled_rand (posled * p); Функція заповнює структуру випадковою послідовністю, яка залежить від глобальних переменних.void posl_save (char * path, posled * p) Функція зберігає послідовність у файлі з шляхом доступу, зазначеним у рядку path.void posl_open (char * path, posled * p) Функція завантажує послідовність з файлу з шляхом доступу, зазначеним у рядку path, в структуру p.search index_search (posled * p, int n) Функція виконує пошук длиннейшей підпослідовності однакових чисел, що зустрічається n-й раз. Якщо такої не знаходиться, індекс першого символу підпослідовності дорівнює -1. p align="justify"> Верхня межа для генератора чисел задається в MENU-> OPTIONS і дорівнює за замовчуванням 10. Після генерації послідовності вона роздруковується на екрані і відбувається пошук підпослідовностей. Потім виділяються елементи підпослідовностей, і внизу екрану виводиться їх довжина. Функція рекурсивно викликає себе наприкінці природного ходу програми.
Функція options () створює графічний інтерфейс для зміни параметрів роботи основного алгоритму. Ці параметри - можливість записувати і зчитувати з різних файлів (open.txt і save.txt) або з одного і того ж (open.txt), а так само верхня межа генератора випадкових чисел randmax. Управління проводиться стрілками вправо і вліво з клавіатури, вибір потрібного пункту меню - стрілками вгору і вниз. Мінлива randmax обмежена інтервалом значень [1 .. 99]. Функція рекурсивно. p align="justify"> Функція about () дозволяє отримати інформацію, записану в файлі about.txt. Якщо цього файлу немає, програма пише про це користувачеві. По завершенню виконання функції після натискання будь-якої клавіші ...