- •Лабораторный практикум по информатике для проведения занятий во втором семестре
- •Лабораторная работа №1
- •1.Процедурные и функциональные типы данных.
- •Var p: SwapProc;
- •2. Пример программной реализации функционального типа.
- •X,y : integer;
- •3. Практическая часть
- •3.2. Приближенное интегрирование функций
- •4. Задание.
- •Лабораторная работа №2 Тема занятия: «Модули»
- •1. Назначение модуля и его структура.
- •2. Структура модуля
- •Interface
- •{ Глобальные описания констант, типов, переменных, заголовки процедур и функций}
- •Implementation
- •3. Интерфейсная секция
- •4. Секция инициализации
- •5. Практическая часть
- •Interface
- •Implementation
- •I: Integer;
- •Задание на лабораторную работу
- •Лабораторная работа №3 Тема занятия: «Разработка оконного интерфейса» Задание на лабораторную работу
- •Interface
- •Image2: tImage;
- •Image1: tImage;
- •Image3: tImage;
- •Var Form1: tForm1;
- •Лабораторная работа №4 Тема занятия: «Разработка дополнительной оконной формы для рисования графика функции» Задание на лабораторную работу
- •1.Алгоритм построения графика функции
- •Interface
Interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs,Unit7, StdCtrls,Unit2,Unit3, ExtCtrls, jpeg;
type
TForm1 = class(TForm)
Button1: TButton;
Memo1: TMemo;
Button2: TButton;
ComboBox1: TComboBox;
ComboBox2: TComboBox;
Edit1: TEdit;
Edit2: TEdit;
Edit3: TEdit;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Label6: TLabel;
Label7: TLabel;
Image2: tImage;
Image1: tImage;
Image3: tImage;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure ComboBox1Change(Sender: TObject);
procedure ComboBox2Change(Sender: TObject);
procedure Edit1Change(Sender: TObject);
procedure Edit2Change(Sender: TObject);
procedure Edit3Change(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
// описание глобальных переменных
Var Form1: tForm1;
a,b,eps:real; // левая, правая граница, точность
key,key1:byte; // ключи выбора метода решения и уравнения
rez_stroka:string[40]; //результирующие строки для вывода результата
rez_stroka1:string[40]; // в окно компонента memo1
code_operation:integer; //код завершения операции по преобразованию
//строки в число
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
Form7.Visible:=True;
Form7.Show;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
memo1.Lines.Clear;
if key1=0 then
begin
case key of
0: horda(a,b,eps,f1);
1: horda(a,b,eps,f2);
2: horda(a,b,eps,f3);
3: horda(a,b,eps,f11);
4: horda(a,b,eps,f22);
5: horda(a,b,eps,f33);
end;
rez_stroka:=floattostr(kor);
rez_stroka1:=inttostr(key+1);
memo1.Lines.Add('Корень '+ rez_stroka1 + '-го равнения y='+rez_stroka);
end
else
begin
case key of
0: polovina(a,b,eps,f1);
1: polovina(a,b,eps,f2);
2: polovina(a,b,eps,f3);
3: polovina(a,b,eps,f11);
4: polovina(a,b,eps,f22);
5: polovina(a,b,eps,f33);
end;
rez_stroka:=floattostr(kor1);
rez_stroka1:=inttostr(key+1);
memo1.Lines.Add('Корень '+ rez_stroka1 + '-го равнения y='+rez_stroka);
end;
end;
procedure TForm1.ComboBox1Change(Sender: TObject);
begin
key:=combobox1.ItemIndex;
end;
procedure TForm1.ComboBox2Change(Sender: TObject);
begin
key1:=combobox2.ItemIndex;
end;
procedure TForm1.Edit1Change(Sender: TObject);
begin
VAL(edit1.Text,a,code_operation);
str(a:5:2,rez_stroka);
memo1.Lines.Add(rez_stroka);
end;
procedure TForm1.Edit2Change(Sender: TObject);
begin
VAL(edit2.Text,b,code_operation);
str(b:5:2,rez_stroka);
memo1.Lines.Add(rez_stroka);
end;
procedure TForm1.Edit3Change(Sender: TObject);
begin
VAL(edit3.Text,eps,code_operation);
str(eps:5:3,rez_stroka);
memo1.Lines.Add(rez_stroka);
end;
end.
Модуль вычисления корней уравнения методом хорды Unit 2 имеет следующий вид:
unit Unit2;
interface
uses Math;
type func=function(x:real):real;
var kor:real;
function f1(x:real):real;
function f2(x:real):real;
function f3(x:real):real;
procedure horda(a,b,eps:real; uravn:func; var kor:real);
implementation
function f1;
begin
f1:=sqr(x);
end;
function f2;
begin
f2:=sin(x);
end;
function f3;
begin
f3:=power(x,3)-3*sqr(x)-3*x+10;
end;
procedure horda;
var kors:real;
begin
kor:=a-uravn(a)*(b-a)/(uravn(b)-uravn(a));
repeat
kors:=kor;
if uravn(a)*uravn(kors)<0 then b:=kors
else a:=kors;
kor:=a-uravn(a)*(b-a)/(uravn(b)-uravn(a));
until abs(kor-kors)<eps;
end;
end.
Интерфейс позволяет сравнить работу различных методов отыскания корней уравнения (либо различных методов интегрирования) с точки зрения точности полу-чаемых значений при решении одного и того же уравнения.
