Смекни!
smekni.com

Программа исследования функций (стр. 1 из 2)

Программа исследования функций

Пояснительная записка к курсовой работе по дисциплине “Основы алгоритмизации и программирования”

Выполнил : студент гр. 96ВВ3 Гаврищенко О.Н.

Пензенский государственный технический университет, Кафедра “Вычислительная Техника”

1997

Введение

В настоящее время индустрия производства компьютеров и программного обеспечения для них является одной из наиболее важных сфер экономики развитых стран. Ежегодно в мире продаются десятки миллионов компьютеров. Только в США объем продаж компьютеров составляет десятки миллионов долларов и постоянно продолжает расти.

В чем же причины такого стремительного роста индустрии персональных компьютеров и их сравнительная выгодность для многих деловых применений?

1. Простота использования, обеспеченная с помощью диалогового способа взаимодействия с компьютером.

2. Относительно высокие возможности по переработке информации, наличие программного обеспечения, а так же мощных систем для разработки нового программного обеспечения.

Имеются и другие причины.

Язык С++ - универсальный язык общего назначения, область приложений которого - программирование систем в самом широком смысле. Кроме этого, С++ успешно используется как во многих приложениях, так и в мощных операционных системах. Реализация С++ осуществлена для машин в диапазоне от самых простых персональных компьютеров до самых мощных суперкомпьютеров и для всех операционных систем.

1 Постановка задачи

Задача курсовой работы состоит в разработки системы , позволяющей исследовать некоторые функций:

y = sin(x);

y = cos(x);

Cистема должна обеспечивать выполнение следующих функций:

Выбор из предложенного списка исследуемой функции;

Задание диапазона (диапазонов) изменения параметров;

Вывод значений функции на экран и при необходимости в файл , имя которого задаётся пользователем;

Вывод на экран графика функции.

2 Описание программы

2.1 Общие сведения

Данная программа предназначена для исследования математических функций (см. пункт 1). Программа do.cpp разработана на алгоритмическом языке Turbo C++ v.3.0. , и предназначена для использования на персональном компьютере IBM PC/XT или совместимым с ним.

2.2 Краткое описание метода решения задачи

Работа с программой организована в графическом режиме 640х480 точек , 16 цветов через меню, по пунктам которого можно передвигать цветовой курсор с помощью клавиш управления курсором.

Основное меню описано при помощи массива структур menu_ на 5 элементов , который заначительно упрощает работу программы при обращении к этому меню. Каждый пункт основного меню (кроме "Выход") содержит в себе подменю , каждый пункт которого вызывает какие-либо действия программы.

Главное меню состоит из следующих пунктов:

"Функция" - выбор исследуемой функции;

"Диапазон" - задание минимального и максимального значения Х для отображения графика функции и занесения значений в таблицу;

"Масштаб" - задание масштаба по оси X;

"Таблица" - вывод значений функции на экран или в файл (имя файла задаётся пользователем) , изменение числа выволимых значений;

"Выход" - завершение работы программы.

Программа разбита на функциональные модули , работой которых управляет основная программа. Опрос клавиатуры организован с помощью оператора getch() , который возвращает код нажатой клавиши , который затем анализируется программой. В зависимости от нажатой пользователем клавиши программа анализирует её код и производит выбор того или иного действия , выбор очередного пункта меню или подменю , выход из программы.

2.3 Функциональное назначение

Программа позволяет исследовать определённые заданием функции , построить их графики на любом отрезке их значений , занести значения функций в таблицу и вывести их на экран или в файл , программа также позволяет изменять масштаб отображаемой функции , изменять диапазон её значений.

2.4 Описание данных

Структура , массив которых образует меню , состоит из 3 полей:

1. num - поле целого типа (int) - содержит количество пунктов меню;

2. onum - поле целого типа (int) - содержит количество опрашиваемых пунктов меню;

3. capt - массив символов (по 20 символов на элемент) из 6 элементов - содержит имена пунктов меню.

Глобальные переменные,которые использует программа:

Название Тип Начальное значение Назначение
MinX float -4 Начальное значение Х
MaxX float 4 Начальное значение Y
MX float 80 Масштаб по оси Х
MY float 80 Масштаб по оси Y
CF int 0 Номер функции
SC int 20 Число строк в таблице

2.5 Структура программы

Данная программа разработана на алгоритмическом языке С++ и состоит из следующих функциональных модулей:

1. Функция fun - Возвращает 0 , если невозможно вычислить значение функции при заданном значении Х, иначе вычисляет значение Y и возвращает 1;

2. Функция output - Осуществляет вывод графика функции на экран с учётом всех параметров;

3. Функция use_scroll - Осуществляет обработку вертикального меню;

4. Функция use_menu - Осуществляет обработку главного меню;

5. Функция InputFloat - Осуществляет ввод вещественного числа в графическом режиме;

6. Функция InputString - Осуществляет ввод строки символов в графическом режиме;

7. Функция prttabl - Осуществляет вывод таблицы в файл или на экран;

8. Основная программа Main - Заполняет массив меню , организует взаимодействие всех функциональных модулей.

2.6 Спецификация на функциональные модули

2.6.1 Функция fun

Назначение: Возвращает 0 , если невозможно вычислить значение функции при заданном значении Х, иначе вычисляет значение Y и возвращает 1;

Входные данные: x - значение переменной х , *y - имя функции.

Выходные данные: fun.

Не вызывает никаких функций.

Вызывается из output: rt=fun(x,&y);

prttabl: if (fun(x,&y)) fprintf (f,"Fun(%f)=%f\n\f",x,y);

2.6.2 Функция output

Назначение: Осуществляет вывод графика функции на экран с учётом всех параметров.

Входные данные: нет.

Выходные данные: нет.

Вызывает функцию fun.

Вызывается из основной программы: output();

В пункте 2.11 приведён алгоритм работы данной функции.

2.6.3 Функция use_scroll

Назначение: Осуществляет обработку вертикального меню - опрос клавиатуры , отображение пунктов подменю , передвижение курсора , при нажатии клавиши Enter возврвщает код выбранного пункта меню , при нажатии клавиши ESC возвращает -1.

Входные данные: menu_m - название массива меню , х-координата х вывода меню.

Выходные данные: use_scroll.

Не вызывает никаких функций.

Вызывается из основной программы: CF=use_scroll(fun,0);

switch (se_scroll(dia,105))

switch (se_scroll(mas,205))

switch (se_scroll(tabl,305))

2.6.4 Функция use_menu

Назначение: Осуществляет обработку главного меню - вывод пунктов меню на экран , отображение цветового курсора , при нажатии клавиши Enter возврвщает код выбранного пункта меню , при нажатии клавиши ESC возвращает -1.

Входные данные: menu_m - название массива меню.

Выходные данные: use_menu.

Не вызывает никаких функций.

Вызывается из основной программы: switch (use_menu(m1))

2.6.5 Функция InputFloat

Назначение: Осуществляет ввод и редактирование вещественного числа в графическом режиме , возвращает введённое число.

Входные данные: x1,y1,x2,y2 - координаты окна редактирования , last - текущее значение данного параметра.

Выходные данные:InputFloat.

Не вызывает никаких функций.

Вызывается из основной программы:MinX=InputFloat(210,30,310,45,MinX);

MaxX=InputFloat(210,50,310,65,MaxX);

MY=InputFloat(310,30,410,55,MY);

2.6.6 Функция InputString

Назначение: Осуществляет ввод и редактирование строки символов в графическом режиме , возвращает указатель на введённую строку.

Входные данные: x1,y1,x2,y2 - координаты окна редактирования ,* last - указатель на строку.

Выходные данные: *InputString.

Не вызывает никаких функций.

Вызывается из основной программы: prttabl(Inputstring(410,30,510,45,"Prn"));

2.6.7 Функция PrtTabl

Назначение: Осуществляет вывод таблицы в файл или на экран.

Входные данные: *fname - указатель на имя файла , если имя файла "con" то вывод осуществляется на экран в текстовом режиме.

Выходные данные: нет.

Вызывает функцию fun.

Вызывается из основной программы: prttabl("con\x0");

prttabl(Inputstring(410,30,510,45,"Prn"));

2.7 Описание работы основной программы

Основная программа осуществляет следующие действия:

Заполнеие массива меню.

Установку начальных пунктов меню.

Установку графического режима , очистку экрана.

Вызов функции оформления экрана.

Опрос меню , вызов функций , соответствующих каждому из выбраннх пунктов.

Выход из программы.

Основная программа использует следующие функции: output , use_scroll , use_menu , InputFloat , Inputstring , prttabl.

Далее в пункте 2.10 приведён подробный алгоритм работы основной программы.

2.8 Схема взаимодействия функциональных модулей

2.9 Описание алгоритма основной программы и функции Output

В нижеприведённом алгоритме работы основной программы отображены следующие блоки:

Блоки 0,30 - Начало программы , функции;

Блоки 11,12,14,15,18,19,23,26,40,41 - Операции ввода,вывода;

Блоки 1,2,3,5,13,21,28,32,33,38 - Операции действия , вычисления , присваивания.

Блоки 6,8,16,20 - Операция ветвления.

Блоки 31,37,39,44 - Условная операция.

Блоки 4,7,8,17,22,24,25,36 - Вызов функции.

Блоки 29,45 - Конец программы,функции.

2.10 Алгоритм работы основной программы

2.11 Алгоритм работы функции output

3 План отладки программы

При написании данной программы был выбран метод нисходящего программирования, поскольку все функции, используемые для вводаданных, могут быть написаны и проверены поочередно. Примерный порядок написания программы следующий: