- •1. Формулировка задачи
- •2. Представление данных и ограничения
- •3. Описание функций программы
- •3.1. Иерархическая схема
- •3.2. Прототипы функций
- •4. Алгоритм решения задачи
- •5. Тестовые наборы данных и реакции
- •6. Исходный текст программы
- •7. Описание тестирования программы
- •Анализ работы по решению задачи
3. Описание функций программы
3.1. Иерархическая схема
main - основная функция
Title - вывод заголовка программы
printf - стандартный форматный вывод
GetPar - получение входных данных с ОДЗ
GetNum - получение целого числа в заданном диапазоне
printf
fflush – опорожнение буфера клавиатуры
scanf - стандартный форматный ввод
Calc - вычисления и вывод результатов
printf
YesNo - запрос на повторный прогон и ожидание ответа “Да/Нет”
printf
fflush
getchar - стандартный ввод символа
Finish - вывод сообщения при завершении работы программы
printf
3.2. Прототипы функций
void Title ( char *text )
/*****
|
Вход: |
Текст для вывода на экран. |
|
Действие: |
С новой строки выводит текст сообщения на экран. |
|
Выход: |
Нет. |
*****/
;
void GetPar ( void )
/*****
|
Вход: |
Нет. |
|
Действие: |
Получает входные данные Begnum и Maxnum с контролем на ОДЗ и совместимость и корректирует значение Maxnum при необходимости. |
|
Выход: |
Нет. |
*****/
;
int GetNum ( char *query, /* текст запроса целого числа */
int minnum, /* нижняя граница числа */
int maxnum /* верхняя граница числа */
)
/*****
|
Вход: |
См. аргументы. Считается, что minnum < = maxnum. |
|
Действие: |
С новой строки выводит текст запроса query, затем выводит " = " , опорожняет буфер входного потока и ожидает ввода пользователем целого числа. |
|
Выход: |
Возвращает число в указанном диапазоне. |
|
ПРИМЕЧАНИЕ: |
При выходе за диапазон возвращается значение ближайшей границы при попытке ввода не числа, нарушении правил набора целого числа возвращает значения середины диапазона. |
/*****
;
void Calc ( void )
/*****
|
Вход: |
Нет. |
|
Действие: |
Исходя из значений Begnum и Maxnum, вычисляет квадраты заданных чисел и выводит строки результата вида: "Число = ххх, его квадрат = ууууу". |
|
Выход: |
Нет. |
*****/
;
int YesNo ( char *query )
/*****
|
Вход: |
Текст запроса query типа "Да/Нет". |
|
Действие: |
С новой строки выводит текст запроса, выводит " [Y/N]? ", опорожняет буфер входного потока и ожидает реакцию пользователя. |
|
Выход: |
Возвращает 1 при нажатии клавиши 'Y' или 'y', иначе 0. |
*****/
;
void Finish ( void )
/*****
Вход: Нет.
Действие: Дважды переводит строку и выводит текст FINAL.
Выход: Нет.
*****/
;
