Помощь в написании студенческих работ
Антистрессовый сервис

Генерация точек. 
Изучение языка объектно-ориентированного программирования Borland Delphi

РефератПомощь в написанииУзнать стоимостьмоей работы

В строке 5 происходит инициализация генератора случайных чисел процедурой Randomize. Если пользователь ввел некорректное числовое значение, то программа сообщает об ошибке и выходит из процедры (строки 6−11). В случае, если пользователь ввел корректное числовое значение N, программа генерирует 2*N случайных числа, с условием, что они могут быть корректными координатами точек. Сгенерированные… Читать ещё >

Генерация точек. Изучение языка объектно-ориентированного программирования Borland Delphi (реферат, курсовая, диплом, контрольная)

Ниже приведен обработчик нажатия на кнопку «Сгенерировать».

  • 1. procedure TForm1. genClick (Sender: TObject);
  • 2. var
  • 3. i: Integer;
  • 4. begin
  • 5. Randomize;
  • 6. if not field. is_digit (n_gen.Text)
  • 7. then
  • 8. begin
  • 9. ShowMessage ('Неподходящие координаты');
  • 10. Exit;
  • 11. end;
  • 12. for i := 1 to StrToInt (n_gen.Text) do
  • 13. field. add_point_int (Random (img1.Width), Random (img1.Height));
  • 14. field. update_list;
  • 15. end;

В строке 5 происходит инициализация генератора случайных чисел процедурой Randomize. Если пользователь ввел некорректное числовое значение, то программа сообщает об ошибке и выходит из процедры (строки 6−11). В случае, если пользователь ввел корректное числовое значение N, программа генерирует 2*N случайных числа, с условием, что они могут быть корректными координатами точек. Сгенерированные координаты добавляются в список методом add_point_int объекта tfield (строки 12−13), после чего происходит обновление списка методом update_list.

Листинг метода add_point_int приведен ниже.

  • 1. procedure tfield. add_point_int (x, y: integer);
  • 2. begin
  • 3. if (x > form1. img1.Width) or (y > Form1. img1.Height) or (x < 0) or (y < 0)
  • 4. then
  • 5. begin
  • 6. ShowMessage ('Неподходящие координаты');
  • 7. Exit;
  • 8. end;
  • 9. points[cnt]. x := x;
  • 10. points[cnt]. y := y;
  • 11. Inc (cnt);
  • 12. end;

Эта процедура добавляет в список точек точку с координатами (x, y), после чего увеличивает на 1 счетчик точек.

Листинг процедуры update_list приведен ниже.

  • 1. procedure tfield. update_list ();
  • 2. var i: integer;
  • 3. canvas: tcanvas;
  • 4. begin
  • 5. Form1. lst1.Clear;
  • 6. canvas := Form1. img1.Canvas;
  • 7. canvas.Brush.Color:=clWhite;
  • 8. canvas. Rectangle (0, 0, Form1. img1.Width, Form1. img1.Height);
  • 9. canvas.Brush.Color:=clBlack;
  • 10. for i := 0 to cnt-1 do
  • 11. begin
  • 12. Form1. lst1.Items.add (IntToStr (points[i]. x)+ ', '+IntToStr (points[i]. y));
  • 13. canvas. Ellipse (points[i]. x-2, Form1. img1.Height — points[i]. y-2, points[i]. x+2, Form1. img1.Height — points[i]. y+2);
  • 14. end;
  • 15. end;

В строке 5 очищается список точек.

В строке 6 ссылка на canvas поля для вывода результата сохраняется в локальную переменную для быстрого доступа в дальнейшем.

В строках 6−7 фон поля для вывода результата меняется на белый.

В строках 8−12 рисуются и добавляются в список точек сами точки.

Показать весь текст
Заполнить форму текущей работой