Читайте также:
|
|
ОТЧЕТ
ПО ЛАБОРАТОРНОЙ РАБОТЕ № 1 “КВАДРАТЫ ЦЕЛЫХ ЧИСЕЛ”
КУРСА “ОСНОВЫ ИНФОРМАТИКИ”
СТ. ГР. А1-05 БЕЛОВОЙ М.П.
Москва 2011
Содержание
1. | Формулировка задачи | |
2. | Представление данных и ограничения | |
3. | Описание функций программы | |
3.1. | Иерархическая схема | |
3.2. | Прототипы функций | |
4. | Алгоритм решения задачи | |
5. | Тестовые наборы данных и реакции | |
6. | Исходный текст программы | |
7. | Описание тестирования программы | |
8. | Анализ работы по решению задачи |
Формулировка задачи
Написать программу вывода чисел и их квадратов в заданном диапазоне. При этом нужно учитывать следующее:
При запуске прграммы на экран выводится заголовок:
«Вывод квадратов целых чисел»
и на седующей строке запрос:
«Начальное число = «
на ввод целого числа.
После ввода целого числа и нажатия «Enter» выводится следующий запрос:
«Количество чисел = «
и ввод целого числа.
После ввода целого числа и нажатия «Enter» выводятся строки (строка) типа:
«Число = XXX, его квадрат = YYYYYY»
И строка с запросом:
«Повторить [Y/N]? «
При вводе «Y» программа повторяет все действия, начиная с вывода заголовка, при вводе «y» выводит сообщение:
«Работа закончена!»
и завершает программу.
Дополнительные требования к программе:
1. Разумную реакцию программы на любую входную информацию.
2. Легкость генераций двух версий программы: с диалогом на русском и английском языках.
3. Реализация в виде многофайлового проекта.
Представление данных и ограничения
Таблица 2.1. Данные и ограничения
Имя константы или переменной | Вид | Тип | Глобальная или локальная в функции | Область допустимых значений | Особые ситуации и реакции на них |
MINNUM | константа | int | глобальная | -181 | Минимальное обрабатываемое число. MINNUM>=-sqrt(32767) |
MAXNUM | константа | int | глобальная | Максимальное обрабатываемое число. MAXNUM>=sqrt(32767) | |
MINLINES | константа | int | глобальная | Минимальное количество обрабатываемых чисел. На экране должна быть выведена 1 строка результата | |
MAXLINES | константа | int | глобальная | Максимальное количество обрабатываемых чисел. Общее количество строк результатов не должно превышать количества строк на экране с учетом служебных сообщений | |
Begnum | входная переменная | int | глобальная | от MINNUM до MAXNUM | Начальное число, вводимое пользователем. Выход за ОДЗ невозможен |
Maxnum | выходная переменная | int | глобальная | от MINLINES до MAXLINES | Количество чисел, вводимое пользователем. Выход за ОДЗ невозможен |
c | промежуточная переменная | int | YesNo | от -32768 до 32767 | Буфер введенного числа. Выход за ОДЗ невозможен |
i | промежуточная переменная | int | Calc | от 0 до MAXNUM | Счетчик количества обрабатываемых чисел. Выход за ОДЗ невозможен |
k | промежуточная переменная | int | Calc | от MINNUM до MAXNUM | Текущее обрабатываемое число. Выход за ОДЗ невозможен |
n | промежуточная переменная | int | GetNum | от -32768 до 32767 | Буфер введенного числа. Выход за ОДЗ невозможен |
Описание функций программы
Иерархическая схема
main - основная функция
Title - вывод заголовка программы
printf - стандартный форматный вывод
GetPar - получение входных данных с ОДЗ
GetNum - получение целого числа в заданном диапазоне
printf
fflush – опорожнение буфера клавиатуры
scanf - стандартный форматный ввод
Calc - вычисления и вывод результатов
printf
YesNo - запрос на повторный прогон и ожидание ответа “Да/Нет”
printf
fflush
getchar - стандартный ввод символа
Finish - вывод сообщения при завершении работы программы
printf
Прототипы функций
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.
Выход: Нет.
*****/
;
Алгоритм решения задачи
Дата добавления: 2015-10-29; просмотров: 151 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Структурные параметры частиц крупно-грубооблмочных отложений (пород) на примере классификацион. Схемы Т.Блеера, Дж.Макферсона. | | | Общие впечатления |