- •Введение
- •1. Знакомство со средой программирования BorlandDelphi
- •Некоторые команды редактора. При написании программы можно использовать следующие комбинации клавиш для упрощения набора текста:
- •1.2. Создание программы «Моя первая программа»
- •2. Условные операторы
- •2.1. Теоретические сведения
- •Условные операторы. Условный оператор позволяет выбирать одно из двух действий, причем выбор осуществляется во время выполнения программы. Существует 2 вида условных операторов:
- •2.2. Создание программы «Попадание точки в фигуру»
- •Индивидуальное задание
- •3. Операторы цикла
- •3.1. Теоретические сведения Стандартные функции. Для выполнения часто встречающихся вычислений и преобразования данных в Object Pascal существуют стандартные функции.
- •Отладка программы. При построении сложных программ могут возникать ошибки. Их принято делить на 3 группы:
- •3.2. Создание программы «Степенные ряды»
- •Индивидуальное задание
- •4. Тип данных массив
- •4.1. Теоретические сведения
- •Типичные действия с массивом. Вывод массива; ввод массива; поиск максимального или минимального элемента массива; поиск в массиве заданного элемента; сортировка массива.
- •4.2. Создание программы «Работа с массивом»
- •Индивидуальное задание
- •5. Графические примитивы
- •5.2. Создание программы «Графические примитивы»
- •Индивидуальное задание
- •Стандартные диалоговые окна. Для вывода различных сообщений можно использовать стандартные диалоговые окна Delphi. Диалоговые окна запускаются командой:
- •6.2. Создание программы «Редактор текста»
- •Индивидуальное задание
- •7. Работа с базами данных
- •7.1. Теоретические сведения
- •7.2. Создание программы «Список студентов»
- •Индивидуальное задание
- •8. Выполнение курсового проекта
- •8.1. Варианты курсовых работ
- •Заключение
- •Список рекомендуемой литературы
2.2. Создание программы «Попадание точки в фигуру»
Задача. Дана сложная фигура, вписанная в квадрат с координатами: левый нижний угол (5, 5), верхний правый угол (20, 20). Требуется написать программу для определения попадания точки с введенными координатами в указанную фигуру. Примерный вид окна программы показан на рис. 2.6.
Процесс создания программы происходит по следующему алгоритму:
Запустить программу Delphi.
Сохранить проект как «Work2», модуль назвать «Main».
Создать образ окна: изменить заголовок на «Попадание точки в фигуру».
Создать изображение фигуры:
поместить в форму элемент Shape, вкладка Additional, значок ;
изменить свойства объекта:
изменить размер объекта для обеспечения попадания в окно трёх элементов по вертикали и трёх по горизонтали, элемент должен быть квадратом;
изменить цвет квадратика (свойство Brush/Color и Pen/Color);
скопировать образ квадратика в буфер обмена (при классической раскладке клавиатуры в Delphi это комбинация <Ctrl><Ins>);
поместить на форму 7 копий квадратика из буфера обмена (<Shift><Ins>);
разместить квадратики в фигуру «квадратный бублик» (рис. 2.6). Необходимо обеспечить пустое пространство внизу и слева от фигуры для размещения начала координат – в левом нижнем углу фигуры должен «поместиться» как бы еще один квадратик.
Создать 2 элемента для ввода координат точки:
поместить на форму 2 элемента SpinEdit, вкладка Samples, значок ;
назвать один элемент SECoordX (для координаты X) и SECoordY (для координаты Y) свойство Name (в дальнейшем изменяемое свойство будет обозначаться после стрелки);
настроить минимальное возможное значение вводимого числа 0, максимальное – 25, значение по умолчанию 0 и шаг изменения величины 1 соответственно MinValue, MaxValue, Value и Increment.
Добавить надписи к полям ввода:
поместить 2 элемента Label, вкладка Standard, значок ;
настроить надписи на «Координата X» и «Координата Y» Caption.
Добавить метку для вывода результата попадания точки:
поместить элемент Label, вкладка Standard, значок ;
назвать элемент LResult Name;
изменить заголовок на «Мимо» Caption.
Добавить кнопки для запуска вычислений и выхода из программы:
добавить 2 элемента Button, вкладка Standard, значок ;
назвать кнопку для выхода BQuit, а кнопку для вычисления BOk Name;
изменить заголовки кнопок на «Выход» и «Ok» Caption;
Образ окна создан!
Запрограммировать выход – щелкнуть по кнопке BQuit и ввести команду Close;.
Проанализировать форму фигуры для создания алгоритма – в нашем случае проверить попадание в большой квадрат и проверить, не попадает ли точка во внутренний квадрат.
Вернуться на форму (клавиша <F12>) и запрограммировать кнопку BOk:
щелкнуть дважды по кнопке BOk;
записать оператор проверки координат (координаты можно получить у элементов SECoordX и SECoordY через свойства Value – обращение к свойству объекта осуществляется через «точку» – например: SECoordX.Value дает значение свойства Value элемента SECoordX. SECoordX.Value дает значение введенной координаты X, SECoordY.Value – координаты Y):
If (((SECoordX.Value >= 5) and (SECoordX.Value <= 20) and
{Попадание Х в большой квадрат}
(SECoordY.Value >=5) and (SECoordY.Value <= 20))and
{Попадание Y в большой квадрат}
Not ((SECoordX.Value >10) and (SECoordX.Value < 15) and
{Непопадание Х в малый квадрат}
(SECoordY.Value > 10) and (SECoordY.Value < 15)))
{Непопадание Y в малый квадрат}
then LResult.Caption := ‘Попал’ {Вывод сообщения «Попал» }
else LResult.Caption := ‘Мимо’; {Вывод сообщения «Мимо» }
Запустить программу <F9>
Для улучшения программы необходимо:
перерисовывать результат сразу при вводе координат;
добавить «точку» для визуализации положения точки.
Для реализации п. 14а необходимо:
выбрать элементы SECoordX и SECoordY (удерживая клавишу <Shift> щелкнуть сначала на одном элементе, затем на другом – оба элемента будут отмечены рамочкой – это позволит настраивать общие события для выделенных элементов одновременно);
настроить событие (вкладка Events в Инспекторе объектов) onChange так, чтобы оно указывало на событие BOkClick (выбрать это событие из списка). Таким образом, для этих элементов событие onChange будет равносильно событию onClick для кнопки BOk – при смене координат сразу будет выполняться нажатие кнопки «Ok»;
так как кнопка «Ok» обрабатывается автоматически, её можно сделать «невидимой» – изменить свойство Visible в значение false для объекта BOk. При запуске программы кнопка «Ok» видна не будет.
Для реализации п. 14б необходимо:
добавить точку на экран – элемент Shape, вкладка Additional, значок ;
изменить свойства этого элемента:
Name изменить на значение SPoint;
Shape изменить на stCircle;
Width изменить на 3 – ширина точки составляет 3 пикселя;
Height изменить на 3 – высота точки;
пересчитать начало координат «виртуальной» системы координат программы в координаты экрана (координаты экрана отсчитываются от верхнего левого угла экрана вниз и вправо):
необходимо выяснить свойство Name для левого нижнего квадратика – пусть его имя ShapeN;
элемент ShapeN имеет свои координаты левого верхнего угла – свойства Top и Left; также этот элемент имеет свойства ширины и высоты – Width и Height, таким образом, координаты начала координат равны: ShapeN.Left – ShapeN.Width и ShapeN.Top + 2*ShapeN.Height;
рассчитать цену деления координатной сетки: для этого необходимо поделить длину и ширину квадратика на 5. ShapeN.Width div 5 даст шаг по координате X, а ShapeN.Height div 5 – по координатеY;
изменить текст события BOkOnClick:
щелкнуть по кнопке BOk;
в начале процедуры дописать текст присвоения «точке» (объект SPoint) новых координат – к началу координат добавить значение X или Y, умноженное на шаг по координате X или Y:
SPoint.Left := ShapeN.Left – ShapeN.Width + SECoordX.Value * (ShapeN.Width div 5);
SPoint.Top := ShapeN.Top + 2*ShapeN.Height - SECoordY.Value * (ShapeN.Height div 5).
Запустить программу (клавиша <F9>)