Программа построения графика функции на delphi

var
Form1: TForm1;

implementation
Const e=1e- 4 ; //точность одна тысячная
var Xmax,Xmin,Ymax,Ymin: real ;
{$R *.DFM}
function Tform1.F(x: real ): real ;
Begin
F:= Sin (x);
End ;

//поиск минимума функции
Procedure TForm1.Extrem1(Xmax,Xmin: real ; Var Ymin: real );
Var x,h: real ; j,n: integer ;
Begin
n:= 10 ;
Repeat
x:=Xmin;
n:=n* 2 ;
h:=(Xmax-Xmin)/n;
Ymin:=F(Xmin);
For j:= 1 to n do begin
if f(x) x:=x+h;
end ;
Until abs (f(Ymin)-f(Ymin+h)) End ;

//поиск максимума функции
Procedure TForm1.Extrem2(Xmax,Xmin: real ; Var Ymax: real );
Var x,h: real ; j,n: integer ;
Begin
n:= 10 ;
Repeat
x:=Xmin;
n:=n* 2 ;
h:=(Xmax-Xmin)/n;
Ymax:=F(Xmin);
For j:= 1 to n do begin
if f(x)>=Ymax then Ymax:=f(x);
x:=x+h;
end ;
Until abs (f(Ymax)-f(Ymax+h)) End ;

procedure TForm1.Button1Click(Sender: TObject );

Borland Delphi 7. Разработка приложения для построения графика функции


var x,y: real ;
PX,PY: longInt ;
begin
//здесь необходимо указать диапазон изменения x
Xmax:= 8 * pi ;
Xmin:= 0 ;

//вычисляем экстремумы функции
Extrem1(Xmax,Xmin,Ymin);
Extrem2(Xmax,Xmin,Ymax);

Ну вот и все, надеюсь эта статья оказалась Вам интересна!
Источник: http://delphid.dax.ru

Забавная штука синусы:

delphi
for i := 1 to 500 do
paintbox1.Canvas.Pixels[ round ( sin (i * 5 ) * 10 + 50 ), round ( sin (i * 10 ) * 10 +
50 )] := RGB( 0 , 0 , 0 );

uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs;

type
TForm1 = class (TForm)
procedure FormPaint(Sender: TObject );
procedure FormResize(Sender: TObject );
private
< Private declarations >
public
< Public declarations >
end ;

var
Form1: TForm1;

// Функция, график которой надо построить

function f(x: real ): real ;
begin
f := 2 * Sin (x) * exp (x / 5 );
end ;

// строит график функции

procedure GrOfFunc;
var
x1, x2: real ; // границы изменения аргумента функции
y1, y2: real ; // границы изменения значения функции
x: real ; // аргумент функции
y: real ; // значение функции в точке x
dx: real ; // приращение аргумента
l, b: integer ; // левый нижний угол области вывода графика
w, h: integer ; // ширина и высота области вывода графика
mx, my: real ; // масштаб по осям X и Y
x0, y0: integer ; // точка — начало координат

begin
// область вывода графика
l := 10 ; // X — координата левого верхнего угла
b := Form1.ClientHeight — 20 ; // Y — координата левого верхнего угла

Построение графиков функции в Delphi часть 1


h := Form1.ClientHeight — 40 ; // высота
w := Form1.Width — 40 ; // ширина

x1 := 0 ; // нижняя граница диапазона аргумента
x2 := 25 ; // верхняя граница диапазона аргумента
dx := 0.01 ; // шаг аргумента

// найдем максимальное и минимальное значения
// функции на отрезке [x1,x2]
y1 := f(x1); // минимум
y2 := f(x1); // максимум
x := x1;
repeat
y := f(x);
if y < y1 then y1 := y;
if y > y2 then y2 := y;
x := x + dx;
until (x >= x2);

// вычислим масштаб
my := h / abs (y2 — y1); // масштаб по оси Y
mx := w / abs (x2 — x1); // масштаб по оси X

// оси
x0 := l;
y0 := b — Abs ( Round (y1 * my));

with form1.Canvas do
begin
// оси
MoveTo(l, b); LineTo(l, b — h);
MoveTo(x0, y0); LineTo(x0 + w, y0);
TextOut(l + 5 , b — h, FloatToStrF (y2, ffGeneral, 6 , 3 ));
TextOut(l + 5 , b, FloatToStrF (y1, ffGeneral, 6 , 3 ));
// построение графика
x := x1;
repeat
y := f(x);
Pixels[x0 + Round (x * mx), y0 — Round (y * my)] := clRed;
x := x + dx;
until (x >= x2);

TextOut( 17 , 100 , ‘Delphi World Example’ );
end ;
end ;

procedure TForm1.FormPaint(Sender: TObject );
begin
GrOfFunc;
end ;

// изменился размер окна программы

procedure TForm1.FormResize(Sender: TObject );
begin
// очистить форму
form1.Canvas.FillRect( Rect ( 0 , 0 , ClientWidth, ClientHeight));
// построить график
GrOfFunc;
end ;

uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, ExtCtrls, DdhGraph;

type
TForm1 = class (TForm)
ColorDialog1: TColorDialog;
FontDialog1: TFontDialog;
Image1: TImage;
Panel1: TPanel;
Button1: TButton;
Button2: TButton;
CheckBox1: TCheckBox;
Button3: TButton;
DdhGraph1: TDdhGraph;
procedure Button1Click(Sender: TObject );
procedure Button2Click(Sender: TObject );
procedure CheckBox1Click(Sender: TObject );
procedure Button3Click(Sender: TObject );
private
< Private declarations >
public
< Public declarations >
end ;

var
Form1: TForm1;

procedure TForm1.Button1Click(Sender: TObject );
begin
ColorDialog1.Color := DdhGraph1.Color;
if ColorDialog1.Execute then
DdhGraph1.Color := ColorDialog1.Color;
end ;

procedure TForm1.Button2Click(Sender: TObject );
begin
FontDialog1.Font := DdhGraph1.Font;
if FontDialog1.Execute then
DdhGraph1.Font := FontDialog1.Font;
end ;

procedure TForm1.CheckBox1Click(Sender: TObject );
begin
if CheckBox1.Checked then
DdhGraph1.BorderStyle := bsSingle
else
DdhGraph1.BorderStyle := bsNone;
end ;

procedure TForm1.Button3Click(Sender: TObject );
begin
ColorDialog1.Color := DdhGraph1.LinesColor;
if ColorDialog1.Execute then
DdhGraph1.LinesColor := ColorDialog1.Color;
end ;

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

Программа построения графика функции на delphi

1. Архангельский А.Я. Программирование в Delphi 7. – М.: ООО «Бином-Пресс», 2003 г. – 1152 с.: ил. ISBN 5–9518–0042–0

Данная статья является реферативным изложением основной работы. Полный текст научной работы, приложения, иллюстрации и иные дополнительные материалы доступны на сайте VI Международного конкурса научно-исследовательских и творческих работ учащихся «Старт в науке» по ссылке: https://school-science.ru/6/7/38330.

Читайте также:
Программа которая отвечает на сообщения

Тема моей исследовательской работы «Построение графиков элементарных функций средствами среды программирования Borland Delphi 7».

Данная научно-исследовательская работа является актуальной в силу четырех обстоятельств:

Она имеет непосредственное практическое отношение к курсу информатики в школе;

Элементы работы могут быть представлены для изучения учащимся 9–11 классов;

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

Работа имеет прикладной характер и требует углубленного изучения языка программирования Pascal в объектно-ориентированной среде программирования Borland Delphi 7.

Цель научно-исследовательской работы: разработать приложение для построения графиков элементарных функций средствами среды программирования Borland Delphi 7.

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

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

Для достижения цели были поставлены следующие задачи:

1. Изучить процесс исследования элементарных функций в курсе средней школы;

2. Изучить функционал среды программирования Borland Delphi 7 и ее возможности;

3. Изучить основы программирования на языке Pascal;

4. Составить приложение для построения графиков элементарных функций средствами среды программирования Borland Delphi 7.

Научно-исследовательская работа состоит из: введения, двух глав, заключения и списка литературы.

В введение сформулированы цель, задачи и актуальность научно-исследовательской работы.

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

Во второй главе рассмотрен процесс разработки приложения для построения графиков элементарных функций средствами среды программирования Borland Delphi 7.

В заключении отражены достигнутые результаты и перспективы развития приложения.

1. Среда программирования Borland Delphi 7 для построения графиков элементарных функций

Материал данной главы взят из учебника «Программирование в Delphi 7» [1].

Delphi – одна из самых мощных систем, позволяющих на самом современном уровне создавать как отдельные прикладные программы Windows, так и разветвленные комплексы, предназначенные для работы в корпоративных сетях и в Интернет.

Компонент Image и некоторые его свойства

Нередко возникает потребность украсить свое приложение какими-то изображениями. Это может быть графическая заставка, являющаяся логотипом вашего приложения. Или это могут быть фотографии сотрудников некого учреждения при разработке приложения, работающего с базой данных этого учреждения. В первом случае вам потребуется компонент Image, расположенный на странице Additional библиотеки компонентов, во втором – его аналог DBImage, связанный с данными и расположенный на странице Data Controls.

Если установить свойство AutoSize в true, то размер компонента Image будет автоматически подгоняться под размер помещенной в него картинки. Если же свойство AutoSize установлено в false, то изображение может не поместиться в компонент или, наоборот, площадь компонента может оказаться много больше площади изображения.

Другое свойство – Stretch позволяет подгонять не компонент под размер рисунка, а рисунок под размер компонента. Установите AutoSize в false, растяните или сожмите размер компонента Image и установите Stretch в true. Вы увидите, что рисунок займет всю площадь компонента, но поскольку вряд ли реально вручную установить размеры Image точно пропорциональными размеру рисунка, то изображение исказится. Устанавливать Stretch в true может иметь смысл только для каких-то узоров, но не для картинок. Свойство Stretch не действует на изображения пиктограмм, которые не могут изменять своих размеров.

Свойство – Center, установленное в true, центрирует изображение на площади Image, если размер компонента больше размера рисунка.

Рассмотрим еще одно свойство – Transparent (прозрачность). Если Transparent равно true, то изображение в Image становится прозрачным. Это можно использовать для наложения изображений друг на друга. Одно из возможных применений этого свойства – наложение на картинку надписей, выполненных в виде битовой матрицы. Эти надписи можно сделать с помощью встроенной в Delphi программы Image Editor.

Канва и пикселы

Многие компоненты в Delphi имеют свойство Canvas (канва, холст), представляющее собой область компонента, на которой можно рисовать или отображать готовые изображения. Это свойство имеют формы, графические компоненты Image, PaintBox, BitMap и многие другие. Канва содержит свойства и методы, существенно упрощающие графику Delphi. Все сложные взаимодействия с системой спрятаны для пользователя, так что рисовать в Delphi может человек, совершенно не искушенный в машинной графике.

Каждая точка канвы имеет координаты X и Y. Система координат канвы, как и везде в Delphi, имеет началом левый верхний угол канвы. Координата X возрастает при перемещении слева направо, а координата Y – при перемещении сверху вниз. С координатами вы уже имели дело многократно, но пока вас не очень интересовало, что стоит за ними, в каких единицах они измеряются.

Координаты измеряются в пикселах. Пиксел – это наименьший элемент поверхности рисунка, с которым можно манипулировать. Важнейшее свойство пиксела – его цвет. Для описания цвета используется тип TColor. С цветом вы встречаетесь практически в каждом компоненте и знаете, что в Delphi определено множество констант типа TColor.

Одни из них непосредственно определяют цвета (например clBlue – синий), другие определяют цвета элементов окон, которые могут меняться в зависимости от выбранной пользователем палитры цветов Windows (например, ulBtnFaсе – цвет поверхности кнопок).

Читайте также:
Как разработать программу нулевого травматизма пример

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

Например, значение SOOFFOOQO соответствует чистому синему цвету, SOOOOFFOO – чистому зеленому, SOOOOOOFF – чистому красному. $00000000 – черный цвет, SOOFFFFFF – белый.

Рисование с помощью пера Pen

У канвы имеется свойство Pen – перо. Это объект, в свою очередь имеющий ряд свойств. Одно из них уже известное вам свойство Color – цвет, которым наносится рисунок. Второе свойство – Width (ширина линии). Ширина задается в пикселах.

По умолчанию ширина равна 1. Свойство Style определяет вид линии. Это свойство может принимать следующие значения:

Источник: school-herald.ru

Учебный пример разработки программы построения графика функции в системе программирования Delphi

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

Ключевые слова

ПРОЦЕСС ОБУЧЕНИЯ, ГРАФИК ФУНКЦИИ, ВИЗУАЛЬНОЕ ПРОГРАММИРОВАНИЕ, РАЗРАБОТКА ПРОГРАММЫ

Текст научной работы

Для обеспечения и поддержки информационных процессов на современном уровне развития науки и техники чрезвычайно важна роль программирования, оно является одной из традиционных и важных тем как в школах, так и вузах. Программирование позволяет вырабатывать у учащихся такие важные для современного выпускника качества и способности, как логическое и критическое мышление, внимательность, аккуратность; развивает находчивость, фантазию, изобретательность, конструктивное мышление; раскрывает творческие способности [4, 7, 8, 13].

Тем не менее, при изучении программирования практически повсеместно можно наблюдать подход, при котором и школьникам, и студентам для решения предлагаются лишь стандартные задачи для отработки конкретных тем курса. При этом чаще всего используется язык программирования Turbo Pascal или его разновидности. Очевидно, что повсеместное распространение в учебных заведениях нашей страны языка Pascal связано с тем, что он более приспособлен в плане начального обучения программированию (ведь именно для этого он и создавался). Кроме того, во многих случаях наиболее приемлемым переходом к изучению визуальных языков программирования в школе является переход именно от Turbo Pascal к Delphi.

Для подготовки специалиста, конкурентоспособного на современном рынке информационных услуг, чрезвычайно важно на определенном этапе обучения отойти от традиционных задач, и предлагать более интересные и сложные задачи [2-4, 7-11, 16, 18].

В данной статье мы рассмотрим учебный пример, показывающий работу в среде визуального программирования Delphi. Среда разработки Delphi в курсе программирования может быть успешно использована при написании игровых [4, 6, 16], обучающих и контролирующих программ [5, 12], реализации моделей физических и экономических процессов [17], разработки прикладных программ [5, 12, 14, 15]. Для первоначального ознакомления со средой разработки Delphi можно использовать, например, книги [1, 19].

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

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

Для программной реализации задачи можно выбрать любую функциональную зависимость (или несколько зависимостей), мы для определенности выбрали полином четвертой степени.

Так как в программе (рис. 1) использовано достаточно много компонент, а ее код содержит более 350 строк, то ниже в таблице 1 приведены типы компонент, их количество и назначение в программе, а сам исходный код проекта с некоторыми пояснениями в виде архива представлен в [20].

Назначение в программе

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

Отображение соответствующего текста перед полями ввода и компонентами выбора цвета.

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

Группировка параметров построения графика функции и системы координат.

Отображение текста «Параметры построения».

Область построения графика функции и вывод общего вида полинома.

Элементы выбора цвета для осей координат, графика функции, сетки и шкал осей координат.

Диалог выбора цвета.

Диалог сохранения файла.

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

Позволяет включить или отключить отображение линий сетки.

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

Основные действия в программе выполняются после нажатия на кнопку «Построить» в следующей последовательности:

  • очистка области построения;
  • установка ширины и высоты рабочей области (здесь будет непосредственно строиться график функции, эта область по размерам на 60 пикселей меньше области построения и по ширине, и по высоте);
  • получение значений коэффициентов полинома и диапазона построения графика;
  • определение минимального и максимального значения функции в указанном диапазоне;
  • определение коэффициентов масштабирования графика функции;
  • построение осей координат и отображение шкал осей координат;
  • отображение линий сетки;
  • построение графика функции.
Читайте также:
Что такое ap программа

Реальные координаты, соответствующие указателю мыши в области построения, вычисляются на основе известных значений коэффициентов масштабирования по осям с учетом отступов системы координат от краев области построения (в программе эти отступы приняты равными 50 пикселей слева и снизу и 10 пикселей — справа и сверху).

На основе контекстного меню области построения можно скопировать или отдельный фрагмент области, или всю область целиком в буфер обмена и передать затем это изображение в какое-либо другое приложение. Также можно сохранить всю область построения в отдельный файл формата BMP (предлагаем читателю выполнить сохранение области в файл формата JPEG в качестве тренировки самостоятельно, тем более, что для этого потребуется сделать минимальные дополнения к исходному коду программы).

На рис. 2 показан график функции в диапазоне значений $x$ от -15 до 10 и контекстное меню программы. Количество делений на каждой из осей равно 15, количество знаков после запятой в значениях на шкалах осей — единица.

Окно программы

Рассмотренный пример позволяет показать, как можно использовать компонент TImage для построения графиков функций вместо компонента TChart. Работа с TImage может потребоваться во многих практически важных случаях, когда компонент TChart или неудобно использовать, или даже невозможно.

Написанная программа также может использоваться в качестве интерактивного метода обучения программированию (метод проектов).

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

  1. Дмитриев В.Л.

О некоторых методах класса istream в языке программирования C++

  1. Дмитриев В.Л.

Реализация телефонного справочника на языке pascalabc.net с подключением базы данных MS Access

  1. Тугузбаева А.Р.

Способ защиты материала, предназначенного для ознакомления, от нелегального копирования в сети

  1. Алексеева К.В.
  2. Дмитриев В.Л.

Учебный пример разработки текстового редактора на основе компонента richedit в системе программирования Delphi

  1. Дмитриев В.Л.
  2. Евдокимова Н.Л.
  3. Мухаметова Л.К.

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

  1. Бобровский С.И. Delphi 7. Учебный курс. – СПб.: Питер, 2008. – 735 с.
  2. Дмитриев В.Л. Теория и практика решения задач по программированию. Ч. 1. Уфа: РИЦ БашГУ, 2007. – 264 с.
  3. Дмитриев В.Л. Теория и практика программирования на С++. – Стерлитамак: РИО СФ БашГУ, 2013. – 308 с.
  4. Дмитриев В.Л. Игровые проекты как средство повышения мотивации к изучению программирования // СМАЛЬТА. 2014. № 4. – С. 89-92.
  5. Дмитриев В.Л. Тестирование в игровой форме как способ проверки ус-воения учебного материала // Информатика в школе. 2012. №10 (83). – С. 41-43.
  6. Дмитриев В.Л. Компьютерная игра как средство тренировки зрительной памяти // NovaInfo.Ru. 2014. № 29. – С. 32-37.
  7. Дмитриев В.Л. Опыт отбора задач для активизации интереса школьников к изучению программирования // Информатика в школе. 2015. № 4. – С. 26-33.
  8. Дмитриев В.Л. Поэтапная разработка программы в среде Turbo Pascal на примере поиска пути с использованием волнового алгоритма // Информатика и образование. 2013. № 8 (247). – С. 29-33.
  9. Дмитриев В.Л. Развитие представлений об объектно-ориентированном программировании на примере разработки объектов в среде программирования Turbo Pascal // Информатика в школе. 2014. № 2. – С. 54-59.
  10. Дмитриев В.Л. Об эффективных алгоритмах решения ряда задач при обучении программированию // Профильная школа. 2014. Т.2. № 3. – С. 19-26.
  11. Дмитриев В.Л. Учебный пример реализации класса «Многочлен » на языке программирования C++ // NovaInfo.Ru. 2014. № 29. – С. 37-45.
  12. Дмитриев В.Л. Компьютерная программа для проведения тестирования с поддержкой произвольного расположения материалов теста // Информатика и образование. 2014. № 2 (251). – С. 74-77.
  13. Дмитриев В.Л., Ахмадеева Р.З. Развитие конструктивного мышления при изучении программирования // Информатика и образование. 2009. № 2. – С. 69-73.
  14. Дмитриев В.Л., Тугузбаева А.Р. Программная реализация метода приближенного решения матричных игр // NovaInfo.Ru. 2015. № 39. [Электронный ресурс]. – Режим доступа: http://novainfo.ru/archive/39/metod-priblizhennogo-resheniya-matrichnykh-igr (дата обращения: 04.12.2015).
  15. Дмитриев В.Л., Тугузбаева А.Р. Информационная система учета заказов малого частного предприятия // NovaInfo.Ru. 2015. № 39. [Электронный ресурс]. – Режим доступа: http://novainfo.ru/archive/39/informatsionnaya-sistema-ucheta-zakazov (дата обращения: 01.12.2015).
  16. Дмитриев В.Л., Евдокимова Н.Л., Мухаметова Л.К. Роль игровых проектов при обучении программированию // Современные научные исследования и инновации. 2015. № 12. [Электронный ресурс]. – Режим доступа: http://web.snauka.ru/issues/2015/12/60674 (дата обращения: 09.12.2015).
  17. Дмитриев В.Л., Тодорович А.А. Численное моделирование теплопроводности в плоской неоднородной пластине // Современные научные исследования и инновации. 2015. № 12. [Электронный ресурс]. – Режим доступа: http://web.snauka.ru/issues/2015/12/61187 (дата обращения: 16.12.2015).
  18. Окулов С.М. Программирование в алгоритмах. – М.: БИНОМ. Лаборатория знаний. 2002. – 341 с.
  19. Стивенс Р. Delphi. Готовые алгоритмы: учебное пособие. – М.: ДМК Пресс, 2007. – 379 с.
  20. Программа построения графика функции. [Электронный ресурс]. – Режим доступа: https://yadi.sk/d/oX6Sdh1XmJeSh

Цитировать

Дмитриев, В.Л. Учебный пример разработки программы построения графика функции в системе программирования Delphi / В.Л. Дмитриев, Н.Л. Евдокимова, Л.К. Мухаметова. — Текст : электронный // NovaInfo, 2015. — № 39. — URL: https://novainfo.ru/article/4054 (дата обращения: 02.07.2023).

Поделиться

Настоящий ресурс содержит материалы 16+

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

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