Главная Контакты В избранное
  • Отчет по лабораторным работам Дисциплина: «Объектно-ориентированное моделирование и программирование»

    АвторАвтор: student  Опубликовано: 9-12-2020, 21:53  Комментариев: (0)

    Скачать: oom.zip [5,46 Mb] (cкачиваний: 0)  

     

    Отчет по лабораторным работам

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

     

     


     

    ЗАДАНИЕ

    по выполнению лабораторных работ

    студенту Якименко Олегу Геннадьевичу, обучающегося по специальности: 09.03.03 «Прикладная информатика».

     

    1. Разработка приложений линейной и разветвляющейся структуры в среде программирования Delphi.

    2.Разработка приложений с применением циклов. Работа с массивами.

    3.Разработка приложения содержащего строковую информацию, записи и файлы.

    4.Разработка приложений с использованием подпрограмм и модулей. График в среде программированияDelphi.

    5. Разработка приложений управляемого с помощью панели инструментов.

    Научный руководитель лабораторных работ Кромина Л.А, доцент кафедры АСУ.

     

    Срок сдачи студентом законченной ВКР на кафедру до «23» декабря 2016 г.


     

    СОДЕРЖАНИЕ
    1

    Разработка приложений линейной и разветвляющейся структуры в среде программирования Delphi

    4
    2
    Разработка приложений с применением циклов. Работа с массивами
    11
    3

    Разработка приложения содержащего строковую информацию, записи и файлы

    16
    4

    Разработка приложений с использованием подпрограмм и модулей. График в среде программирования Delphi

    23
    5

    Разработка приложений управляемого с помощью панели инструментов.

    41

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

    РАЗРАБОТКА ПРИЛОЖЕНИЙ ЛИНЕЙНОЙ И РАЗВЕТВЛЯЮЩЕЙСЯ СТРУКТУРЫ В СРЕДЕ ПРОГРАММИРОВАНИЯ DELPHI

    Цель лабораторной работы: изучить основы среды Delphi, основы пользования стандартными компонентами организации переключений (TCheckBox, TRadioGroup и др.). Составить простейшую программу для линейной структуры, также используя компоненты организации переключений разработать интерфейс и программу для заданного разветвляющегося алгоритма.

    Ход лабораторной работы:

    1. Запустил среду программирования Delphi.

    2. Выбрал необходимый размер формы.

    3. Разместили на форме компоненты Edit, label, предварительно выбрав их из Tool Palette.

    4. Отредактировал стандартное содержимое компонентов (очистил), изменив их Caption в Object Inspector.

    5. Написал программу по представленному образцу, программа в среде разработки представлена на рисунке 1.

     

    Рисунок 1 – Форма программы в среде разработки

     

    6.Запустил отладку программы. Запущенная программа представлена на рисунке 2.

    Рисунок 2 – Запущенная программа

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

    unit Unit1;

     

    interface

     

    uses

    Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,

    Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls;

     

    type

    TForm1 = class(TForm)

    Edit1: TEdit;

    Edit2: TEdit;

    Edit3: TEdit;

    Label1: TLabel;

    Label2: TLabel;

    Label3: TLabel;

    Label4: TLabel;

    Memo1: TMemo;

    Button1: TButton;

    procedure FormCreate(Sender: TObject);

    procedure Button1Click(Sender: TObject);

    private

    { Private declarations }

    public

    { Public declarations }

    end;

    var

    Form1: TForm1;

     

    implementation

     

    {$R *.dfm}

     

    procedure TForm1.Button1Click(Sender: TObject);

    var x,y,z:real;

    a,b,c,u:real;

    begin

    x:=StrToFloat(Edit1.Text);

    Memo1.Lines.Add('x='+Edit1.Text);

    y:=StrToFloat(Edit2.Text);

    Memo1.Lines.Add('y='+Edit2.Text);

    z:=StrToFloat(Edit3.Text);

    Memo1.Lines.Add('z='+Edit3.Text);

    a:=Sqr(Sin(x+y)/Cos(x+y));

    b:=Exp(y-z);

    c:=Sqrt(Cos(Sqr(x))+Sin(Sqr(z)));

    u:=a-b*c;

    Memo1.Lines.Add('ðåçóëüòàò u='+FloatToStrF(u, ffFixed, 8,2));

    end;

     

    procedure TForm1.FormCreate(Sender: TObject);

    begin

    Edit1.Text:='3,4';

    Edit2.Text:='0,74';

    Edit3.Text:='19,43';

    Memo1.Clear;

    end;

     

    end.

    7. Написал программу с разветвляющимся вычислительным процессом. Программа в среде разработки представлена на рисунке 3.

     

    Рисунок 3 – Программа с разветвляющимся вычислит. процессом в среде разработки

     

    8. Запустил отладку программы. Запущенная программа представлена на рисунке 4.

     

    Рисунок 4 – Программа с разветвляющимся вычисл. процессом в процессе работы

     

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

    unit Unit2;

     

    interface

     

    uses

    Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,

    Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Vcl.ExtCtrls;

     

    type

    TForm1 = class(TForm)

    Edit1: TEdit;

    Edit2: TEdit;

    Edit3: TEdit;

    Label1: TLabel;

    Label2: TLabel;

    Label3: TLabel;

    Label4: TLabel;

    Memo1: TMemo;

    Button1: TButton;

    CheckBox1: TCheckBox;

    RadioGroup1: TRadioGroup;

    procedure FormCreate(Sender: TObject);

    procedure Button1Click(Sender: TObject);

    private

    { Private declarations }

    public

    { Public declarations }

    end;

     

    var

    Form1: TForm1;

     

    implementation

     

    {$R *.dfm}

     

    procedure TForm1.Button1Click(Sender: TObject);

    var x,y,z,u,max:extended;

    begin

    x:=StrToFloat(Edit1.Text);

    Memo1.Lines.Add('x='+Edit1.Text);

    y:=StrToFloat(Edit2.Text);

    Memo1.Lines.Add('y='+Edit2.Text);

    z:=StrToFloat(Edit3.Text);

    Memo1.Lines.Add('z='+Edit3.Text);

    case RadioGroup1.ItemIndex of

    0: u:=cos(x);

    1: u:=sin(x);

    2: u:=sin(x)/cos(x);

    end;

    if CheckBox1.Checked then

    begin

    u:=abs(u);

    y:=abs(y);

    z:=abs(z);

    end;

    if u>y then max:=u

    else max:=y;

    if z>max then max:=z;

    if CheckBox1.Checked then Memo1.Lines.Add('MaxAbs='+FloatToStrF(max, ffFixed, 8,2))

    else Memo1.Lines.Add('max='+FloatToStrF(max, ffFixed, 8,2));

    end;

     

    procedure TForm1.FormCreate(Sender: TObject);

    begin

    Edit1.Text:='0,1';

    Edit2.Text:='0,356';

    Edit3.Text:='0,0';

    Memo1.Clear;

    end;

     

    end.

     

    Вывод: изучил основы среды Delphi, основы пользования стандартными компонентами организации переключений (TCheckBox, TRadioGroup и др.). Составил простейшую программу для линейной структуры, также используя компоненты организации переключений, разработал интерфейс и программу для заданного разветвляющегося алгоритма.


     

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

    РАЗРАБОТКА ПРИЛОЖЕНИЙ С ПРИМЕНЕНИЕМ ЦИКЛОВ. РАБОТА С МАССИВАМИ.

    Цель работы: изучить средства отладки программ в среде Delphi, свойства компонента TStringGrid.Написать и отладить программу для циклического вычислительного процесса. Написать программу с использованием массивов.

    Задание: написать и отладить программу, которая выводит таблицу значений функций S(x) для х изменяющихся в интервале от x1 до x2 с шагом h.

    Ход лабораторной работы:

    1.Запустил среду программирования Delphi.

    2.Выбрал необходимый размер формы.

    3.Разместили на форме компоненты Edit, label, предварительно выбрав их из Tool Palette.

    4.Отредактировал стандартное содержимое компонентов (очистил), изменив их Caption в Object Inspector.

    5.Добавил компонент StringGrid на форму.

    6.Добавил возможность выбора функции в программе.

    7.Добавил Button на форму и присвоил ей выполнение необходимых действий. Получившая программа представлена на рисунке 1.

    Рисунок 1 – Форма программы в среде разработки

    8.Запустил отладку программы. Запущенная программа указана на рисунке 2.

    Рисунок 2 – Запущенная программа

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

    unit Unit5;

    interface

    uses

    Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,

    Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Vcl.ExtCtrls, Vcl.Grids;

    type

    TForm5 = class(TForm)

    Label1: TLabel;

    Edit1: TEdit;

    Button1: TButton;

    Label2: TLabel;

    Label3: TLabel;

    Edit2: TEdit;

    Edit3: TEdit;

    RadioGroup1: TRadioGroup;

    StringGrid1: TStringGrid;

    procedure FormCreate(Sender: TObject);

    procedure Button1Click(Sender: TObject);

    private

    { Private declarations }

    public

    { Public declarations }

    end;

    var

    Form5: TForm5;

    implementation

    {$R *.dfm}

    procedure TForm5.Button1Click(Sender: TObject);

    var x1,x2,x,h,s,k,m:integer;

    y:extended;

    I,j:integer;

    tabl:array[1..150] of extended;

    begin

    for i := 1 to 5 do begin

    StringGrid1.Cells[i,0]:=' ';

    StringGrid1.Cells[i,1]:=' ';

    StringGrid1.Cells[i,2]:=' ';

    end;

     

     

    h:=StrToInt(Edit1.Text);

    x1:=StrToInt(Edit2.Text);

    x2:=StrToInt(Edit3.Text);

    j:=1;

    s:=0;

    k:=x1;

    StringGrid1.Cells[0,0]:='№элемента';

    StringGrid1.Cells[0,1]:='x';

    StringGrid1.Cells[0,2]:='S(x)';

    m:=2;

    repeat

    StringGrid1.Cells[1,1]:=FloatTostrF(x1, ffFixed, 8,2);

    tabl[j]:=k;

    k:=k+h;

    if k>x2 then break;

    StringGrid1.Cells[m,1]:=FloatTostrF(k, ffFixed, 8,2);

    s:=s+1;

    j:=j+1;

    m:=m+1;

    until (k>=x2);

    tabl[j]:=k;

    for I := 1 to s+1 do begin

    StringGrid1.Cells[I,0]:=FloatTostrF(I, ffFixed, 8,2);

    end;

    case RadioGroup1.ItemIndex of

    0: begin for i:=1 to s+1 do tabl[i]:=5*tabl[i]+3; end;

    1: begin for i:=1 to s+1 do tabl[i]:=sqr( tabl[i]); end;

    2: begin for i:=1 to s+1 do tabl[i]:=sqr( tabl[i])*tabl[i]; end;

    3: begin for i:=1 to s+1 do tabl[i]:=sin( tabl[i]); end;

    4: begin for i:=1 to s+1 do tabl[i]:=cos( tabl[i]); end;

    5: begin for i:=1 to s+1 do tabl[i]:=sin( tabl[i])/cos( tabl[i]); end;

    end;

    for I := 1 to s+1 do begin

    StringGrid1.Cells[I,2]:=FloatTostrF(tabl[i], ffFixed, 8,2);

    end;

    end;

    procedure TForm5.FormCreate(Sender: TObject);

    begin

    Edit1.Text:=' ';

    Edit2.Text:=' ';

    Edit3.Text:=' ';

    end;

    end.

     

    Вывод: изучил средства отладки программ в среде Delphi, свойства компонента TStringGrid.Написал и отладил программу для циклического вычислительного процесса с использованием массивов.


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

    РАЗРАБОТКА ПРИЛОЖЕНИЯ СОДЕРЖАЩЕГО СТРОКОВУЮ ИНФОРМАЦИЮ, ЗАПИСИ И ФАЙЛЫ.

    Цель работы: Изучить методы программирования с использованием строк и правила работы с компонентами TListBox и TComboBox.

    Задание: написать программу, вводящую в файл или читающую из файла ведомость абитуриентов, сдавших вступительные экзамены. Каждая запись должна содержать фамилию, а также оценки по физике, математике и сочинению. Вывести список абитуриентов, отсортированный в порядке уменьшения их среднего балла и записать эту информацию в текстовой файл.

    Ход лабораторной работы:

    1.Запустили среду программирования Delphi.

    2.Выбрали необходимый размер формы.

    3.Разместили на форме компоненты Edit, label, предварительно выбрав их из Tool Palette.

    4.Отредактировали стандартное содержимое компонентов (очистили), изменив их Caption в Object Inspector. Затем, в Label4 сделали невидимым.

    5.Разместил кнопки ввода записи, создания файла, вывода записей, сортировки записей, и кнопку bitbtn.

    6.Прописал кнопкам исполняемый код, получившаяся форма представлена на рисунке 1.

    Рисунок 1 – Форма программы в среде разработки

     

    7.Запустил отладку программы. Работающая программа показана на рисунке 2.

    Рисунок 2 – Программа в режиме внесения записей

    Рисунок 3 – Программа сохранила и отсортировала записи

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

    unit Unit3;

     

    interface

     

    uses

    Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,

    Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.Buttons, Vcl.StdCtrls;

     

    type

    TForm6 = class(TForm)

    Label1: TLabel;

    Edit1: TEdit;

    Button1: TButton;

    BitBtn1: TBitBtn;

    OpenDialog1: TOpenDialog;

    SaveDialog1: TSaveDialog;

    Label2: TLabel;

    Label3: TLabel;

    Label4: TLabel;

    Edit2: TEdit;

    Edit3: TEdit;

    Edit4: TEdit;

    Button2: TButton;

    Button3: TButton;

    Button4: TButton;

    Button5: TButton;

    Memo1: TMemo;

    procedure FormCreate(Sender: TObject);

    procedure Button1Click(Sender: TObject);

    procedure Button2Click(Sender: TObject);

    procedure Button3Click(Sender: TObject);

    procedure Button4Click(Sender: TObject);

    procedure Button5Click(Sender: TObject);

    procedure BitBtn1Click(Sender: TObject);

     

    private

    { Private declarations }

    public

    { Public declarations }

    end;

     

    Type

    TStudent= record

    FIO:string[40];

    ocn:array[1..3]of word;

    sball:extended;

    end;

     

    var

    FZ: file of TStudent;

    Ft: TextFile;

    Stud: array [1..100] of TStudent;

    Nzap: integer;

    FileNameZ, FileNameT: string;

     

    var

    Form6: TForm6;

     

    implementation

     

    {$R *.dfm}

     

    procedure TForm6.BitBtn1Click(Sender: TObject);

    begin

    CloseFile(FZ);

    end;

     

    procedure TForm6.Button1Click(Sender: TObject);

    begin

    Nzap:=Nzap+1;

    with Stud[Nzap] do

    begin

    FIO:=Edit1.Text;

    ocn[1]:=StrToInt(Edit2.Text);

    ocn[2]:=StrToInt(Edit3.Text);

    ocn[3]:=StrToInt(Edit4.Text);

    sball:=(ocn[1]+ocn[2]+ocn[3])/3;

    Memo1.Lines.Add(FIO+''+IntToStr(ocn[1])+' '+IntToStr(ocn[2])+' '+IntToStr(ocn[3]));

    end;

    Write(FZ, Stud[Nzap]);

    Edit1.Text:='';

    Edit2.Text:='';

    Edit3.Text:='';

    Edit4.Text:='';

    end;

     

     

     

    procedure TForm6.Button2Click(Sender: TObject);

    begin

    OpenDialog1.Title:='Создать новый файл';

    if OpenDialog1.Execute then begin

    FileNameZ:=OpenDialog1.FileName;

    AssignFile(FZ, FileNameZ);

    Rewrite(FZ);

    Button1.Show;

    end;

     

    end;

     

    procedure TForm6.Button3Click(Sender: TObject);

    begin

    if OpenDialog1.Execute then begin

    FileNameZ:=OpenDialog1.FileName;

    AssignFile(FZ, FileNameZ);

    Reset(FZ);

    end;

    while not EOF(FZ) do begin

    Nzap:=Nzap+1;

    Read(FZ, Stud[Nzap]);

    with Stud[Nzap] do Memo1.Lines.Add(FIO+''+IntToStr(ocn[1])+' '+IntToStr(ocn[2])+' '+IntToStr(ocn[3]));

    end;

    Button1.Show;

    end;

     

    procedure TForm6.Button4Click(Sender: TObject);

    var i,j: word;

    st:Tstudent;

    begin

    for i:= 1 to Nzap-1 do

    for j := i+1 to Nzap do

    if Stud[i].sball<Stud[j].sball then begin

    st:=Stud[i];

    Stud[i]:=Stud[j];

    Stud[j]:=st;

    end;

    Memo1.Clear;

    for i := 1 to Nzap do with Stud[i] do

    Memo1.Lines.Add(IntToStr(i)+' '+FIO+' ' +FloatToStrF(sball, ffFixed, 4,2));

     

     

     

    end;

     

    procedure TForm6.Button5Click(Sender: TObject);

    var i:word;

    begin

    if SaveDialog1.Execute then begin

    FileNameT:=SaveDialog1.FileName;

    AssignFile(Ft, FileNameT);

    Rewrite(Ft);

    end;

    for i := 1 to Nzap do with Stud[i] do

    Writeln(Ft, i:4,' ',FIO, sball, 8,2);

    CloseFile(Ft);

     

    end;

     

    procedure TForm6.FormCreate(Sender: TObject);

    begin

    Edit1.Text:='';

    Edit2.Text:='';

    Edit3.Text:='';

    Edit4.Text:='';

    Memo1.Clear;

    Button1.Hide;

    Nzap:=0;

    end;

     

     

    end.

     

    Вывод: изучил методы программирования с использованием строк и правила работы с компонентами TListBox и TComboBox. Написал программу согласно заданию.


     

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

    РАЗРАБОТКА ПРИЛОЖЕНИЙ С ИСПОЛЬЗОВАНИЕМ ПОДПРОГРАММ И МОДУЛЕЙ. ГРАФИК В СРЕДЕ ПРОГРАММИРОВАНИЯ DELPHI

    Цель лабораторной работы: изучить возможности Delphi для написания подпрограмм и создания модулей, построения графиков с помощью компонента отображения графической информации TChart, изучить основные графические компоненты, их свойства и методы. Составить и отладить программу, использующую внешний модуль Unit с подпрограммой, программу построения на экране графика заданной функции.

    Задание

    1.По указанию преподавателя выберите вариант задачи из заданий, приведенных в работе 2. Предусмотрите возможность выбора функции, для которой будет рассчитываться таблица. Функции поместите в отдельный модуль. Вызывать выбранную функцию должна процедура, использующая в качестве входного параметра имя соответствующей функции.

    2.Построить графики функций для соответствующих вариантов из работы №1. Таблицу данных получить путем изменения параметра X с шагом h. Вывод исходных данных организовать через окна TЕdit. Самостоятельно выбрать удобные параметры настройки.

    3. Разработать приложение, содержащее три формы – три способа представления графической информации.

    На 1-й форме продемонстрировать отображение графических картинок, созданных в других графических редакторах.

    На 2-й форме с помощью кнопочного меню рисовать различные графические фигуры посредством компоненты класса TShape.

    На 3-й форме реализовать рисование простейшими примитивами, типа линия, прямоугольник, эллипс и т.д.

     

    Ход лабораторной работы:

    1.Запустил среду программирования Delphi.

    2.Выбрал необходимый размер формы, разместил необходимые компоненты, указанные в методических указаниях.

    3.К кнопкам Button, написал код, который выполняет задание. Полученная форма показана на рисунке 1.

    Рисунок 1 – Форма приложения задания 1 в среде разработки

     

    4.Запустил отладку программы. Запущенная программа представлена на рисунке 2.

    Рисунок 2 – Запущенная программа задания 1

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

    unit Unit9;

     

    interface

     

    uses

    Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,

    Vcl.Controls, Vcl.Forms, Vcl.Dialogs, VclTee.TeeGDIPlus, VCLTee.TeEngine,

    VCLTee.Series, Vcl.StdCtrls, Vcl.ExtCtrls, VCLTee.TeeProcs, VCLTee.Chart;

     

    type

    TForm9 = class(TForm)

    Chart1: TChart;

    Edit1: TEdit;

    Series1: TLineSeries;

    Series2: TLineSeries;

    Button1: TButton;

    Button2: TButton;

    Edit2: TEdit;

    Edit3: TEdit;

    Edit4: TEdit;

    Edit5: TEdit;

    Edit6: TEdit;

    Edit7: TEdit;

    Label1: TLabel;

    Label2: TLabel;

    Label3: TLabel;

    Label4: TLabel;

    Label5: TLabel;

    procedure FormCreate(Sender: TObject);

    procedure Button1Click(Sender: TObject);

    procedure Button2Click(Sender: TObject);

    private

    { Private declarations }

    public

    { Public declarations }

    end;

     

    var

    Form9: TForm9;

    Xmin, Xmax, Ymin, Ymax, Hx, Hy, h:extended;

     

    implementation

     

    {$R *.dfm}

     

    procedure TForm9.Button1Click(Sender: TObject);

    var x, y1, y2:extended;

    begin

    Series1.Clear;

    Series2.Clear;

    Xmin:=StrToFloat(Edit1.Text);

    Xmax:=StrToFloat(Edit2.Text);

    h:=StrToFloat(Edit7.Text);

    x:=Xmin;

    repeat

    y1:=sin(x);

    Series1.AddXY(x, y1,' ', clTeeColor);

    y2:=cos(x);

    Series2.AddXY(x, y2,' ', ClTeeColor);

    x:=x+h

    until (x>Xmax);

    end;

     

    procedure TForm9.Button2Click(Sender: TObject);

    begin

    Halt;

    end;

     

    procedure TForm9.FormCreate(Sender: TObject);

    begin

    Xmin:=0;

    Xmax:=2*Pi;

    Ymin:=-1;

    Ymax:=1;

    Hx:=Pi/2;

    Hy:=0.5;

    h:=0.01;

    Edit1.Text:=FloatToStr(Xmin);

    Edit2.Text:=FloatToStr(Xmax);

    Edit3.Text:=FloatToStr(Ymin);

    Edit4.Text:=FloatToStr(Ymax);

    Edit5.Text:=FloatToStr(Hx);

    Edit6.Text:=FloatToStr(Hy);

    Edit7.Text:=FloatToStr(h);

    Chart1.BottomAxis.Automatic:=false;

    Chart1.BottomAxis.Minimum:=Xmin;

    Chart1.BottomAxis.Maximum:=Xmax;

    Chart1.LeftAxis.Automatic:=false;

    Chart1.LeftAxis.Minimum:=Ymin;

    Chart1.LeftAxis.Maximum:=Ymax;

    Chart1.BottomAxis.Increment:=Hx;

    Chart1.LeftAxis.Increment:=Hy;

    end;

    end.

     

    5.Создал формы программы для третьего задания.

    6.Разместил на них необходимые элементы. Полученные формы представлены на рисунках 3 – 6.

    Рисунок 3 – Меню программы из задания 3 в среде разработки

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

    unit Unit10;

     

    interface

     

    uses

    Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,

    Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Vcl.Buttons;

     

    type

    TForm10 = class(TForm)

    Button1: TButton;

    Button2: TButton;

    Button3: TButton;

    Label1: TLabel;

    BitBtn1: TBitBtn;

    procedure Button1Click(Sender: TObject);

    procedure Button2Click(Sender: TObject);

    procedure Button3Click(Sender: TObject);

    private

    { Private declarations }

    public

    { Public declarations }

    end;

     

    var

    Form10: TForm10;

     

    implementation

     

    {$R *.dfm}

     

    uses Unit11, Unit12, Unit13;

     

    procedure TForm10.Button1Click(Sender: TObject);

    begin

    if (not Assigned(Form11)) then Form11:=TForm11.Create(Self);

    Form11.Show;

    end;

     

    procedure TForm10.Button2Click(Sender: TObject);

    begin

    if (not Assigned(Form12)) then Form12:=TForm12.Create(Self);

    Form12.Show;

    end;

     

    procedure TForm10.Button3Click(Sender: TObject);

    begin

    if (not Assigned(Form13)) then Form13:=TForm13.Create(Self);

    Form13.Show;

    end;

     

    end.

     

    Рисунок 4 – Форма открытия изображения в среде разработки

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

    unit Unit11;

     

    interface

     

    uses

    Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,

    Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Vcl.ExtDlgs, Vcl.ExtCtrls, jpeg;

     

    type

    TForm11 = class(TForm)

    Button1: TButton;

    Image1: TImage;

    OpenPictureDialog1: TOpenPictureDialog;

    Button2: TButton;

    procedure Button1Click(Sender: TObject);

    procedure Button2Click(Sender: TObject);

    private

    { Private declarations }

    public

    { Public declarations }

    end;

     

    var

    Form11: TForm11;

     

    implementation

     

    {$R *.dfm}

     

    procedure TForm11.Button1Click(Sender: TObject);

    begin

    Form11.Close;

    end;

     

    procedure TForm11.Button2Click(Sender: TObject);

    begin

    if OpenPictureDialog1.Execute then Image1.Picture.LoadFromFile(OpenPictureDialog1.FileName);

    end;

     

    end.

     

     

    Рисунок 5 – Форма рисования изображений в среде разработки

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

    unit Unit12;

     

    interface

     

    uses

    Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,

    Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Vcl.ExtCtrls;

     

    type

    TForm12 = class(TForm)

    Button1: TButton;

    Shape1: TShape;

    RadioGroup1: TRadioGroup;

    Button2: TButton;

    RadioGroup2: TRadioGroup;

    procedure Button1Click(Sender: TObject);

    procedure Button2Click(Sender: TObject);

    procedure FormCreate(Sender: TObject);

    private

    { Private declarations }

    public

    { Public declarations }

    end;

     

    var

    Form12: TForm12;

     

    implementation

     

    {$R *.dfm}

     

    procedure TForm12.Button1Click(Sender: TObject);

    begin

    Form12.Close;

    end;

     

    procedure TForm12.Button2Click(Sender: TObject);

    begin

    case RadioGroup1.ItemIndex of

    0:Shape1.Shape:=stRectangle;

    1:Shape1.Shape:=stSquare;

    2:Shape1.Shape:=stRoundRect;

    3:Shape1.Shape:=stRoundSquare;

    4:Shape1.Shape:=stEllipse;

    5:Shape1.Shape:=stCircle;

    end;

    case RadioGroup2.ItemIndex of

    0:Shape1.Brush.Color:=clBlack;

    1:Shape1.Brush.Color:=clRed;

    2:Shape1.Brush.Color:=clBlue;

    3:Shape1.Brush.Color:=clGreen;

    4:Shape1.Brush.Color:=clYellow;

    5:Shape1.Brush.Color:=clNavy;

    end;

    Shape1.Show;

    end;

     

    procedure TForm12.FormCreate(Sender: TObject);

    begin

    Shape1.Hide;

    end;

     

    end.

     

    Рисунок 6 – Форма рисования графическими примитивами в среде разработки

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

    unit Unit13;

     

    interface

     

    uses

    Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,

    Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Vcl.ExtCtrls;

     

    type

    TForm13 = class(TForm)

    Button1: TButton;

    Image1: TImage;

    Label1: TLabel;

    Edit1: TEdit;

    Label2: TLabel;

    Label3: TLabel;

    Edit2: TEdit;

    Button2: TButton;

    Button3: TButton;

    Button4: TButton;

    Button5: TButton;

    Button6: TButton;

    Button7: TButton;

    Button8: TButton;

    Button9: TButton;

    Edit3: TEdit;

    Edit4: TEdit;

    Label4: TLabel;

    Label5: TLabel;

    Label6: TLabel;

    Label7: TLabel;

    Label8: TLabel;

    Edit5: TEdit;

    Edit6: TEdit;

    Label9: TLabel;

    Edit7: TEdit;

    Edit8: TEdit;

    Label10: TLabel;

    Label11: TLabel;

    Edit9: TEdit;

    Edit10: TEdit;

    Label12: TLabel;

    procedure Button1Click(Sender: TObject);

    procedure FormCreate(Sender: TObject);

    procedure Button2Click(Sender: TObject);

    procedure Button3Click(Sender: TObject);

    procedure Button4Click(Sender: TObject);

    procedure Button6Click(Sender: TObject);

    procedure Button7Click(Sender: TObject);

    procedure Button5Click(Sender: TObject);

    procedure Button8Click(Sender: TObject);

    procedure Button9Click(Sender: TObject);

     

    private

    { Private declarations }

    public

    { Public declarations }

    end;

     

    var

    Form13: TForm13;

    xb, yb:integer;

    var xr, yr, ndx, ndy, kdx, kdy:integer;

     

    implementation

     

    {$R *.dfm}

     

    procedure TForm13.Button1Click(Sender: TObject);

    begin

    Form13.Close;

    end;

     

    procedure TForm13.Button2Click(Sender: TObject);

    var xl, yl:integer;

    begin

    Image1.Canvas.Pen.Color:=clBlack;

    xl:=StrToInt(Edit3.Text);

    yl:=StrToInt(Edit4.Text);

    Image1.Canvas.Lineto(xl,yl);

    end;

     

    procedure TForm13.Button3Click(Sender: TObject);

    begin

    Image1.Canvas.Pen.Color:=clBlack;

    xr:=StrToInt(Edit3.Text);

    yr:=StrToInt(Edit4.Text);

    Image1.Canvas.Rectangle(xb, yb, xr, yr);

    end;

     

    procedure TForm13.Button4Click(Sender: TObject);

    var rad1, rad2:integer;

    begin

    Image1.Canvas.Pen.Color:=clBlack;

    xr:=StrToInt(Edit3.Text);

    yr:=StrToInt(Edit4.Text);

    rad1:=StrToInt(Edit5.Text);

    rad2:=StrToInt(Edit6.Text);

    Image1.Canvas.RoundRect(xb, yb, xr, yr, rad1, rad2);

    end;

     

    procedure TForm13.Button5Click(Sender: TObject);

    begin

    Image1.Canvas.Pen.Color:=clBlack;

    Image1.Canvas.Ellipse(xb, yb, xr, yr);

    end;

     

    procedure TForm13.Button6Click(Sender: TObject);

    begin

    Image1.Canvas.Pen.Color:=clBlack;

    xr:=StrToInt(Edit3.Text);

    yr:=StrToInt(Edit4.Text);

    ndx:=StrToInt(Edit7.Text);

    ndy:=StrToInt(Edit8.Text);

    kdx:=StrToInt(Edit9.Text);

    kdy:=StrToInt(Edit10.Text);

    Image1.Canvas.Arc(xb, yb, xr, yr, ndx, ndy, kdx, kdy);

    end;

     

    procedure TForm13.Button7Click(Sender: TObject);

    begin

    Image1.Canvas.Pen.Color:=clBlack;

    xr:=StrToInt(Edit3.Text);

    yr:=StrToInt(Edit4.Text);

    ndx:=StrToInt(Edit7.Text);

    ndy:=StrToInt(Edit8.Text);

    kdx:=StrToInt(Edit9.Text);

    kdy:=StrToInt(Edit10.Text);

    Image1.Canvas.Pie(xb, yb, xr, yr, ndx, ndy, kdx, kdy);

    end;

     

    procedure TForm13.Button8Click(Sender: TObject);

    begin

    Image1.Canvas.Pen.Color:=clWhite;

    Image1.Canvas.Rectangle(0, 0, 1121, 705);

    end;

     

    procedure TForm13.Button9Click(Sender: TObject);

    var x, y :integer;

    begin

    Image1.Canvas.Pen.Color:=clWhite;

    Image1.Canvas.Lineto(xb,yb+10);

    x:=StrToInt(Edit1.Text);

    y:=StrToInt(Edit2.Text);

    Image1.Canvas.MoveTo(x,y);

    Image1.Canvas.Pen.Color:=clRed;

    Image1.Canvas.Lineto(x,y+10);

    Image1.Canvas.Pen.Color:=clBlack;

    xb:=x;

    yb:=y;

    end;

     

     

     

    procedure TForm13.FormCreate(Sender: TObject);

    begin

    Image1.Canvas.Pixels[0,0];

    Image1.Canvas.MoveTo(0,0);

    Edit1.Text:='0';

    Edit2.Text:='0';

    Edit3.Text:='0';

    Edit4.Text:='0';

    Edit5.Text:='0';

    Edit6.Text:='0';

    Edit7.Text:='0';

    Edit8.Text:='0';

    Edit9.Text:='0';

    Edit10.Text:='0';

    xb:=0;

    yb:=0;

    end;

     

    end.

     

    9.Запустил отладку программы. На рисунках 7-10 представлена работающая программа.

    Рисунок 7 – Меню программы

     

    Рисунок 8 – Открытое изображение в формате jpg

     

     

    Рисунок 9 - Окно рисования фигур

     

     

    Рисунок 10 – Окно рисования примитивами

     

     

    Вывод: изучил возможности Delphi для написания подпрограмм и создания модулей, построения графиков с помощью компонента отображения графической информации TChart, изучил основные графические компоненты, их свойства и методы. Составил и отладил программу построения на экране графика заданной функции sin(x) и cos(x).


     

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

    РАЗРАБОТКА ПРИЛОЖЕНИЙ УПРАВЛЯЕМОГО С ПОМОЩЬЮ ПАНЕЛИ ИНСТРУМЕНТОВ.

     

    Цель лабораторной работы: научиться подключать инструментальную панель, изучить основные свойства и типы кнопок, и их использование для управления вычислительным процессом

    Задание

    Разработать программу, в которой предусмотреть управление вычислительным процессом с помощью кнопок, расположенных на инструментальной панели. Задание использовать из лабораторной работы № 4.

    Ход лабораторной работы:

    1.Запустил среду программирования Delphi.

    2.Создал форму и разместил на ней необходимые компоненты. Полученную форму указал на рисунке 1.

    Рисунок 1 – Форма программы в среде разработки

     

    3.Запустил отладку программы. Полученную программу указал на рисунке 2

    Рисунок 2 – Запущенная программа

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

    unit Unit14;

     

    interface

     

    uses

    Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,

    Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Vcl.Buttons, Vcl.ComCtrls,

    Vcl.ExtCtrls, Vcl.ToolWin;

     

    type

    TForm10 = class(TForm)

    ToolBar1: TToolBar;

    Image1: TImage;

    ToolButton1: TToolButton;

    ToolButton2: TToolButton;

    ToolButton3: TToolButton;

    ToolButton4: TToolButton;

    ToolButton5: TToolButton;

    ToolButton6: TToolButton;

    ToolButton7: TToolButton;

    ToolButton9: TToolButton;

    ToolButton8: TToolButton;

    ToolButton10: TToolButton;

    ToolButton11: TToolButton;

    ToolButton12: TToolButton;

    ToolButton13: TToolButton;

    ToolButton14: TToolButton;

    ToolButton15: TToolButton;

    Edit1: TEdit;

    Edit2: TEdit;

    Edit3: TEdit;

    Edit4: TEdit;

    Edit5: TEdit;

    Edit6: TEdit;

    Edit7: TEdit;

    Edit8: TEdit;

    Edit9: TEdit;

    Edit10: TEdit;

    procedure ToolButton1Click(Sender: TObject);

    procedure ToolButton3Click(Sender: TObject);

    procedure ToolButton5Click(Sender: TObject);

    procedure ToolButton7Click(Sender: TObject);

    procedure ToolButton8Click(Sender: TObject);

    procedure ToolButton11Click(Sender: TObject);

    procedure ToolButton13Click(Sender: TObject);

    procedure ToolButton15Click(Sender: TObject);

    procedure FormCreate(Sender: TObject);

    procedure Allhide;

     

    private

    { Private declarations }

    public

    { Public declarations }

    end;

     

    var

    Form10: TForm10;

    var xr, yr, ndx, ndy, kdx, kdy, xb, yb:integer;

     

    implementation

     

    {$R *.dfm}

     

    procedure TForm10.Allhide;

    begin

    Edit1.Hide;

    Edit2.Hide;

    Edit3.Hide;

    Edit4.Hide;

    Edit5.Hide;

    Edit6.Hide;

    Edit7.Hide;

    Edit8.Hide;

    Edit9.Hide;

    Edit10.Hide;

    end;

     

    procedure TForm10.FormCreate(Sender: TObject);

    begin

    Allhide;

    Image1.Canvas.Pixels[0,0];

    Image1.Canvas.MoveTo(0,0);

    Edit1.Text:='0';

    Edit2.Text:='0';

    Edit3.Text:='0';

    Edit4.Text:='0';

    Edit5.Text:='0';

    Edit6.Text:='0';

    Edit7.Text:='0';

    Edit8.Text:='0';

    Edit9.Text:='0';

    Edit10.Text:='0';

    xb:=0;

    yb:=0;

    end;

     

    procedure TForm10.ToolButton11Click(Sender: TObject);

    begin

    Allhide;

    Edit3.Show;

    Edit4.Show;

    Edit7.Show;

    Edit8.Show;

    Edit9.Show;

    Edit10.Show;

    Image1.Canvas.Pen.Color:=clBlack;

    xr:=StrToInt(Edit3.Text);

    yr:=StrToInt(Edit4.Text);

    ndx:=StrToInt(Edit7.Text);

    ndy:=StrToInt(Edit8.Text);

    kdx:=StrToInt(Edit9.Text);

    kdy:=StrToInt(Edit10.Text);

    Image1.Canvas.Pie(xb, yb, xr, yr, ndx, ndy, kdx, kdy);

    end;

     

    procedure TForm10.ToolButton13Click(Sender: TObject);

    begin

    Allhide;

    Image1.Canvas.Pen.Color:=clWhite;

    Image1.Canvas.Rectangle(0, 0, 1121, 705);

    end;

     

    procedure TForm10.ToolButton15Click(Sender: TObject);

    var x, y :integer;

    begin

    Allhide;

    Edit1.Show;

    Edit2.Show;

    Image1.Canvas.Pen.Color:=clWhite;

    Image1.Canvas.Lineto(xb,yb+10);

    x:=StrToInt(Edit1.Text);

    y:=StrToInt(Edit2.Text);

    Image1.Canvas.MoveTo(x,y);

    Image1.Canvas.Pen.Color:=clRed;

    Image1.Canvas.Lineto(x,y+10);

    Image1.Canvas.Pen.Color:=clBlack;

    xb:=x;

    yb:=y;

    end;

     

    procedure TForm10.ToolButton1Click(Sender: TObject);

    var xl, yl:integer;

    begin

    Allhide;

    Edit3.Show;

    Edit4.Show;

    Image1.Canvas.Pen.Color:=clBlack;

    xl:=StrToInt(Edit3.Text);

    yl:=StrToInt(Edit4.Text);

    Image1.Canvas.Lineto(xl,yl);

    end;

     

    procedure TForm10.ToolButton3Click(Sender: TObject);

    begin

    Allhide;

    Edit3.Show;

    Edit4.Show;

    Image1.Canvas.Pen.Color:=clBlack;

    xr:=StrToInt(Edit3.Text);

    yr:=StrToInt(Edit4.Text);

    Image1.Canvas.Rectangle(xb, yb, xr, yr);

    end;

     

    procedure TForm10.ToolButton5Click(Sender: TObject);

    var rad1, rad2:integer;

    begin

    Allhide;

    Edit3.Show;

    Edit4.Show;

    Edit5.Show;

    Edit6.Show;

    Image1.Canvas.Pen.Color:=clBlack;

    xr:=StrToInt(Edit3.Text);

    yr:=StrToInt(Edit4.Text);

    rad1:=StrToInt(Edit5.Text);

    rad2:=StrToInt(Edit6.Text);

    Image1.Canvas.RoundRect(xb, yb, xr, yr, rad1, rad2);

    end;

     

    procedure TForm10.ToolButton7Click(Sender: TObject);

    begin

    Allhide;

    Edit3.Show;

    Edit4.Show;

    Edit1.Show;

    Edit2.Show;

    Image1.Canvas.Pen.Color:=clBlack;

    Image1.Canvas.Ellipse(xb, yb, xr, yr);

    end;

     

    procedure TForm10.ToolButton8Click(Sender: TObject);

    begin

    Allhide;

    Edit3.Show;

    Edit4.Show;

    Edit7.Show;

    Edit8.Show;

    Edit9.Show;

    Edit10.Show;

    Image1.Canvas.Pen.Color:=clBlack;

    xr:=StrToInt(Edit3.Text);

    yr:=StrToInt(Edit4.Text);

    ndx:=StrToInt(Edit7.Text);

    ndy:=StrToInt(Edit8.Text);

    kdx:=StrToInt(Edit9.Text);

    kdy:=StrToInt(Edit10.Text);

    Image1.Canvas.Arc(xb, yb, xr, yr, ndx, ndy, kdx, kdy);

    end;

     

    end.

     

    Вывод: научился подключать инструментальную панель, изучил основные свойства и типы кнопок и их использование для управления вычислительным процессом.

    скачать dle 10.6фильмы бесплатно