- •Программирование на языке Паскаль
- •Содержание
- •Введение. Структура программы. Типы данных
- •Структура программы в зыке Паскаль
- •Комментарии
- •Раздел описания переменных
- •Имена идентификаторов в языке Паскаль
- •Типы данных в языке Паскаль
- •Целые типы
- •Вещественные типы
- •Раздел описания констант
- •Оператор ввода
- •Составной оператор
- •Условный оператор
- •Выражения
- •Арифметические операции
- •Логические выражения
- •Логические операции
- •Приоритеты операций
- •Стандартные математические и арифметические функции
- •Структурированные операторы
- •Оператор выбораCase
- •Оператор циклаFor
- •Оператор циклаWhile
- •Inc(n); { Увеличение значения пременнойnна 1 }
- •Оператор циклаRepeat
- •Пользовательские порядковые и составные типы. Процедуры и функции
- •Раздел описания типов
- •Интервальный тип
- •Перечислимый тип
- •Тип массив
- •Строковый тип
- •Процедуры и функции для работы со строками
- •Типизированные константы
- •Процедуры и функции
- •Обращение к процедурам и функциям
- •Процедуры и функции. Процедурные типы. Тип указатель
- •МодификаторыVar иConst в описании формальных параметров
- •Локальность и область действия
- •Процедурные типы
- •Тип указатель
- •Нулевой указатель
- •Работа с текстовыми файлами. Тип запись. Алгоритмы сортировки
- •Файловые типы
- •Процедуры и функции для работы с текстовыми файлами
- •Стандартные текстовые файлы
- •Тип запись
- •Обращение к элементам записи
- •Алгоритмы сортировки
- •Алгоритмы сортировки
- •Алгоритмы сортировки сравнениями
- •Объектно-ориентированное программирование. Структура программного модуля
- •Тип данных «объект»
- •Тип данных «класс»
- •Классификация стилей программирования
- •Структура программного модуля
- •Основы визуального программирования
- •Элемент управления «Поле ввода»
- •Элемент управления «Кнопка»
- •Элемент «Метка»
- •Элемент «Группа переключателей»
- •0:ShowMessage('Выбран вариант 1');
- •Виды изображений
- •КлассTPicture
- •КлассTBitmap
- •ОператорWith
- •КлассTCanvas
- •Библиографический список
- •620002, Екатеринбург, Мира, 19
ОператорWith
Синтаксис
WITH<Структурная переменная>DO<Оператор>
Оператор WITH применяется для упрощения доступа к свойствам структурных переменных (типа «запись», «объект» или «класс»). Действие оператора можно продемонстрировать, переписав соответствующим образом тело процедуры, приведенной в предыдущем примере.
Пример
WITH Image1.Picture.Bitmap DO
BEGIN
Width:=Image1.Width;
Height:=Image1.Height;
END;
КлассTCanvas
Класс TCanvas предоставляет средства для рисования на различных типах изображений, например на растровых изображениях, представляемых классомTBitmap. Основные используемые для рисования процедуры классаTCanvas приведены в следующей таблице.
Процедура |
Описание |
Rectangle(x1,y1,x2,y2) |
Рисование прямоугольника, левый верхний угол которого задается точкой (x1,y1), а правый нижний точкой (x2,y2). При этом внутренняя часть прямоугольника заполняется текущим цветом фона. На растровом изображении рисование прямоугольника происходит следующим образом: При этом в прямоугольник не включаются самая правая и самая нижняя границы. |
MoveTo(x,y) |
Перемещение текущей позиции в точку (x,y) |
LineTo(x,y) |
Рисование линии из текущей позиции до точки (x,y). При этом текущая позиция перемещается в точку (x,y) |
Ellipse(x1,y1,x2,y2) |
Рисование эллипса, вписанного в прямоугольник, задаваемый точками (x1,y1), и (x2,y2) |
Продемонстрируем использование процедур класса TCanvas на примере изображения треугольника с известными сторонами. Расположим треугольник, как показано на следующем рисунке:
,
Перепишем процедуру обработки события от нажатия кнопки Button1 из рассмотренного ранее примера.
Пример
PROCEDURE TForm1.Button1Click(Sender: TObject);
VAR
a,b,c,p,s,h:Real;
BEGIN
WITH Image1.Picture.Bitmap DO
BEGIN
Width:=Image1.Width;
Height:=Image1.Height;
END;
a:=150;b:=100;c:=120;
p:=(a+b+c)/2;
s:=Sqrt(p*(p-a)*(p-b)*(p-c));
WITH Image1.Picture.Bitmap.Canvas DO
BEGIN
MoveTo(0,0);
LineTo(Round(a),0);
h:=2*s/a;
LineTo(Round(Sqrt(Sqr(c)-Sqr(h))),Round(h));
LineTo(0,0);
END;
END;
Результат работы программы представлен на следующем рисунке.
Библиографический список
0. Архангельский А.Я. Программирование в Delphi 5. 2-е изд., перераб. и доп. М.: Бином, 2000.
0. Ахо А., Хопкрофт Дж., Ульман Дж. Построение и анализ вычислительных алгоритмов. М.: Мир, 1979.
0. Бондарев В.М., Рублинецкий В.И., Качко Е.Г. Основы программирования. Харьков: Фолио; Ростов-на-Дону: Феникс, 1997.
0. Ершов А.П. Введение в теоретическое программирование. М.: Наука, 1977.
0. Кнут Д. Искусство программирования для ЭВМ. М.: Мир, 1977. Т.1.
0. Кнут Д. Искусство программирования для ЭВМ. М.: Мир, 1977. Т.2.
0. Культин Н.Б. Программирование в Turbo Pascal 7.0 иDelphi: Самоучитель. 2-е изд. СПб; М.; Дюссельдорф; Киев:BHV, 2000.
0. Новиков Ф.А. Дискретная математика для программистов. СПб: Питер, 2000.
0. Фихтенгольц Г.М. Курс дифференциального и интегрального исчисления, т. 2. М.: Наука, 1966.
Учебная литература
Партин Александр Сергеевич
Программирование на языке Паскаль
Редактор – Т.Н. Газитарова
ИД № 06263 от 12.11.2001
Подписано в печать Формат 60х84
Бумага типографская Офсетная печать Усл. печ. л. ___
Уч.-изд. л. 2,4 Тираж ___ Заказ ___ Цена «с»
Издательство ГОУ УГТУ – УПИ