
Программирование и основы алгоритмизации - Лабораторные работы (КИ МГОУ) / Отчёты / Лабораторная работа №3
.docxФЕДЕРАЛЬНОЕ АГЕНСТВО ПО ОБРАЗОВАНИЮ
Коломенский институт (филиал)
Государственного образовательного учреждения
Высшего профессионального образования
«МОСКОВСКИЙ ГОСУДАРСТВЕННЫЙ ОТКРЫТЫЙ УНИВЕРСИТЕТ»
____________________________________________________
Кафедра автоматики и электроники в машиностроении
Отчёт
по лабораторной работе №3
на тему: «Программирование итерационных алгоритмов решения
нелинейных уравнений»
по дисциплине:
«Программирование и основы алгоритмизации»
Выполнил: студент группы УТС-11
Осипов А. А. (№11147)
Аудитория №210, ПК №12
16.05.12г.
Принял: преподаватель
Филоненко Ирина Николаевна
г. Коломна, 2012г.
Задание.
Вариант |
Уравнение |
Метод |
3 |
x4+7x3-x+12=0 |
Ньютона, ε = 10-3 |
Блок-схема:
Код программы:
unit Unit5;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, TeEngine, Series, ExtCtrls, TeeProcs, Chart, StdCtrls;
type
TTask4 = class(TForm)
Button1: TButton;
Edit1: TEdit;
Edit2: TEdit;
Edit3: TEdit;
Edit4: TEdit;
Edit5: TEdit;
Edit6: TEdit;
Button2: TButton;
Chart1: TChart;
Series1: TLineSeries;
GroupBox1: TGroupBox;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
GroupBox2: TGroupBox;
Label4: TLabel;
Label5: TLabel;
Label6: TLabel;
Button3: TButton;
Button4: TButton;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button4Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Task4: TTask4;
implementation
{$R *.dfm}
function f1(x:real):real;
begin
f1:=x*x*x*x+7*x*x*x-x+12;
end;
function f2(x:Real):Real;
begin
f2:=4*x*x*x+21*x*x-1;
end;
procedure TTask4.Button1Click(Sender: TObject);
var
e,x,y,y_:real;
begin
x:=StrToFloat(Edit1.Text);
e:=StrToFloat(Edit2.Text);
repeat
y:=f1(x);
y_:=f2(x);
if y_=0 then exit;
x:=x-y/y_;
until abs(f1(x))<e;
Edit3.Text:=FloatToStr(x);
end;
procedure TTask4.Button2Click(Sender: TObject);
var
a,b,h,y:real;
begin
a:=StrToFloat(Edit4.Text);
b:=StrToFloat(Edit5.Text);
h:=StrToFloat(Edit6.Text);
while a<=b do
begin
y:=f1(a);
Chart1.Serieslist[0].addXY(a,y,' ',clred);
a:=a+h;
end;
end;
procedure TTask4.Button4Click(Sender: TObject);
begin
close;
end;
procedure TTask4.Button3Click(Sender: TObject);
begin
Edit1.Clear;
Edit2.Clear;
Edit3.Clear;
Edit4.Clear;
Edit5.Clear;
Edit6.Clear;
Chart1.SeriesList[0].Clear;
end;
end.