Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Звіт.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
1.91 Mб
Скачать

2.8 Задача про min/max функції

Завдання. Скласти програму пошуку мінімального та максимального значення функції на відрізку [а, b]. Значення а, b і кроку h вводяться з клавіатури. Розрахунок функції оформити як підпрограму-функцію: 2+x-x2

Конструктор форми зображено на рисунку 2.29

Рисунок 2.29

Результати виконання програми зображені на рисунку 2.30

Рисунок 2.30- Вікно робочої програми

Для розрахунку значень функції використовувалася підпрограма-функція ZnFun:

function ZnFun(x:real):real;

begin

ZnFun:=5*sqr(x)-7*x+100;

end;

Текст програмного коду:

procedure TForm1.Button1Click(Sender: TObject);

var a, b, h : real;

MinX, MinY, MaxX, MaxY : real;

begin

Memo1.Clear;

a:=StrToFloat(Edit1.Text);

b:=StrToFloat(Edit2.Text);

h:=StrToFloat(Edit3.Text);

MinY:=1e38;

MaxY:=-1e38;

while a<b do

begin

if ZnFun(a)<MinY then

begin

MinY:=ZnFun(a);

MinX:=a;

end;

if ZnFun(a)>MaxY then

begin

MaxY:=ZnFun(a);

MaxX:=a;

end;

a:=a+h;

end;

Memo1.Lines.Add('Max при x = '+FloatToStrF(MaxX,ffFixed,10,5)+

' y = '+FloatToStrF(MaxY,ffFixed,0,3)); end;

2.9 Задача табулювання функції

Завдання. Створити форму для розв’язування та відображення результатів табулювання функції.

Конструктор форми зображено на рисунку 2.31

Рисунок 2.31 – Конструктор форми

Додаткові завдання:

  1. Додати до контекстного меню команду «Кінець та запрограмувати її».

Текст коду:

procedure TForm1.N4Click(Sender: TObject);

begin

close;

end;

  1. Створити ще одне контекстне меню з командами «Зняти прапорці», Встановити всі прапорці», «Встановити інверсивно».

Текст коду:

procedure TForm1.N9Click(Sender: TObject);{Процедура зняття прапорців}

begin

checkbox1.Checked := False;

checkbox2.Checked := False;

checkbox3.Checked := False;

end;

procedure TForm1.N10Click(Sender: TObject);{Процедура встановлення прапорців}

begin

checkbox1.Checked := True;

checkbox2.Checked := True;

checkbox3.Checked := True;

end;

procedure TForm1.N11Click(Sender: TObject);{Процедура встановлення прапорців інверсивно}

begin

if checkbox1.Checked then checkbox1.Checked := Falseelse checkbox1.Checked := True;

if checkbox2.Checked then checkbox2.Checked := Falseelse checkbox2.Checked := True;

if checkbox3.Checked then checkbox3.Checked := Falseelse checkbox3.Checked := True;

end;

  1. Модифікувати програму, передбачивши можливість табулювання функції і її похідної. Вибір варіанта табулювання здійснити за допомогою додаткового прапорця. Додати кнопку графік для побудови графіка

Результат табулювання функції з похідною та роботи прапорця-«Похідна» продемонстровано на рисунках 2.32 та 2.33

.

Рисунок 2.32-Табулювання без похідної

Табулювання функції з похідною та графік зображено на рисунку 2.33

Рисунок 2.33-Табулювання з похідною та побудова графіком

До меню програми додаємо команду «Побудувати графік», а на формі кнопку «Графік».

Текст команди:

procedure TForm1.Button1Click(Sender: TObject);

var x,y,y1,h,a,b:real;

begin

a:=strtofloat(Edit1.Text); b:=strtofloat(Edit2.Text); h:=strtofloat(Edit3.Text);

With Series1 do

Clear ;

x:=a; if checkbox2.checked then

While x<=b+h/2 do

begin

Series1.AddXY(x, 3*sqr(x)+2*x ,'' ,clRed); x:=x+h;

end

else

While x<=b+h/2 do

Begin Series1.AddXY(x, sqr(x)*x+sqr(x)-7 ,'' ,clRed);

x:=x+h;

end;

end;

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]