37782

Ознайомлення з інструментальним середовищем програмування Delphi. Робота з простими візуальними об’єктами

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

Информатика, кибернетика и программирование

Розробити проект, в якому на формі розмістити необхідні компоненти для введення координат вершин трикутника (TEdit, TLabel). Для виконання обчислень і завершення роботи програми використати компоненти TButton. Для вибору необхідного варіанту обчислень застосувати компонент RadioButton або TCheckBox. Результати обчислень виводити в компонент TLabel

Украинкский

2013-09-25

1.5 MB

4 чел.

5

Міністерство освіти і науки України

Хмельницький національний університет

Кафедра системного програмування

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

з програмування

на тему:

«Ознайомлення з інструментальним середовищем програмування Delphi. Робота з простими візуальними об’єктами»

Виконав:

Студент групи КІ-10-1

Ноль М.Г.

Перевірив:

Мостовий С.В.

Хмельницький

2011

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

Тема: Ознайомлення з інструментальним середовищем програмування Delphi. Робота з простими візуальними об’єктами.

Мета:ознайомитись з інструментальним середовищем програмування Delphi та його простими візуальними об’єктами.

Завдання

Розробити проект, в якому на формі розмістити необхідні компоненти для введення координат вершин трикутника (TEdit, TLabel). Для виконання обчислень і завершення роботи програми використати компоненти TButton. Для вибору необхідного варіанту обчислень застосувати компонент RadioButton або TCheckBox. Результати обчислень виводити в компонент TLabel. Для компонентів, які відображують результати роботи, заборонити можливість правки в компоненті. Забезпечити перевірку введених даних із видачею відповідного повідомлення та блокуванням компонентів форми у випадку некоректних даних.

Знайти кут A і медіану Мb.

Unit1.pas

unit Unit1;

{$mode objfpc}{$H+}

interface

uses

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

 StdCtrls;

type

 { TForm1 }

 TForm1 = class(TForm)

   Button1: TButton;    Button2: TButton;    Button3: TButton;

   Edit1: TEdit;    Edit2: TEdit;    Edit3: TEdit;    Edit4: TEdit;    Edit5: TEdit;    Edit6: TEdit;

   Label1: TLabel;    Label2: TLabel;    Label3: TLabel;    Label4: TLabel;    Label5: TLabel;

   Label6: TLabel;    Label7: TLabel;

   RadioButton1: TRadioButton;    RadioButton2: TRadioButton;

   procedure Button1Click(Sender: TObject);

   procedure Button2Click(Sender: TObject);

   procedure Button3Click(Sender: TObject);

   procedure Edit1KeyPress(Sender: TObject; var Key: char);

   procedure Edit2KeyPress(Sender: TObject; var Key: char);

   procedure Edit3KeyPress(Sender: TObject; var Key: char);

   procedure Edit4KeyPress(Sender: TObject; var Key: char);

   procedure Edit5KeyPress(Sender: TObject; var Key: char);

   procedure Edit6KeyPress(Sender: TObject; var Key: char);

   procedure FormCreate(Sender: TObject);

 private

   { private declarations }

 public

   { public declarations }

 end;

var

 Form1: TForm1;

implementation

{ TForm1 }

procedure TForm1.FormCreate(Sender: TObject);

begin

end;

procedure TForm1.Button2Click(Sender: TObject);

begin

 Close;

end;

procedure TForm1.Button3Click(Sender: TObject);

begin

 Edit1.Clear;  Edit2.Clear;  Edit3.Clear;  Edit4.Clear;  Edit5.Clear;  Edit6.Clear;

 Label7.Caption:='Результат: '

end;

procedure TForm1.Button1Click(Sender: TObject);

var xa,xb,xc,ya,yb,yc,AB,BC,AC,Mb,A: real;

begin

if (Edit1.Text<>'') and (Edit2.Text<>'') and (Edit3.Text<>'') and (Edit4.Text<>'') and (Edit5.Text<>'') and (Edit6.Text<>'') then

     begin

     xa:=StrToFloat(Edit1.Text);      xb:=StrToFloat(Edit2.Text);      xc:=StrToFloat(Edit3.Text);

     ya:=StrToFloat(Edit4.Text);      yb:=StrToFloat(Edit5.Text);      yc:=StrToFloat(Edit6.Text);

     AB:=sqrt(sqr(xb-xa)+sqr(yb-ya));

     BC:=sqrt(sqr(xc-xb)+sqr(yc-yb));

     AC:=sqrt(sqr(xc-xa)+sqr(yc-ya));

     if not ((AB+BC>AC) and (AB+AC>BC) and (BC+AC>AB)) then ShowMessage('Дані точки не утворюють трикутник! Введіть інші дані!') else

           begin

           if RadioButton1.Checked then

                 begin

                 A:=arctan(sqrt(1 - sqr((AB*AB + AC*AC - BC*BC)/(2*AC*AB))) / ((AC*AC+AB*AB-BC*BC)/(2*AC*AB)));

                 A:=abs(A*180/pi);

        Label7.Caption:='Результат: '+'A='+FloatToStrF(A,ffFixed,3,2)+' градусів';

                 end

           else

                 begin

                 Mb:=sqrt((2*BC*BC+2*AB*AB-AC*AC)/4);

                 Label7.Caption:='Результат: '+'Mb='+FloatToStrF(Mb,ffFixed,10,5);

                 end;

           end;

     end

else ShowMessage('Введіть координати усіх точок!');

end;

procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: char);

begin

 case Key of

   #8,'0'..'9': ;

   '-': if Edit1.Text<>'' then Key:=#0;

   ',': begin if Length(Edit1.Text)-pos('-',Edit1.Text)=0 then Key:=#0;

        if pos(',',Edit1.Text)<>0 then Key:=#0;

        end

 else Key:=#0;

 end;

end;

procedure TForm1.Edit2KeyPress(Sender: TObject; var Key: char);

begin

 case Key of

   #8,'0'..'9': ;

   '-': if Edit2.Text<>'' then Key:=#0;

   ',': begin if Length(Edit2.Text)-pos('-',Edit2.Text)=0 then Key:=#0;

        if pos(',',Edit2.Text)<>0 then Key:=#0;

        end

 else Key:=#0;

 end;

end;

procedure TForm1.Edit3KeyPress(Sender: TObject; var Key: char);

begin

 case Key of

   #8,'0'..'9': ;

   '-': if Edit3.Text<>'' then Key:=#0;

   ',': begin if Length(Edit3.Text)-pos('-',Edit3.Text)=0 then Key:=#0;

        if pos(',',Edit3.Text)<>0 then Key:=#0;

        end

 else Key:=#0;

 end;

end;

procedure TForm1.Edit4KeyPress(Sender: TObject; var Key: char);

begin

 case Key of

   #8,'0'..'9': ;

   '-': if Edit4.Text<>'' then Key:=#0;

   ',': begin if Length(Edit4.Text)-pos('-',Edit4.Text)=0 then Key:=#0;

        if pos(',',Edit4.Text)<>0 then Key:=#0;

        end

 else Key:=#0;

 end;

end;

procedure TForm1.Edit5KeyPress(Sender: TObject; var Key: char);

begin

 case Key of

   #8,'0'..'9': ;

   '-': if Edit5.Text<>'' then Key:=#0;

   ',': begin if Length(Edit5.Text)-pos('-',Edit5.Text)=0 then Key:=#0;

        if pos(',',Edit5.Text)<>0 then Key:=#0;

        end

 else Key:=#0;

 end;

end;

procedure TForm1.Edit6KeyPress(Sender: TObject; var Key: char);

begin

 case Key of

   #8,'0'..'9': ;

   '-': if Edit6.Text<>'' then Key:=#0;

   ',': begin if Length(Edit6.Text)-pos('-',Edit6.Text)=0 then Key:=#0;

        if pos(',',Edit6.Text)<>0 then Key:=#0;

        end

 else Key:=#0;

 end;

end;

initialization

 {$I unit1.lrs}

end.

Результати:

Висновок.  Виконавши лабораторну роботу, я ознайомився з простими компонентами середовища Delphi, такими як TLabel, TEdit, TButton, TRadioButton та засвоїв принципи роботи з їх властивостями, отримав навички створення найпростіших обробників подій з можливістю перевірки вхідних даних та виведення інформаційних повідомлень.


 

А также другие работы, которые могут Вас заинтересовать

41309. Численные методы и компьютерные технологии решения нелинейных уравнений 471 KB
  За приближенное значение корня принимается точка пересечения хорды АВ с осью абсцисс. Координата этой точки находится из уравнения этой хорды АВ рис. В точке пересечения хорды АВ с осью абсцисс . К уравнению хорды Далее сравниваются значения функции на левой границе и в точке пересечения хорды АВ с осью абсцисс по знаку.
41310. Численные методы и компьютерные технологии вычисления определенных интегралов 337.09 KB
  Вычисление определенного интеграла методом трапеций Текст программы progrm lb6; uses crt; vr bhyffbjj1xe:rel; in:integer; begin clrscr; writeln' = пи 6'; :=pi 6; writeln'b = Пи 3'; b:=pi 3; writeln'Введите n'; redn; h:=b n; y:=0; x:=h; for i:=1 to n1 do begin y:=ysqrsinx cosXsqrcosx sinx;x:=xh; end; f:=sqrsin cossqrcos sin; fb:=sqrsinb cosbsqrcosb sinb ; y:=yffb 2; J:=yh; writeln'J='J:5:2; writeln'Метод НьютонаЛейбница'; j1:= sinb cosbcosb...
41311. Программирование МК серии МС68 на языке АSM 2.84 MB
  В состав служебных модулей входят: генератор тактовых импульсов CGM08 модуль системной интеграции SIM08 модуль контроля напряжения питания LVI08 модуль прерывания в контрольной точке BREK08 модуль управления внешним прерыванием IRQ08 сторожевой таймер COP08 базовый таймер TBM08. Модуль генератора импульсов CGM08 генерирует импульсные сигналы на базе которых модуль системной интеграции SIM08 формирует тактовые импульсы. Модуль системной интеграции SIM08 выполняет ряд функций...
41312. Отладка ППО МК серии МС68 5.11 MB
  Б окне 2 на передний план выходит вкладка Brekpoints nd Trcepoints где теперь будут отображаться все точки останова. 2 Практическая часть Применение точек останова Пошаговый метод отладки удобен для отладки небольших несложных программ или отдельных участков большой программы. Для того чтобы проверить правильность выполнения всего этого цикла в пошаговом режиме пришлось бы очень долго щелкать мышкой В подобных случаях применяются точки останова Brekpoint. Точка останова это специальная метка...
41313. Изучение процесса ввода информации с датчиков 3.74 MB
  Такую характеристику внешней среды как температура приходится измерять довольно часто.Если говорить высоким стилем, то датчики создают «окно», сквозь которое микропроцессорные системы наблюдают за внешним миром. В этой рабрте рассматриваются различные типы датчиков, их применение и возможность сопряжения с микропроцессорами.
41314. Вывод управляющих сигналов 356.5 KB
  Соответствующий фрагмент программы написанной на Pscl’е будет выглядеть следующим образом: Создание проекта см. Если уже есть файл с текстом программы на Ассемблере и просто необходимо создать проект а затем подключить туда готовый программный файл снимите соответствующую галочку. Оно должно содержать имя файла куда будет записываться текст программы. При выборе этого элемента диалог создания проекта будет автоматически запускаться каждый раз при запуске программы...
41315. Использование средств ИС РПО для отладки взаимодействия с объектами управления 1.14 MB
  В качестве схемы сопряжения с линией связи ССЛС в интерфейсе RS232С удобно использовать интегральную схему типа MX232 Перечисленные последовательные интерфейсы реализуют радиальную стру-ктуру подключения. Это означает, что для подключения к каждому МПУ не-обходимо реализовать свой последовательный интерфейс:
41316. Изучение принципов организации аппаратного интерфейса USB. 987 KB
  Практически исследовать принципы организации аппаратного интерфейса USB Время: 2 часа Оборудование: ПК ПО. Методические материалы и литература: Методические указания по выполнению практических работ; Иллюстративный материал: принципы организации аппаратного интерфейса USB Методические указания по выполнению практической работы: Последовательность выполнения работы: Изучить и законспектировать основные теоретические...
41317. Изучение команд SSE и SSE2 1.24 MB
  Практически изучить команды SSE и SSE2 для МП. Методические материалы и литература: Методические указания по выполнению практических работ; Иллюстративный материал: команды управления на языке SM для МП. При этом использовать описание работы лабораторный блок ПК иллюстрационный материал; В практической части отработать следующие подразделы: Рассмотреть примеры использования команд ХММрасширения Выполнить пример формирования кода операции и порядок следования операндов команд ХММрасширения...