Как написать программу для построения графиков функций

1. Зыков С. В. Программирование. Объектно-ориентированный подход : учебник и практикум для вузов / С. В. Зыков. — Москва : Издательство Юрайт, 2020. — 155 с. — (Высшее образование). — Текст : непосредственный.

2. Кувшинов Д. Р. Основы программирования : учебное пособие для среднего профессионального образования / Д. Р. Кувшинов. — Москва : Издательство Юрайт, 2020. — 105 с. — (Профессиональное образование). —— Текст : непосредственный.

3. Огнева М. В. , Кудрина Е. В. Программирование на языке С++: практический курс : учебное пособие для вузов / М. В. Огнева, Е. В. Кудрина. — Москва : Издательство Юрайт, 2020. — 335 с. — (Высшее образование). — Текст : непосредственный.

4. Садовничая И. В. Математический анализ. Предел и непрерывность функции одной переменной : учебное пособие для среднего профессионального образования/ И. В. Садовничая, Т. Н. Фоменко. – 2-е изд., перераб. И доп. – Москва: Издательство Юрайт, 2020. – 115 с. – (Профессиональное образование). – Текст : непосредственный.

Рисуем ГРАФИКИ и пишем КОД — Маленький проект

5. Садовничая И. В. Математический анализ. Функции многих переменных : учебник и практикум для вузом/ И. В. Садовничая, Т. Н. Фоменко. – 2-е изд., перераб. И доп. – Москва: Издательство Юрайт, 2020. – 206 с. – (Высшее образование). – Текст : непосредственный.

6. Трофимов В. В. , Павловская Т. А. Алгоритмизация и программирование : учебник для вузов / В. В. Трофимов, Т. А. Павловская ; под редакцией В. В. Трофимова. — Москва : Издательство Юрайт, 2020. — 137 с. — (Высшее образование). — Текст : непосредственный.

7. Швецкий М. В. Программирование: математическая логика : учебное пособие для среднего профессионального образования / М. В. Швецкий, М. В. Демидов, А. В. Голанова, И. А. Кудрявцева. — 2-е изд., перераб. и доп. — Москва : Издательство Юрайт, 2020. — 675 с. — (Профессиональное образование). — Текст : непосредственный.

Введение

В настоящее время область применения графиков математических функций очень широка. Они нашли применение в таких сферах как, непосредственно высшая математика и физика (научная сфера), курсы валют, прибыль и продажи (экономическая сфера), отслеживание рождаемости и смертности (демографическая сфера) и многие другие. Значимость математических функций определяется их активным использованием в качестве базовых структур для последующей реализации расчетов и создания различных процессов. Их графическая визуализация осуществляется разными путями, и один из них – с помощью программного кода – одного из самых рациональных и наиболее точных методов задания и построения графиков функций [1].

Цель исследования: разработать на языке программирования C++ приложение построения графиков функции от одной переменной.

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

Начало работы над программой состоит из создания проекта в Visual Studio с базовой совместимостью Windows Forms и языка С++, а так же добавлением необходимых библиотек, создания окон разработки и изменения параметров проекта для его последующей работоспособности. Работа над программой велась в среде программирования с тремя открытыми окнами: файл кода формата .cpp, конструктор формы и код-описание для работы формы формата .h (библиотека).

Построение графиков на python (питон)

На форму добавлены объекты: объект Chart, отвечающий за построения диаграмм; GroupBox – объект, дающий возможность группирования всех параметров в поле группы; Label – объект-текст; ComboBox – объект переключения контекстных оверлеев; TextBox – объект ввода данных; Button – кнопка взаимодействия; MenuStrip – объект-меню.

Читайте также:
Программа чтобы сделать сайт html

В теле программы задан цикл от одной переменной, относительно которой будет осуществляться построение графиков формы. В цикл помещены формулы основных математических функций, таких как синус y = sin(x), косинус y = cos(x), тангенс y = tg(x), котангенс y = ctg(x), линейная y = x и y = — x, квадратичная y = x^2, степенная y=x^3, модуль y = |x| и y = — |x|, обратная пропорциональность y = 1/x и y = — 1/x [3].

После задания всех необходимых формул, задействуется объект Chart, который способен преобразовывать алгебраическую форму в графическую [2]. Графики выбранных функций обладают свойством бесконечности по оси X. В программе пользователю дается возможность самостоятельно задавать необходимый ему промежуток, на котором он хочет отследить функцию. Таким образом, снова повышается производительность программы и улучшается наглядность и восприятие построенных программой графиков. Поэтому на форму были добавлены два поля: для задания начальной и конечной точки необходимого интервала.

На последнем этапе разработки приложения велось формирование интерфейса программы с целью сделать его «дружелюбным». Для этого были размещены все задействованные объекты в структурированном, понятном пользователю виде, добавлены сообщения пользователю с подсказками о заполнении полей. Например, если пользователь ввел не все необходимые данные, программа попросит его сделать проверку и повторить попытку. Затем проведено тестирование программы.

Рис. 1. Пример построения графика функции y=sin(x) на интервале по x [-5;5]

Заключение

В ходе работы была разработана программа, основанная на использовании Windows Forms и написанная на языке программирования C++, выполняющая построение графиков элементарных математических функций.

В приложении указывается начальная и конечная точка для задания интервала просмотра на плоскости создаваемого графика текущей функции.

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

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

Источник: eduherald.ru

Построение графиков функций на Python. Pygame

Привет, Хабр! Я хотел бы рассказать, как написать программу для построения графиков функций. Программу будем писать на Python с использованием библиотеки PyGame.

P.S. Программа простая и предназначена больше для учебных целей, чем для повседневного использования(хотя и с этим алгоритм может справится).

Основной алгоритм

Основной алгоритм заключается в вычислении функции на интервале: [-10,10]. Так как целых значений немного, то будем увеличивать параметр с малым шагом, к примеру 0.0001.

Функция имеет вид y = f(x). Формат ввода, соответственно, string(так как пользователь вводить функцию с использованием символов).

Получается следующий алгоритм:

Пишем код

Для начала следует импортировать библиотеки. Это библиотека PyGame, с её помощью будем рисовать. И библиотека math, она добавляет больше математических функций(sin, cos, sqrt и т.д.).

from math import * import pygame

Теперь напишем несколько системных строк, которые создадут нам окно, в котором будет находится система координат.

pygame.init() # запустить pygame screen = pygame.display.set_mode((500,500)) # создать окно 500×500 pygame.display.set_caption(«func_graph») # название окна all_sprites=pygame.sprite.Group() # группа спрайтов clock = pygame.time.Clock() running = True fps=60

Создадим класс, который будет рисовать координатные оси(ординат и абсцисс).

class Line(pygame.sprite.Sprite): def __init__(self,pos,x,y): pygame.sprite.Sprite.__init__(self) if pos==»x»: # ось абсцисс self.image=pygame.Surface((3,400)) # линия 3×400 self.image.fill((0,0,0)) # закрасить черным цветом self.rect = self.image.get_rect() self.rect.centerx = x # центр по x self.rect.centery = y # центр по y elif pos==»y»: # ось ординат self.image=pygame.Surface((400,3)) # линия 3×400 self.image.fill((0,0,0)) # закрасить черным цветом self.rect = self.image.get_rect() self.rect.centerx = x # центр по x self.rect.centery = y # центр по y

Теперь класс для точки, так как точек будет очень много, то график будет казаться сплошным.

class Dot(pygame.sprite.Sprite): def __init__(self,x,y): pygame.sprite.Sprite.__init__(self) self.image=pygame.surface.Surface((5,5)) # точка 5×5 self.image.fill((0,0,0)) # закрасить черным цветом self.rect=self.image.get_rect() self.rect.centerx=x # центр по x self.rect.centery=y # центр по y

Теперь приступим к основному алгоритму. Функцию считает модуль eval, а с ним нужно быть очень аккуратным в плане ввода(т.е. «x» желательно брать в скобки, чтобы модуль учитывал знак минус, степень — это два знака умножить(**), и т.д.). Конечно, можно сделать так, чтобы ввод пользователя преобразовывался в нормальный вид, это аналогично части с заменой «x» на значение(строка 6), но и тут есть свои проблемы.

Читайте также:
Лучшая бесплатная программа для проверки жесткого диска

def Calc(func): i=-10 # начальное значение аргумента while i

Теперь заключительная часть кода.

func = str(input(«y = «)) # ввод данных calc = Calc(func) # вызвать функцию Calc от func line = Line(«y»,250,250) # добавить ось ординат all_sprites.add(line) line1 = Line(«x»,250,250) # добавить ось абсцисс all_sprites.add(line1) while running: # основной цикл clock.tick(fps) for event in pygame.event.get(): if event.type == pygame.QUIT: # если закрыл окно — завершить программу running = False screen.fill((255,255,255)) # залить поле белым цветом all_sprites.draw(screen) # нарисовать все спрайты(т.е. наши точки) pygame.display.flip() pygame.quit()

Вот такой получился код:

from math import * import pygame pygame.init() screen = pygame.display.set_mode((500,500)) pygame.display.set_caption(«func_graph») all_sprites=pygame.sprite.Group() clock = pygame.time.Clock() running = True fps=60 class Line(pygame.sprite.Sprite): def __init__(self,pos,x,y): pygame.sprite.Sprite.__init__(self) if pos==»x»: self.image=pygame.Surface((3,400)) self.image.fill((0,0,0)) self.rect = self.image.get_rect() self.rect.centerx = x self.rect.centery = y elif pos==»y»: self.image=pygame.Surface((400,3)) self.image.fill((0,0,0)) self.rect = self.image.get_rect() self.rect.centerx = x self.rect.centery = y class Dot(pygame.sprite.Sprite): def __init__(self,x,y): pygame.sprite.Sprite.__init__(self) self.image=pygame.surface.Surface((5,5)) self.image.fill((0,0,0)) self.rect=self.image.get_rect() self.rect.centerx=x self.rect.centery=y def Calc(func): i=-10 while i

Итоги

В заключение можно сказать, что получилась простая программа, которая справляется со своими функциями, Ба-Дум-Тсс. Конечно, здесь есть свои проблемы(в основном — модуль eval), но главная задача статьи — понять, как компьютер строит графики.

P.S. Код ещё можно доработать. К примеру, я доработал программу до discord бота. Если будет интересно, то я могу написать об этом. Так как я заметил, что на Хабре есть только ознакомительные статьи про ботов.

Источник: habr.com

XIII Международная студенческая научная конференция Студенческий научный форум — 2021

РАЗРАБОТКА ПРИЛОЖЕНИЯ «ПОСТРОЕНИЕ ГРАФИКОВ ФУНКЦИЙ ОТ ОДНОЙ ПЕРЕМЕННОЙ» НА ЯЗЫКЕ ПРОГРАММИРОВАНИЯ C++

Ярошко Я.С. 1
1 Тюменский индустриальный университет (филиал в г. Тобольске)
Работа в формате PDF

Текст работы размещён без изображений и формул.
Полная версия работы доступна во вкладке «Файлы работы» в формате PDF

В настоящее время область применения графиков математических функций очень широка. Они нашли применение в таких сферах как, непосредственно высшая математика и физика (научная сфера), курсы валют, прибыль и продажи (экономическая сфера), отслеживание рождаемости и смертности (демографическая сфера) и многие другие. Значимость математических функций определяется их активным использованием в качестве базовых структур для последующей реализации расчетов и создания различных процессов. Их графическая визуализация осуществляется разными путями, и один из них – с помощью программного кода – одного из самых рациональных и наиболее точных методов задания и построения графиков функций [1].

Цель исследования: разработать на языке программирования C++ приложение построения графиков функции от одной переменной.

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

Начало работы над программой состоит из создания проекта в Visual Studio с базовой совместимостью Windows Forms и языка С++, а так же добавлением необходимых библиотек, создания окон разработки и изменения параметров проекта для его последующей работоспособности. Работа над программой велась в среде программирования с тремя открытыми окнами: файл кода формата . cpp , конструктор формы и код-описание для работы формы формата . h (библиотека).

На форму добавлены объекты: объект Chart, отвечающий за построения диаграмм; GroupBox – объект, дающий возможность группирования всех параметров в поле группы; Label – объект-текст; ComboBox – объект переключения контекстных оверлеев; TextBox – объект ввода данных; Button – кнопка взаимодействия; MenuStrip – объект-меню.

В теле программы задан цикл от одной переменной, относительно которой будет осуществляться построение графиков формы. В цикл помещены формулы основных математических функций, таких как синус y = sin(x), косинус y = cos(x), тангенс y = tg(x), котангенс y = ctg(x), линейная y = x и y = — x, квадратичная y = x^2, степенная y=x^3, модуль y = |x| и y = — |x|, обратная пропорциональность y = 1/x и y = — 1/x [3].

Читайте также:
Ts node не является внутренней или внешней командой исполняемой программой или пакетным файлом

После задания всех необходимых формул, задействуется объект Chart, который способен преобразовывать алгебраическую форму в графическую [2]. Графики выбранных функций обладают свойством бесконечности по оси X. В программе пользователю дается возможность самостоятельно задавать необходимый ему промежуток, на котором он хочет отследить функцию. Таким образом, снова повышается производительность программы и улучшается наглядность и восприятие построенных программой графиков. Поэтому на форму были добавлены два поля: для задания начальной и конечной точки необходимого интервала.

На последнем этапе разработки приложения велось формирование интерфейса программы с целью сделать его «дружелюбным». Для этого были размещены все задействованные объекты в структурированном, понятном пользователю виде, добавлены сообщения пользователю с подсказками о заполнении полей. Например, если пользователь ввел не все необходимые данные, программа попросит его сделать проверку и повторить попытку. Затем проведено тестирование программы.

Рис. 1. Пример построения графика функции y = sin ( x ) на интервале по x [-5;5]

В ходе работы была разработана программа, основанная на использовании Windows Forms и написанная на языке программирования C++, выполняющая построение графиков элементарных математических функций.

В приложении указывается начальная и конечная точка для задания интервала просмотра на плоскости создаваемого графика текущей функции.

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

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

Список литературы

1. Зыков С. В. Программирование. Объектно-ориентированный подход : учебник и практикум для вузов / С. В. Зыков. — Москва : Издательство Юрайт, 2020. — 155 с. — (Высшее образование). — Текст : непосредственный.

2. Кувшинов Д. Р. Основы программирования : учебное пособие для среднего профессионального образования / Д. Р. Кувшинов. — Москва : Издательство Юрайт, 2020. — 105 с. — (Профессиональное образование). —— Текст : непосредственный.

3. Огнева М. В. , Кудрина Е. В. Программирование на языке С++: практический курс : учебное пособие для вузов / М. В. Огнева, Е. В. Кудрина. — Москва : Издательство Юрайт, 2020. — 335 с. — (Высшее образование). — Текст : непосредственный.

4. Садовничая И. В. Математический анализ. Предел и непрерывность функции одной переменной : учебное пособие для среднего профессионального образования/ И. В. Садовничая, Т. Н. Фоменко. – 2-е изд., перераб. И доп. – Москва: Издательство Юрайт, 2020. – 115 с. – (Профессиональное образование). – Текст : непосредственный.

5. Садовничая И. В. Математический анализ. Функции многих переменных : учебник и практикум для вузом/ И. В. Садовничая, Т. Н. Фоменко. – 2-е изд., перераб. И доп. – Москва: Издательство Юрайт, 2020. – 206 с. – (Высшее образование). – Текст : непосредственный.

6. Трофимов В. В. , Павловская Т. А. Алгоритмизация и программирование : учебник для вузов / В. В. Трофимов, Т. А. Павловская ; под редакцией В. В. Трофимова. — Москва : Издательство Юрайт, 2020. — 137 с. — (Высшее образование). — Текст : непосредственный.

7. Швецкий М. В. Программирование: математическая логика : учебное пособие для среднего профессионального образования / М. В. Швецкий, М. В. Демидов, А. В. Голанова, И. А. Кудрявцева. — 2-е изд., перераб. и доп. — Москва : Издательство Юрайт, 2020. — 675 с. — (Профессиональное образование). — Текст : непосредственный.

Источник: scienceforum.ru

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru