КУРСОВИЙ ПРОЕКТ
1.42M
Category: programmingprogramming

Курсовий проект. Побудова графіку функції за наданим користувачем рядком, що містить припустимий опис функції

1. КУРСОВИЙ ПРОЕКТ

КРЕМЕНЧУЦЬКИЙ НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ
ІМЕНІ МИХАЙЛА ОСТРОГРАДСЬКОГО
КАФЕДРА АВТОМАТИЗАЦІЇ ТА КОМП’ЮТЕРНО-ІНТЕГРОВАНИХ ТЕХНОЛОГІЙ
КУРСОВИЙ ПРОЕКТ
З дисципліни “Програмування”
на тему:
«Побудова графіку функції за наданим користувачем рядком,
що містить припустимий опис функції»
x^2
Виконав студент 2 курсу групи СІ-15-1: Головач Андрій

2.

Тема: побудова графіку функції за наданим
користувачем
рядком,
що
містить
припустимий опис функції.
Мета: розробити та реалізувати закінчений
програмний продукт для побудови графіку
функції, та її подальшого аналізу.

3.

Готовий програмний продукт повинен мати наступні
можливості :
— побудова графіка функції за наданим рядком
— збереження результату роботи програми у графічний файл
— можливості налаштування графіку
— повідомлення про помилки під час побудови
— виведення координат точки на графіку

4.

Блок - схема алгоритму головної програми “UI.h”
Початок
char *line
int from,to,amp_from,amp_to
1
line
from, to
amp_from, amp_to
Якщо межі
задано вірно
to>from && amp_to>amp_from
Непрвильні межі
побудови
+
Зробити
перевірку рядка
calc_fx(line,1)
Помилок не
виникло
-
Error == No
Розраховувати точки на
інтервалі від from до to з
точністю до сотих
+
double x = from; x<to;x+=0.01
calc_fx(line,x)
Додати точку [x, atof(expr)] на графік
1
2
Синтаксична
помилка
3
Кінець
2
3

5.

Загальний алгоритм синтаксичного аналізатора
“Analyzer.h”
Початок
double X
char *expr
char token[80]
enum{Emty, Operator,Variable,Number}type;
enum {No, Syntax,Zero}error;
Глобальні змінні:
X – значення аргументу,
expr – зберігає вхідний рядок,
token – зберігає поточну лексему,
type – тип поточної лексеми,
error – наявність і тип помилки
funcSum(double* answ)
Точка входу
аналізатора.Приймає
вхідний рядок та
значення для
підстановки в змінну Х.
funcMulti(double* answ)
Функція складання та
віднімання
funcPow(double* answ)
Функція множення та
ділення
calc_fx(char *line, double num)
funcUnary(double* answ)
funcBrackets(double* answ)
token == “(”?
funcPart(double* answ)
token == “\0”?
+
Кінець
Функція піднесеняя до
ступіня
Функція унарних
операторів та
математичних функцій
Функція підрахунку
виразів у дужках
Функція повертає
значення неподільних
лексем

6.

Демонстрація програми
Вікно завантаження програми
Головне вікно програми

7.

Демонстрація програми
Область задання меж побудови
Область задання функції
Область вибору кольору графіка

8.

Демонстрація програми
Інструкція користувача

9.

Демонстрація програми
Виведення координат точки вибраної
користувачем
Область побудованого графіку
Кнопки “Допомога” та “PNG” в головному вікні програми

10.

Демонстрація програми
Повідомлення про помилку при неправильно
заданій функції
Повідомлення про помилку при неправильно заданих
межах побудови

11.

Переваги та недоліки розробленої програми
Переваги:
• простота користування
• дружній графічний інтерфейс
• збереження результату
Недоліки:
• відсутня можливість побудови декількох графіків на одній
координатній площині
• необхідні вдосконалення синтаксичного аналізатору
• нерозгорнуті налаштування інтерфейсу та площини
графіку

12.

ДЯКУЮ ЗА УВАГУ
English     Русский Rules