Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

Алгоритм решения задачи

Читайте также:
  1. B. Принятия оптимального управленческого решения по наиболее важным вопросам деятельности на рынке.
  2. CRC-алгоритмы обнаружения ошибок
  3. I. 1.1. Пример разработки модели задачи технического контроля.
  4. I.5.3. Подготовка данных для задачи линейного программирования.
  5. I.5.4. Решение задачи линейного программирования.
  6. I.5.5. Просмотр и анализ результатов решения задачи.
  7. I.5.7. Mодификация (изменение) данных задачи.

ОТЧЕТ

ПО ЛАБОРАТОРНОЙ РАБОТЕ № 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 | Нарушение авторских прав


<== предыдущая страница | следующая страница ==>
Структурные параметры частиц крупно-грубооблмочных отложений (пород) на примере классификацион. Схемы Т.Блеера, Дж.Макферсона.| Общие впечатления

mybiblioteka.su - 2015-2024 год. (0.015 сек.)