Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Красноярск 2015

Министерство сельского хозяйства Российской Федерации

Департамент научно-технической политики и образования

Федеральное государственное бюджетное образовательное учреждение

Высшего образования

КРАСНОЯРСКИЙ ГОСУДАРСКВЕННЫЙ АГРАРНЫЙ УНИВЕРСИТЕТ

Институт Экономики и финансов АПК

 

 

Кафедра «Бизнес информатики и

информационно-компьютерной

безопасности»

 

ОТЧЕТ

По дисциплине «Объектно-ориентированное программирование»

Лабораторная работа №2

 

Выполнила студентка 4 курса

Очной формы обучения

Института Эиф АПК

Группы 46 ________________________ (Ворончихина А.А.)

(подпись)

Представлена на проверку ________________________

(дата)

Проверена Титовская Т.С. ________________________

(подпись)

 

 

Красноярск 2015

Задание: Создать класс квадратная матрица, поля класса – размерность и элементы матрицы. Методы класса: проверка, является ли матрица матрица верхнетреугольной или нижнетреугольной, вывод матрицы. В классе предусмотреть методы перегрузки операций: сложение, вычитание, умножение матриц, умножение матрицы на число.

Код программы:

unit Unit1;

interface

uses

Classes, SysUtils, FileUtil, LResources, Forms, Controls, Graphics, Dialogs,

StdCtrls;

type

TForm1 = class(TForm)

Button1: TButton;

Button2: TButton;

Button3: TButton;

Button4: TButton;

Button5: TButton;

Button6: TButton;

Button7: TButton;

Edit1: TEdit;

Edit19: TEdit;

Edit2: TEdit;

Edit3: TEdit;

Edit4: TEdit;

Edit5: TEdit;

Edit6: TEdit;

Edit7: TEdit;

Edit8: TEdit;

Edit9: TEdit;

Edit10: TEdit;

Edit11: TEdit;

Edit12: TEdit;

Edit13: TEdit;

Edit14: TEdit;

Edit15: TEdit;

Edit16: TEdit;

Edit17: TEdit;

Edit18: TEdit;

Memo1: TMemo;

procedure Button1Click(Sender: TObject);

procedure Button2Click(Sender: TObject);

procedure Button3Click(Sender: TObject);

procedure Button4Click(Sender: TObject);

procedure Button5Click(Sender: TObject);

procedure Button6Click(Sender: TObject);

procedure Button7Click(Sender: TObject);

private

{ private declarations }

public

{ public declarations }

end;

 

 

type

TMatr=class

private

x: array[1..3, 1..3] of real; y: array[1..3, 1..3] of real; z: array[1..3, 1..3] of real;

public

constructor create();

function MatrToStr(): String; function MatrToStr1(): String; function MatrToStr2(): String;

end;

operator +(const a, b: TMatr)r: TMatr; //сложение матриц

operator -(const a, b: TMatr)r: TMatr; //вычитание матриц

operator *(const a, b: TMatr)r: TMatr; //умножение матриц

operator *(const a: TMatr; b: real)r: TMatr; //умножение матрицы на число

var

Form1: TForm1;

m1: TMatr;

m2: TMatr;

m3: TMatr;

m4: TMatr;

m5: TMatr;

m6: TMatr;

implementation

constructor TMatr.Create();

begin

x[1, 1]: =0; y[1, 1]: =0; z[1, 1]: =0;

x[1, 2]: =0; y[1, 2]: =0; z[1, 2]: =0;

x[1, 3]: =0; y[1, 3]: =0; z[1, 2]: =0;

x[2, 1]: =0; y[2, 1]: =0; z[2, 1]: =0;

x[2, 2]: =0; y[2, 2]: =0; z[2, 2]: =0;

x[2, 3]: =0; y[2, 3]: =0; z[2, 3]: =0;

x[3, 1]: =0; y[3, 1]: =0; z[3, 1]: =0;

x[3, 2]: =0; y[3, 2]: =0; z[3, 2]: =0;

x[3, 3]: =0; y[3, 3]: =0; z[3, 3]: =0;

inherited Create;

end;

operator +(const a, b: TMatr)r: TMatr; //сложение матриц

var i, j: integer;

begin

r: =TMatr.Create();

for i: =1 to 3 do

for j: =1 to 3 do

r.z[i, j]: =a.x[i, j]+b.y[i, j];

end;

operator -(const a, b: TMatr)r: TMatr; //вычитание матриц

var i, j: integer;

begin

r: =TMatr.Create();

for i: =1 to 3 do

for j: =1 to 3 do

r.z[i, j]: =a.x[i, j]-b.y[i, j];

end;

 

operator *(const a, b: TMatr)r: TMatr; //умножение матриц

var i, j: integer;

begin

r: =TMatr.Create();

for i: =1 to 3 do

for j: =1 to 3 do

r.z[i, j]: =a.x[i, j]*b.y[i, j];

end;

operator *(const a: TMatr; b: real)r: TMatr; //умножение матрицы на число

var i, j: integer;

begin

r: =TMatr.Create();

for i: =1 to 3 do

for j: =1 to 3 do

r.z[i, j]: =a.x[i, j]*b;

end;

function TMatr.MatrToStr(): String;

var s: string;

i, j: integer;

begin

s: ='';

for i: =1 to 3 do

begin

for j: =1 to 3 do

s: =s+FloatTostr(x[i, j])+' ';

s: =s+#13#10;

end;

MatrToStr: =s;

end;

function TMatr.MatrToStr1(): String;

var s: string;

i, j: integer;

begin

s: ='';

for i: =1 to 3 do

begin

for j: =1 to 3 do

s: =s+FloatTostr(y[i, j])+' ';

s: =s+#13#10;

end;

MatrToStr1: =s;

end;

function TMatr.MatrToStr2(): String;

var s: string;

i, j: integer;

begin

s: ='';

for i: =1 to 3 do

begin

for j: =1 to 3 do

s: =s+FloatTostr(z[i, j])+' ';

s: =s+#13#10;

end;

MatrToStr2: =s;

End;

procedure TForm1.Button1Click(Sender: TObject);

var str: string; s: string;

begin

str: =m1.MatrToStr();

Memo1.Lines.Add(str);

str: =m2.MatrToStr1();

Memo1.Lines.Add(str);

end;

procedure TForm1.Button2Click(Sender: TObject);

var str: string; i, j: integer; a, b: Tmatr;

begin

m3.create();

m3: =m1+m2;

str: =m3.MatrToStr2();

Memo1.Lines.Add(str);

end;

procedure TForm1.Button3Click(Sender: TObject);

begin

m1: =TMatr.Create();

m2: =TMatr.Create();

m1.x[1, 1]: =StrToFloat(Edit1.Text); m2.y[1, 1]: =StrToFloat(Edit10.Text);

m1.x[1, 2]: =StrToFloat(Edit2.text); m2.y[1, 2]: =StrToFloat(Edit11.text);

m1.x[1, 3]: =StrToFloat(Edit3.text); m2.y[1, 3]: =StrToFloat(Edit12.text);

m1.x[2, 1]: =StrToFloat(Edit4.text); m2.y[2, 1]: =StrToFloat(Edit13.text);

m1.x[2, 2]: =StrToFloat(Edit5.text); m2.y[2, 2]: =StrToFloat(Edit14.text);

m1.x[2, 3]: =StrToFloat(Edit6.text); m2.y[2, 3]: =StrToFloat(Edit15.text);

m1.x[3, 1]: =StrToFloat(Edit7.text); m2.y[3, 1]: =StrToFloat(Edit16.text);

m1.x[3, 2]: =StrToFloat(Edit8.text); m2.y[3, 2]: =StrToFloat(Edit17.text);

m1.x[3, 3]: =StrToFloat(Edit9.text); m2.y[3, 3]: =StrToFloat(Edit18.text);

end;

procedure TForm1.Button4Click(Sender: TObject);

var str: string;

begin

m4.create();

m4: =m1-m2;

str: =m4.MatrToStr2();

Memo1.Lines.Add(str);

end;

procedure TForm1.Button5Click(Sender: TObject);

var str: string;

begin

m5.create();

m5: =m1*m2;

str: =m5.MatrToStr2();

Memo1.Lines.Add(str);

end;

 

 

procedure TForm1.Button6Click(Sender: TObject);

var str: string; b: real;

begin

b: =Strtofloat(Edit19.text);

m6.create();

m6: =m1*b;

str: =m6.MatrToStr2();

Memo1.Lines.Add(str);

end;

procedure TForm1.Button7Click(Sender: TObject);

var n1, v1, n2, v2: boolean;

i, j, k: integer;

begin

n1: =false; v1: =false;

n2: =false; v2: =false;

for i: =1 to 3 do

for j: =1 to 3 do

begin

if (j< i) and (m1.x[i, j]=0) then n1: =true;

if (j> i) and (m1.x[i, j]=0) then v1: =true;

if (j< i) and (m2.y[i, j]=0) then n2: =true;

if (j> i) and (m2.y[i, j]=0) then v2: =true;

end;

if (n1=true) then showmessage('1-ая верхнетреугольная');

if (v1=true) then showmessage('1-ая нижнетреугольная');

if (n2=true) then showmessage('2-ая верхнетреугольная');

if (v2=true) then showmessage('2-ая нижнетреугольная');

if (v1=false) and (n1=false) then showmessage('1 - никакая');

if (v2=false) and (n2=false) then showmessage('2 - никакая');

end;

initialization

end.

 

Printscreen.

Результат:

<== предыдущая лекция | следующая лекция ==>
Свойства маршрутизатора | Разомкнуть САУ и оценить устойчивость по критерию Найквиста.




© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.