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 та засвоїв принципи роботи з їх властивостями, отримав навички створення найпростіших обробників подій з можливістю перевірки вхідних даних та виведення інформаційних повідомлень.


 

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

26264. Расчет потребности в элементах питания на планируемую урожайность 109 KB
  Развить умение рассчитывать дозы минеральных и органических удобрений на планируемую урожайность с использованием различных методов. Рассматриваются три группы способов расчета доз удобрений под планируемую урожайность: нормативные балансовые и статистические. Ключевые слова: нормативы затрат удобрений вынос элементов коэффициент использования запасы потери газообразные вымывание прибавка урожая балансовые коэффициенты нормативы расхода поступление. Нормативный метод расчета доз удобрений на планируемую урожайность.
26265. Выбор культуры и сорта 1.09 MB
  Менее требовательны к плодородию почвы культуры отличающиеся хорошо развитой корневой системой или повышенной усвояющей способностью корней рожь сорго овес нут чина пелюшка люпин желтый и синий сераделла гречиха и др. Легкие песчаные и супесчаные удобренные почвы можно использовать для возделывания озимой ржи овса песчаного сорго картофеля турнепса арбуза дыни сераделлы эспарцета песчаного люцерны желтой и житняка. Среднесуглинистые почвы больше подходят для овса проса сорго гречихи ячменя подсолнечника сои фасоли...
26266. Задачи и принципы построения агроэкологической оценки земель 30 KB
  Лекция: Задачи и принципы построения агроэкологической оценки земель Цели и задачи. Обосновать построение системы агроэкологической оценки земель исходя из агроэкологических требований сельскохозяйственных культур адаптивных технологий их возделывания для проектирования адаптивноландшафтных систем земледелия. Обосновать необходимость совершенствования системы агроэкологической оценки земель с позиций новых требований экологизации земледелия. Ключевые слова: адаптивноландшафтное земледелие агропроизводственная группировка почв...
26267. Понятийный аппарат агротехнологий и их классификация 86.5 KB
  Усвоение базовых понятий агротехнологий их классификации и места в адаптивноландшафтных системах земледелия. Агротехнологии рассматриваются как составная часть адаптивноландшафтных систем земледелия. Агротехнологии как составная часть адаптивноландшафтных систем земледелия. Классификация агротехнологий как составная часть адаптивноландшафтных систем земледелия Современные агротехнологии представляют собой комплексы технологических операций по управлению продукционным процессом сельскохозяйственных культур в агроценозах с целью достижения...
26268. Контроль сорной растительности в агроценозах 233.5 KB
  Рассматриваются наиболее типичные условия засоренности агроценозов экономические пороги вредоностности сорняков предупредительные и истребительные методы контроля сорняков в том числе агротехнические биологические и химические. Контроль сорной растительности в агроценозах Среди всех агрономических проблем одна из самых сложных – контроль сорняков причем при снижении интенсивности обработки почвы она обостряется. Методы контроля сорняков подразделяются на предупредительные и истребительные. Предупредительные методы контроля сорняков Они...
26269. Регулирование минерального питания растений в процессе вегетации 109 KB
  Цель тканевой диагностики выявление необходимости ранней азотной подкормки. Азотные подкормки проводят при показаниях прибора ОАП1 от 1 до 4 баллов или при бледнорозовой окраске индикаторной бумаги. При 41 55 балла применение поздней азотной некорневой подкормки улучшает качество зерна. Необходимость подкормки для улучшения качества зерна определяют по количеству общего азота в листьях пшеницы в фазы колошения – цветения.
26270. Особенности почвенно-ландшафтного картографирования и формирования агроГИС для проектирования агротехнологий 72.5 KB
  Сформировать представление о почвенноландшафтном картографировании земель и умение пользоваться агроГИС для проектирования агротехнологий. Ключевые слова: агропроизводственные группировки почв; почвенноландшафтные карты АгроГИС электронные картслои лцифровка GPS Геоморфологическая карта карта СПП карта видов земель базы данных. Разработать карту агроэкологических видов земель в агроГИС на основе материалов почвенноландшафтного картографирования и набора тиматических электронных карт земельного массива фонды кафедры почвоведения...
26271. Абиотические и биотические факторы стресса, влияющие на продуктивность растений 602 KB
  Лекция: Абиотические и биотические факторы стресса влияющие на продуктивность растений Цели и задачи. Технологические повреждения растений. Под стрессом понимают нагрузку на организм которая вызывает сначала дестабилизацию потом нормализацию и повышение устойчивости а при превышении приспособляемости адаптируемости и способности соответствующих механизмов к компенсации отрицательного влияния отмирание целых растений или их частей. С одной стороны стресс мешает максимальной реализации генетического потенциала культурных растений но с...
26272. Применение сенсорной техники при дифференцированном внесении гербицидов (сенсоры сорняков) 120 KB
  Если имеется гетерогенное распределение сорняков при периодической борьбе с сорняками дифференциация расхода гербицида приносит экономические преимущества экономия производственных средств. Внесение гербицидов по потребности требует при дозировке ориентироваться на наличие сорняков. Это предполагает мелкоплощадное установление наличия сорняков.