Теми рефератів
> Реферати > Курсові роботи > Звіти з практики > Курсові проекти > Питання та відповіді > Ессе > Доклади > Учбові матеріали > Контрольні роботи > Методички > Лекції > Твори > Підручники > Статті Контакти
Реферати, твори, дипломи, практика » Новые рефераты » Вивчення мови об'єктно-орієнтованого програмування Borland Delphi та розробка практичних завдань

Реферат Вивчення мови об'єктно-орієнтованого програмування Borland Delphi та розробка практичних завдань





="justify"> 5. field.add_point_str (point_x.Text, point_y.text);

6. field.update_list;

. end;


Тут відбувається виклик процедури додавання точки в список (add_point_str) і оновлення списку точок.

Лістинг методу add_point_str наведено нижче.


1. procedure tfield.add_point_str (_x, _y: string);

2. var

. x, y: Integer;

. begin

5. if not is_digit (_x) or not is_digit (_y)

6. then

. begin

. ShowMessage ( Помилка введення );

. Exit;

. end;

. x:=StrToInt (_x);

. y:=StrToInt (_y);

13. add_point_int (x, y);

14. end;


Тут перевіряється коректність введених даних (рядки 5-10), перетворення строкових координат в числові і додавання в список методом add_point_int.


. Пошук квадратів


Для пошуку всіх квадратів введемо метод, який визначає, можливість побудови квадрата з вершинами в точках p1, p2, p3, p4.


1. function tfield.is_bar (p1, p2, p3, p4: tmypoint): Boolean;

2. var d1, d2, d3, d4: double;

3. begin

. d1:=distance (p1, p2);

. d2:=distance (p2, p3);

. d3:=distance (p3, p4);

. d4:=distance (p4, p1);

8. Result:=(d1=d2) and (d2=d3) and (d3=d4) and (d4=d1) and (d1 lt; gt; 0);

9. end;


Рішення про можливість побудувати квадрат з координатами в точках p1, p2, p3, p4 приймається на основі наступного твердження: відстань між точками p1 і p2 збігається з відстанями між точками p2 і p3, p3 і p4, p4 і p1.

При при цьому ця відстань не дорівнює 0, то можливо побудувати квадрат з вершинами в точках p1, p2, p3, p4, в іншому випадку така побудова неможливо.

Метод distance виглядає наступним чином.


1. function tfield.distance (p1, p2: tmypoint): Double;

2. begin

3. Result:=(Sqrt (Sqr (p2.x - p1.x) + Sqr (p2.y - p1.y)));

4. end;


Метод, який здійснює пошук квадратів.


1. procedure tfield.gen_bars ();

2. var

3. i1, i2, i3, i4, acnt: Integer;

4. begin

. acnt:=0;

. for i1:=0 to cnt - 1 do

7. for i2:=i1 + 1 to cnt - 1 do

. for i3:=i2 + 1 to cnt - 1 do

. for i4:=i3 + 1 to cnt - 1 do

. if is_bar (points [i1], points [i2], points [i3], points [i4])

11. then

. begin

13. drawbar (points [i1], points [i2], points [i3], points [i4]);

14. inc (acnt);

. end;

. ShowMessage (IntToStr (acnt) + квадратів знайдено );

. end;


У результаті своєї роботи метод виводить на екран число квадратів з вершинами в даних точках, а також малює їх на поле для виводу.

У рядку 5 инициализируется значення лічильника квадратів.

У рядках 6-9 організовується перебір всіх можливих четвірок точок.

У рядку 10 перевіряється, чи можливо побудова квадрата з вершинами в поточних координатах.

У разі успішної перевірки квадрат малюється на поле для виведення (рядок 13) і збільшується лічильник квадратів (рядок 14).

У рядку 16 виводиться відповідь.

Оброблювач натискання на кнопку Розрахувати виглядає наступним чином.


1. procedure TForm1.btn1Click (Sender: TObject);

2. begin

. field.gen_bars;

. end;


. Малювання квадратів


Процедура малювання квадратів виглядає наступним чином.


1. procedure tfield.drawbar (p1, p2, p3, p4: tmypoint);

2. begin

3. Form1.img1.Canvas.MoveTo (p1.x, Form1.img1.Height ...


Назад | сторінка 3 з 4 | Наступна сторінка





Схожі реферати:

  • Реферат на тему: Метод найменших квадратів у випадку інтегральної і дискретної норми Гаусса ...
  • Реферат на тему: Метод найменших квадратів
  • Реферат на тему: Метод найменших квадратів
  • Реферат на тему: Метод найменших квадратів
  • Реферат на тему: Двокроковій метод найменшого квадратів