Программа «Построение графиков функций» Василенко Виталий Викторович ([email protected]) Ученик МОУ «Гимназия №85» г. Барнаула Это программа адресована всем, кому необходимо построить график любой функции из курса "Математики 5-11 класс". Идея написание этой программы появилась, когда я начал готовиться к ЕГЭ по математике в 11 классе. Очень часто в ЕГЭ встречаются задания на исследование функции. И хотелось бы представлять, как выглядит эта функция перед тем, как её исследовать. Цель: Создать программный продукт, позволяющий строить графики любых математических функций изучаемых в школьном курсе математики. Задачи: Разработать дружелюбный интерфейс, Создать удобную навигацию Продумать дизайн, цветовое, шрифтовое оформление. Подобрать математический материал Изучить особенности построение графиков функций (исследовать функции) Изучить учебную литературу с целью подбора средств и методов реализации и данного проекта на языке Microsoft Visual Basic Структура программы Описание первой формы: Программа состоит из трех форм. На первой форме располагаются элемент PictureBox в котором отображаются графики функций. Для работы программы необходимо вести коэффициенты для чего предусмотрены пять окон TextBox. Так же на форме располагаются семь кнопок предназначенных для построение графиков функций. С помощью этих кнопок можно построить графиков следующих функций: y=a*sin(k*x+n)+c, y=a*cos(k*x+n)+c, y=a*tg (k*x+n)+c, y=a*ctg(k*x+n)+c, y=a*x^n+b*x+c, y=k*x+n, y=k/(x+n)+c. Программный код первой формы: Описание переменных Dim sngX, sngI As Single dblA, dblB, dblC, dblN, dblK As Double Запуск формы «Справка» Private Sub Cmd0_Click() Form1.Show End Sub Процедура очистки окна построения графиков Private Sub cmd9_Click() picGraph.Cls End Sub Процедура присвоения значений коэффициентов переменным Private Sub Command1_Click() dblA = Val(Text1.Text) dblB = Val(Text2.Text) dblC = Val(Text3.Text) dblN = Val(Text4.Text) dblK = Val(Text5.Text) Рисование координатной решётки picGraph.Scale (-10, 10)-(10, -10) For sngI = -10 To 10 picGraph.Line (sngI, 10)-(sngI, -10), &H808080 Next sngI For sngI = -10 To 10 picGraph.Line (-10, sngI)-(10, sngI), &H808080 Next sngI picGraph.Line (-10, 0)-(10, 0) For sngI = -10 To 10 picGraph.PSet (sngI, 0) picGraph.Print sngI Next sngI picGraph.Line (0, 10)-(0, -10) For sngI = -10 To 10 picGraph.PSet (0, sngI) picGraph.Print sngI Next sngI End Sub Процедура рисования графика функции y=sinx Private Sub cmd1_Click() For sngX = -10 To 10 Step 0.0001 picGraph.PSet (sngX, dblA * Sin((dblK * sngX) + dblN) + dblC), &H80FF& Next sngX End Sub Процедура рисования графика функции y=cosx Private Sub cmd2_Click() For sngX = -10 To 10 Step 0.0001 picGraph.PSet (sngX, dblA * Cos((dblK * sngX) + dblN) + dblC), &HFF0000 Next sngX End Sub Процедура рисования графика функции y=tgx Private Sub cmd3_Click() For sngX = -10 To 10 Step 0.0001 picGraph.PSet (sngX, dblA * Sin((dblK * sngX) + dblN) / Cos((dblK * sngX) + dblN) + dblC), &HFF& Next sngX End Sub Процедура рисования графика функции y=ctgx Private Sub cmd4_Click() For sngX = -10 To ((-dblN - 0.1) / dblK) Step 0.0001 picGraph.PSet (sngX, dblA * Cos((dblK * sngX) + dblN) / Sin((dblK * sngX) + dblN) + dblC), &H8000& Next sngX For sngX = ((-dblN + 0.1) / dblK) To 10 Step 0.0001 picGraph.PSet (sngX, dblA * Cos((dblK * sngX) + dblN) / Sin((dblK * sngX) + dblN) + dblC), &H8000& Next sngX End Sub Процедура рисования графика степенной функции Private Sub cmd5_Click() For sngX = -10 To 10 Step 0.0001 picGraph.PSet (sngX, dblA * sngX ^ dblN + dblB * sngX + dblC), &HC0C000 Next sngX End Sub Процедура рисования графика линейной функции Private Sub cmd6_Click() For sngX = -10 To 10 Step 0.0001 picGraph.PSet (sngX, dblK * sngX + dblN), &HC000C0 Next sngX End Sub Процедура рисования графика прямопропорциональной функции Private Sub cmd7_Click() For sngX = -10 To (-dblN - 0.1) Step 0.0001 picGraph.PSet (sngX, (dblK / (sngX + dblN)) + dblC), &H800080 Next sngX For sngX = (-dblN + 0.1) To 10 Step 0.0001 picGraph.PSet (sngX, (dblK / (sngX + dblN)) + dblC), &H800080 Next sngX End Sub Запуск формы «Об авторе» Private Sub Command2_Click() Form2.Show End Sub Описание второй формы: На второй форме располагается справочная информация, описание программы и указание на некоторые недоработки. К недоработкам данной программы можно отнести невозможность построение графиков функции при коэффициентах больше 10 и меньше -10. На самом деле при данных коэффициентах выполняется построение графиков функций, но изображение не попадает в область определения заданную нашими координатными осями. Данная форма не программируемая, и содержит только элементы Label, которые позволяют выводить текст на форму. Описание третьей формы: На третьей форме располагается фотография автора и его контактные данные. Данный форма так же не программируемая. Изображение вставлялась с помощью элемента image и его свойства Picture. Перспективы: Добавить графики других функций: логарифмической, показательной (ex). К недоработкам данной программы можно отнести невозможность построение графиков функции при коэффициентах больше 10 и меньше 10. Поэтому, для эффективного использования данной программы необходимо организовать ввод области построения графиков пользователем. Часто в заданиях ЕГЭ встречаются функции нестандартного вида, которые невозможно подвести ни под один общий вид. Поэтому, я планирую добавить кнопки для построения этих функций. Список используемой литературы 1. «Информатика и информационные технологии». Учебник для 10 – 11 классов / Н. Д. Угринович. – 4-е изд. – М.: БИНОМ. Лаборатория знаний, 2007. – 511 с.: ил. 2. Информатика и ИКТ. Практикум по программированию. 10 – 11 класс. Базовый уровень/Под ред. проф. Н. В. Макаровой. – СПб.: Питер, 2008. – 176с. 3. Алгебра. Начало анализа 10-11 класс» А. Г. Мордкович – М.: Мнемозина, 2005.– 375 с