Знаходження значення функції за побудованим графіком засобами Delphi: Приклад 1

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

znachennja_funkcii_za_pobudovanym_grafikom11

Ілюстрація функції графічно

Для цього, на першому кроці, запустимо середовище програмування Delphi, створимо новий проект, та на головній формі розмістимо наступні її елементи: один компонент типу TMemo, один компонент типу TButton та один компонент типу TChart. В результаті виконання даного кроку, головна форма прокту набуде наступного вигляду.

Головна форма delphi-проекту "Знаходження значення функції за побудованим графіком"

На наступному кроці, детально проаналізувавши графік, приходимо до висновку, що його доцільно розбити на чотирнадцять частини, кожна з яких описується деякою функцією . І в залежності від того, яке значення приймає аргумент , обчислюємо ту чи іншу функцію. Отже, перейдемо до обробника події OnClick кнопки Button1 («Обчислити»), і в тілі процедури Button1Click запишемо код, з допомогою якого буде здійснюватись обчислення значень функції в необхідних точках та побудова графіка у компоненті TChart.

procedure TForm1.Button1Click(Sender: TObject);
var
x, y, n, a1, a2: real;
begin
// Здійснюємо очищення рядків компонента TMemo і готуємо його до виводу результатів
Memo1.Clear;
Memo1.Lines[0]:=' x | y ';
Memo1.Lines.Add('-------------------');
n:=0;
// Змінній Х присвоюємо початкове значення
x := 0;
// Значення для X-ї координати цертру першого кола
a1 := 2;
// Значення для X-ї координати цертру другого кола
a2 := 3;
while (x <= 19) do
begin
// Якщо X міститься в проміжку [0+n, 2+n) то для обчислення значення функції використовується рівняння кола, радіус якого дорівнює 2 з центром в точці (a1, 0)
if (x >= 0 + n) and (x < 2 + n) then
y := sqrt(-sqr(a1) + sqr(2) + (2 * a1 * x) - sqr(x))
else
// Якщо X міститься в проміжку [2+n, 3+n) то для обчислення значення функції використовується рівняння кола, радіус якого дорівнює 1 з центром в точці (a2, 0)
if (x >= 2 + n) and (x < 3 + n) then
y := -sqrt(-sqr(a2) + sqr(1) + (2 * a2 * x) - sqr(x))
else
// Якщо X міститься в проміжку [3+n, 4+n] то для обчислення значення функції використовується рівняння прямої y=0
if (x >= 3 + n) and (x <= 4 + n) then
y := 0
else
begin
n := n + 4;
a1 := a1 + 4;
a2 := a2 + 4;
end;
// Виводимо значення аргумента X та відповідне йому значення функції Y у нововму рядку компонента TMemo
Memo1.Lines.Add(floattostrf(x, fffixed, 5, 2) + ' | ' + floattostrf(y, fffixed, 5, 2));
// Будуємо точку (X, Y) у компоненті TChart
Series1.AddXY(x, y);
// Збільшуємо значення аргументу
x := x + 0.25;
end;
end;

Після цього, збережемо, відкомпілюємо та запустимо delphi-проект на виконання. Далі, у вікні що появиться, скористаємось копкою «Обчислити». В результаті виконання даного кроку, у компоненті Memo1, будуть виведені значення функції , де значення змінюються від 0 до 19 з кроком 0.25 .

Знаходження значення функції за побудованим графіком засобами Delphi

Скачати delphi-проект Значення функції за побудованим графіком.

Матеріал був корисним, поділись в соціальних мережах:

Якщо тобі сподобалась дана тема, залиш свій коментар