Студопедия

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

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

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






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

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

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

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

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

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

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

     

     

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

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

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

     

    ОТЧЕТ

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

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

     

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

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

    Института Эиф АПК (Ворончихина А.А.)

    Группы 46 ________________________ (Арчимаева Е.Г.)

    (подпись)

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

    (дата)

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

    (подпись)

     

     

    Красноярск 2015

    Задание: Объединить 2 варианта в один приект.

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

    2 вариант: Создать класс комплексное число в алгебраической форме z=x+y × i, поля класса – действительная (x) и мнимая (y) части числа. Методы класса: вычисление корня комплексного числа, вывод комплексного числа. В классе предусмотреть методы перегрузки операций: сложение, вычитание, деление и умножение комплексных чисел.

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

    unit Unit1;

    interface

    uses

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

    StdCtrls, unit2, unit3;

    type

    { TForm1 }

    TForm1 = class(TForm)

    Button1: TButton;

    Button2: TButton;

    Button3: TButton;

    Button4: TButton;

    Button5: TButton;

    Button6: TButton;

    Button7: TButton;

    Button8: TButton;

    Button9: TButton;

    Button10: TButton;

    Button11: TButton;

    Button12: TButton;

    Button13: TButton;

    Edit1: 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;

    Edit19: TEdit;

    Edit20: TEdit;

    Edit21: TEdit;

    Edit22: TEdit;

    Edit23: TEdit;

    Label1: TLabel;

    Label2: TLabel;

    Label3: TLabel;

    Label4: TLabel;

    MainMenu1: TMainMenu;

    Memo1: TMemo;

    Memo2: TMemo;

    MenuItem1: TMenuItem;

    MenuItem2: TMenuItem;

    procedure Button10Click(Sender: TObject);

    procedure Button11Click(Sender: TObject);

    procedure Button12Click(Sender: TObject);

    procedure Button13Click(Sender: TObject);

    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);

    procedure Button8Click(Sender: TObject);

    procedure Button9Click(Sender: TObject);

    procedure MenuItem1Click(Sender: TObject);

    procedure MenuItem2Click(Sender: TObject);

    private

    { private declarations }

    public

    { public declarations }

    end;

    var

    Form1: TForm1;

    m1: TMatr;

    m2: TMatr;

    m3: TMatr;

    m4: TMatr;

    m5: TMatr;

    m6: TMatr;

    Chislo1: Compl_Ch;

    Chislo2: Compl_Ch;

    Chislo3: Compl_Ch;

    implementation

    procedure TForm1.Button1Click(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.Button2Click(Sender: TObject);

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

    begin

    str: =m1.MatrToStr();

    Memo1.Lines.Add(str);

    str: =m2.MatrToStr1();

    Memo1.Lines.Add(str);

    end;

    procedure TForm1.Button3Click(Sender: TObject);

    var str: string; s: string;

    begin

    m3.create();

    m3: =m1+m2;

    str: =m3.MatrToStr2();

    Memo1.Lines.Add(str);

    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;

    procedure TForm1.MenuItem1Click(Sender: TObject);

    begin

    Button1.Visible: =true;

    Button2.Visible: =true;

    Button3.Visible: =true;

    Button4.Visible: =true;

    Button5.Visible: =true;

    Button6.Visible: =true;

    Button7.Visible: =true;

    Button8.Visible: =false;

    Button9.Visible: =false;

    Button10.Visible: =false;

    Button11.Visible: =false;

    Button12.Visible: =false;

    Button13.Visible: =false;

    Edit1.Visible: =true;

    Edit2.Visible: =true;

    Edit3.Visible: =true;

    Edit4.Visible: =true;

    Edit5.Visible: =true;

    Edit6.Visible: =true;

    Edit7.Visible: =true;

    Edit8.Visible: =true;

    Edit9.Visible: =true;

    Edit10.Visible: =true;

    Edit11.Visible: =true;

    Edit12.Visible: =true;

    Edit13.Visible: =true;

    Edit14.Visible: =true;

    Edit15.Visible: =true;

    Edit16.Visible: =true;

    Edit17.Visible: =true;

    Edit18.Visible: =true;

    Edit19.Visible: =true;

    Edit20.Visible: =false;

    Edit21.Visible: =false;

    Edit22.Visible: =false;

    Edit23.Visible: =false;

    Memo1.Visible: =true;

    Memo2.Visible: =false;

    Label1.Visible: =false;

    Label2.Visible: =false;

    Label3.Visible: =false;

    Label4.Visible: =false;

    end;

    procedure TForm1.Button8Click(Sender: TObject);

    var str1: string;

    begin

    Memo2.Lines.Clear;

    chislo1: =Compl_Ch.Create;

    chislo2: =Compl_Ch.Create;

    chislo1.Re: =StrTofloat(Edit20.text);

    chislo1.Im: =StrTofloat(Edit21.text);

    chislo2.Re: =StrTofloat(Edit22.text);

    chislo2.Im: =StrTofloat(Edit23.text);

    chislo3: =chislo1+chislo2;

    Str1: ='chislo1+chislo2= '+ FloatToStr(chislo3.Re) + '+' + FloatToStr(chislo3.Im) + 'i';

    Memo2.Lines.Add(Str1);

    end;

    procedure TForm1.Button9Click(Sender: TObject);

    var str1: string;

    begin

    Memo2.Lines.Clear;

    chislo1: =Compl_Ch.Create;

    chislo2: =Compl_Ch.Create;

    chislo1.Re: =StrTofloat(Edit20.text);

    chislo1.Im: =StrTofloat(Edit21.text);

    chislo2.Re: =StrTofloat(Edit22.text);

    chislo2.Im: =StrTofloat(Edit23.text);

    chislo3: =chislo1-chislo2;

    Str1: ='chislo1-chislo2= '+ FloatToStr(chislo3.Re) + '+' + FloatToStr(chislo3.Im) + 'i';

    Memo2.Lines.Add(Str1);

    end;

    procedure TForm1.Button10Click(Sender: TObject);

    var str1: string;

    begin

    Memo2.Lines.Clear;

    chislo1: =Compl_Ch.Create;

    chislo2: =Compl_Ch.Create;

    chislo1.Re: =StrTofloat(Edit20.text);

    chislo1.Im: =StrTofloat(Edit21.text);

    chislo2.Re: =StrTofloat(Edit22.text);

    chislo2.Im: =StrTofloat(Edit23.text);

    chislo3: =chislo1*chislo2;

    Str1: ='chislo1*chislo2= '+ FloatToStr(chislo3.Re) + '+' + FloatToStr(chislo3.Im) + 'i';

    Memo2.Lines.Add(Str1);

    end;

    procedure TForm1.Button11Click(Sender: TObject);

    var str1: string;

    begin

    Memo2.Lines.Clear;

    chislo1: =Compl_Ch.Create;

    chislo2: =Compl_Ch.Create;

    chislo1.Re: =StrTofloat(Edit20.text);

    chislo1.Im: =StrTofloat(Edit21.text);

    chislo2.Re: =StrTofloat(Edit22.text);

    chislo2.Im: =StrTofloat(Edit23.text);

    chislo3: =chislo1/chislo2;

    Str1: ='chislo1/chislo2= '+ FloatToStr(chislo3.Re) + '+' + FloatToStr(chislo3.Im) + 'i';

    Memo2.Lines.Add(Str1);

    end;

    procedure TForm1.Button12Click(Sender: TObject);

    var str1: string;

    begin

    Memo2.Lines.Clear;

    chislo1: =Compl_Ch.Create;

    chislo2: =Compl_Ch.Create;

    chislo1.Re: =StrTofloat(Edit20.text);

    chislo1.Im: =StrTofloat(Edit21.text);

    chislo2.Re: =StrTofloat(Edit22.text);

    chislo2.Im: =StrTofloat(Edit23.text);

    Str1: ='Argument 1 chisla'+FloatToStr(chislo1.Argument());

    Memo2.Lines.Add(Str1);

    end;

    procedure TForm1.Button13Click(Sender: TObject);

    var str1: string;

    begin

    Memo2.Lines.Clear;

    chislo1: =Compl_Ch.Create;

    chislo2: =Compl_Ch.Create;

    chislo1.Re: =StrTofloat(Edit20.text);

    chislo1.Im: =StrTofloat(Edit21.text);

    chislo2.Re: =StrTofloat(Edit22.text);

    chislo2.Im: =StrTofloat(Edit23.text);

    Str1: ='Argument 2 chisla'+FloatToStr(chislo2.Argument());

    Memo2.Lines.Add(Str1);

    end;

    end.

    procedure TForm1.MenuItem2Click(Sender: TObject);

    begin

    Button1.Visible: =false;

    Button2.Visible: =false;

    Button3.Visible: =false;

    Button4.Visible: =false;

    Button5.Visible: =false;

    Button6.Visible: =false;

    Button7.Visible: =false;

    Button8.Visible: =true;

    Button9.Visible: =true;

    Button10.Visible: =true;

    Button11.Visible: =true;

    Button12.Visible: =true;

    Button13.Visible: =true;

    Edit1.Visible: =false;

    Edit2.Visible: =false;

    Edit3.Visible: =false;

    Edit4.Visible: =false;

    Edit5.Visible: =false;

    Edit6.Visible: =false;

    Edit7.Visible: =false;

    Edit8.Visible: =false;

    Edit9.Visible: =false;

    Edit10.Visible: =false;

    Edit11.Visible: =false;

    Edit12.Visible: =false;

    Edit13.Visible: =false;

    Edit14.Visible: =false;

    Edit15.Visible: =false;

    Edit16.Visible: =false;

    Edit17.Visible: =false;

    Edit18.Visible: =false;

    Edit19.Visible: =false;

    Edit20.Visible: =true;

    Edit21.Visible: =true;

    Edit22.Visible: =true;

    Edit23.Visible: =true;

    Memo1.Visible: =false;

    Memo2.Visible: =true;

    Label1.Visible: =true;

    Label2.Visible: =true;

    Label3.Visible: =true;

    Label4.Visible: =true;

    end;

    Unit 2

    unit Unit2;

    interface

    uses

    Classes, SysUtils;

    type

    TMatr=class

    private

    public

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

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

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

    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;

     

    implementation

    uses unit1;

    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;

    end.

    Unit 3

    unit Unit3;

    interface

    uses

    Classes, SysUtils;

    type Compl_Ch=class

    private

    public

    Re: real;

    Im: real;

    Constructor Create();

    Function Argument(): real;

    end;

    Operator+(const a, b: Compl_Ch)r: Compl_Ch;

    Operator-(const a, b: Compl_Ch)r: Compl_Ch;

    Operator*(const a, b: Compl_Ch)r: Compl_Ch;

    Operator/(const a, b: Compl_Ch)r: Compl_Ch;

    implementation

    uses unit1;

    Constructor Compl_Ch.Create;

    begin

    Re: =0; Im: =0;

    inherited Create;

    end;

    Function Compl_Ch.Argument(): real;

    begin

    argument: =arctan(Im/Re);

    end;

    Operator+(const a, b: Compl_Ch)r: Compl_Ch;

    begin

    r: =Compl_Ch.Create();

    r.Re: =a.Re+b.Re;

    r.Im: =a.Im+b.Im;

    end;

    Operator-(const a, b: Compl_Ch)r: Compl_Ch;

    begin

    r: =Compl_Ch.Create();

    r.Re: =a.Re-b.Re;

    r.Im: =a.Im-b.Im;

    end;

    Operator*(const a, b: Compl_Ch)r: Compl_Ch;

    begin

    r: =Compl_Ch.Create();

    r.Re: =a.Re*b.Re;

    r.Im: =a.Im*b.Im;

    end;

    Operator/(const a, b: Compl_Ch)r: Compl_Ch;

    begin

    r: =Compl_Ch.Create();

    r.Re: =a.Re/b.Re;

    r.Im: =a.Im/b.Im;

    end;

    end.

     

     

    Printscreen:

    Вариант 1:

    Вариант 2:


    <== предыдущая лекция | следующая лекция ==>
    Первый этап: Нужно моделировать производственную функцию. | Выполнение работы




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