Смекни!
smekni.com

Разработка приложений в визуальной среде Delphi на языке программирования Object Pascal (стр. 3 из 3)

if ( (t1=0) or (t2=0) or (t3=0)) then Label15. Caption: ='Нет решения'

elsebegin

// вычисление кратчайшего расстояния с помощью подпрограммы к трем сторонам треугольника

d1: =Rj (a1,x0,b1,y0,c1);

d2: =Rj (a2,x0,b2,y0,c2);

d3: =Rj (a3,x0,b3,y0,c3);

// нахождение наименьшего значения

if ( (d1<=d2) and (d1<=d3)) then d: =d1 else

if ( (d2<=d1) and (d2<=d3)) then d: =d2 else d: =d3;

end;

Label15. Caption: ='d='+floattostr (d) +'см';

end; end;

end.

Программный код разработанного приложения к задаче2.

unit Unit1;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, StdCtrls, ExtCtrls, Spin, Math;

type

TForm1 = class (TForm)

Panel1: TPanel;

Label1: TLabel;

Label3: TLabel;

Button1: TButton;

Panel2: TPanel;

Image1: TImage;

SpinEdit1: TSpinEdit;

Label2: TLabel;

Edit1: TEdit;

procedure Button1Click (Sender: TObject);

procedure SpinEdit1Change (Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form1: TForm1;

implementation

{$R *. dfm}

procedure TForm1. Button1Click (Sender: TObject);

begin

close;

end;

procedure TForm1. SpinEdit1Change (Sender: TObject);

var

// координаты основных точек определяющих положение механизма

xd,xb,xa,xc,x0,yd,yb,ya,yc,y0,o1,o2,o3,o4: integer;

// значения радиуса барабана и срержней

od,dc,ab,ob,R: integer;

// углы

w,w1: real;

begin

// ввод значения радиуса барабана

R: =StrToInt (Edit1. Text);

od: =round (R);

ob: =round (od);

// задание размеров стержней

dc: =90;

ab: =70;

// определение значения угла W

W: =spinedit1. value*pi/180;

// задание точки определяющей начало координат

x0: =round (form1. image1. width/2);

y0: =round (form1. image1. height/2);

// вычисление значения угла W1

w1: =pi-pi/2-w;

// вычисление координат точек определяющих положение механизма

xd: =x0+round (od*cos (w));

yd: =y0-round (od*sin (w));

xb: =x0-round (ob*cos (w1));

yb: =y0-round (ob*sin (w1));

xc: =x0+round (dc*cos (w));

yc: =y0+round (dc);

xa: =x0-round (ab);

ya: =y0+round (ab*cos (w1));

o1: =round (x0-od);

o2: =round (y0-od);

o3: =round (x0+od);

o4: =round (y0+od);

// рисование элементов системы на экране и подписи основных точек механизма

form1. image1. picture: =nil;

with form1. image1. canvas do

begin

ellipse (o1,o2,o3,o4);

ellipse (xd-3, yd-3, xd+3, yd+3);

ellipse (xb-3, yb-3, xb+3, yb+3);

moveto (x0,y0);

Pen. Style: =psDot;

lineto (xd,yd);

moveto (x0,y0);

lineto (xb,yb);

Pen. Style: =psSolid;

moveto (xc,yc);

Rectangle (xc+10,yc+8,xc-10,yc-8);

Lineto (xc+400,yc);

lineto (xc-400,yc);

moveto (xc,yc+10);

Pen. Width: =2;

lineto (400,yc+10);

lineto (150,yc+10);

moveto (xc,yc-10);

lineto (400,yc-10);

lineto (150,yc-10);

moveto (xd,yd);

Pen. Width: =1;

lineto (xc,yc);

ellipse (xc-3, yc-3, xc+3, yc+3);

moveto (xb,yb);

lineto (xa,ya);

ellipse (xa-3, ya-3, xa+3, ya+3);

moveto (xa,ya);

Pen. Width: =2;

lineto (xa,ya+400);

lineto (xa,ya-400);

Pen. Width: =1;

moveto (xd+5,yd-8);

Textout (xd+5,yd-8,'D');

moveto (xb-5,yb-15);

Textout (xb-5,yb-15,'B');

moveto (xa-15,ya-8);

Textout (xa-15,ya-8,'A');

moveto (xc+10,yc-25);

Textout (xc+10,yc-25,'C');

moveto (x0+1,y0+1);

Textout (x0+1,y0+1,'O');

moveto (x0,y0+R);

Textout (x0,y0+R+3,'P');

Pen. Width: =2;

Lineto (x0+20,y0+R);

Lineto (x0-20,y0+R);

end;

end;

end.

5. Формы приложений

Одним из основных элементов приложения является форма, из которой пользователь управляет событиями, происходящими во время работы приложения.

Форма, на которой размещаются компоненты, является основой большинства приложений Delphi. Она представляет собой окно создаваемого приложения, определяет интерфейс приложения для общения с пользователем и непосредственно дает возможность редактировать взаимное расположение и свойства (цвет, размер) элементов интерфейса для придания ему большей эргономичности [4].

Для решения задачи 1 в Delphi было разработано приложение. Вид окна приложения до выполнения вычислений представлен на рисунке 5 (Исходная форма приложения задачи 1).

Рисунок 5 - Исходная форма приложения задачи 1

На рисунке 6 (Форма приложения с результатами вычислений задачи 1) представлена форма приложения с результатами вычислений. Различные варианты работы алгоритма приложения к задаче 1 отображены на рисунке А.9 (Форма приложения с результатами вычислений задачи 1), где треугольник не существует и на рисунке В.10 (Форма приложения с результатами вычислений задачи 1), где точка располагается на одной из вершин треугольника.

Рисунок 6 - Форма приложения с результатами вычислений задачи 1

На форме расположены следующие компоненты:

Label- компоненты для вывода текста (13 шт.);

Edit- поля редактирования (8 шт.);

Button- кнопки (3 шт.).

Для решения задачи 2 в Delphi было разработано приложение работы кинематической схемы. Исходный вид окна приложения представлен на рисунке 7 (Исходная форма приложения задачи 2), а на рисунке 8 (Форма приложения кинематической схемы) представлена форма приложения с изображением кинематической схемы, если радиус барабана R=30. Другие варианты работы алгоритма приложения кинематической схемы представлены на рисунке С.11 (Форма приложения кинематической схемы), где радиус барабана R= 40 и на рисунке D.12 (Форма приложения кинематической схемы), где радиус барабана R= 20.

Рисунок 7 - Исходная форма приложения задачи 2

Рисунок 8 - Форма приложения кинематической схемы

На форме размещены следующие компоненты:

Panel1, Panel2 - это контейнер для других компонентов и позволяет легко управлять компонентами, которые находятся на панели (компоненты, находящиеся на панели, наследуют свойства компонента Panel);

Button1 - командная кнопка для закрытия приложения;

Edit1 - поле редактирования, содержащее значение вводимой величины;

SpiEdit1 - строка, содержащая числовое значение переменной W;

Label1, Label2, Label3 - компоненты для вывода текста, содержащие текст и несущие информацию о назначении других компонентов;

Image1 - место для рисования схемы.

Заключение

При выполнении курсовой работы были закреплены навыки программирования. Изучены способы применения их на практике для решения вычислительных задач в визуальной среде Delphi на языке программирования ObjectPascal.

В ходе выполнения работы были написаны приложения для двух задач разного типа.

Решение первой задачи основывается на организации вычислительного процесса для нахождения расстояния от заданной точки лежащей внутри заданного треугольника до ближайшей стороны этого треугольника. При решении используется программирование алгоритмов разветвляющейся структуры, реализующихся с помощью оператора условного перехода IF, который служит для изменения порядка выполнения операторов в зависимости от какого-то условия.

В первой задаче поставлены два условия:

система ограничений, формулы (1.8), проверки существования треугольника;

система ограничений, формулы (1.7), существования формулы (1.5) для расчета наименьшего расстояния до сторон треугольника.

Решение второй задачи предполагает использовать более широкий спектр базовых компонент при программировании:

Panel;

Button;

Edit;

SpiEdit;

Label;

Image.

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

Изучены методы вычерчивания основных графических примитивов:

MoveTo (x,y);

LineTo (x,y);

Rectangle (x1,y1,x2,y2);

Ellipse (x1,y1,x2,y2)).

Метод вывода текста на графическую поверхность - TextOut (x,y,<Текст>). Изучены свойства основного инструмента, позволяющего рисовать на графической поверхности - карандаш (Pen).

Задачами курсовой работы являлось:

изучить основы работы в среде Delphi;

изучить основные этапы решения задач на ЭВМ;

разработать математические модели решения задач;

изучить методы составления алгоритмов решения задач;

проанализировать результаты работы программ на ЭВМ.

Поставленные задачи в ходе выполнения курсовой работы выполнены в полном объеме.

Список использованных источников

1. Шупрута В.В. Delphi 2005. Учимся программировать / В.В. Шупрута. - М.: НТ Пресс, 2005. - 352с.;

2. Воднев В.Т. Основные математические формулы: справочник / В.Т. Воднев, А.Ф. Наумович, Н.Ф. Наумович. - Мн: Высш. шк., 2000. - 269с.;

3. Прищепов М.А. Программирование на языках Basic, Pascal и ObjectPascal в среде Delphi / М.А. Прищепов, Е.В. Севернёва, А.И. Шакирин. - Мн.: ТетраСистемс, 2006. - 320с.;

4. Бескоровайный И.В. Азбука Delphi: программирование с нуля / И.В. Бескоровайный. - Новосибирск: Сиб. унив. изд-во, 2008. - 112с.;

5. Яблонский А.А. Курс теоретической механики / А.А. Яблонский, В.М. Никифорова. - М.: Высш. шк., 1977. - 368с. с ил.;

6. Фаронов В.В. Турбо Паскаль 7.0/В.В. Фаронов. - М.: Нолидж, 2006. - 616с.;

7. Тейксейра С. BorlandDelphi6/С. Тейксейра, К. Пачеко. - М.: Нолидж, 2002. - 1120с.;

8. Фаронов В.В. Профессиональная работа в Delphi6/В.В. Фаронов. - М.: Нолидж, 2002. - 320 с.;

9. Культин И.Б. Программирование в TurboPascal 7.0 и Delphi / И.Б. Культин. - СПб.: ВНV, 2003. - 462с.;

10. Яблонский А.А. Сборник заданий для курсовых работ по теоретической механике: Учебное пособие для технических вузов / А.А. Яблонский, С.С. Норейко, С.А. Вольфсон. - М.: Интеграл-Пресс, 2008. - 384с.;

11. Краснов М. Графика в проектах Delphi / М. Краснов. - СПб.: БХВ-Петербург, 2000. - 352с. .

Приложения

Приложение А

Рисунок 9 - Форма приложения с результатами вычислений задачи 1

Приложение В

Рисунок 10 - Форма приложения с результатами вычислений задачи 1

Приложение С

Рисунок 11 - Форма приложения кинематической схемы

Приложение D

Рисунок 12 - Форма приложения кинематической схемы