Программирование на языке Паскаль

Структура программы в языке Паскаль, имена идентификаторов и типы данных. Простые и структурированные операторы, сущность арифметических и логических операций. Стандартные математические и арифметические функции. Основы визуального программирования.

Рубрика Программирование, компьютеры и кибернетика
Вид курс лекций
Язык русский
Дата добавления 18.12.2016
Размер файла 169,9 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

При сортировке для обмена элементов списка можно использовать дополнительную переменную.

Пример (см. пример из параграфа 6.4)

VAR

Temp:Student;

k,i:Integer;

Stop:Boolean;

. . .

{ Сортировка массива S со списком студентов по
фамилии. Пусть длина списка задана переменной n }

k:=n;

REPEAT

Dec(k);

Stop:=True;

FOR i:=1 TO k DO

IF S[i].Name>W[i+1].Name THEN

BEGIN

Temp:=S[i];

S[i]:=S[i+1];

S[i+1]:=Temp;

Stop:=False;

END;

UNTIL Stop;

Лекция 8. Объектно-ориентированное программирование. Структура программного модуля

8.1 Тип данных «объект»

Объектные типы данных, по сути, являются логическим продолжением рассмотренного ранее типа запись. Если тип запись позволял группировать вместе данные различного типа, то объекты могут содержать не только данные, но и метолы (процедуры и функции) для работы с этими данными. Объектные типы описываются с помощью ключевого слова OBJECT.

Синтаксис

TYPE

<Имя>=OBJECT

<Данные и методы>

END;

Пример

TYPE

Point=OBJECT

x,y:Real;

PROCEDURE Move(Dx,Dy:Real);

END;

Методы описываются вне объектов.

Пример

PROCEDURE Point.Move(Dx,Dy:Real);

BEGIN

x:=x+Dx;

y:=y+Dy;

END;

Объекты также могут наследоваться.

Синтаксис

TYPE

<Имя>=OBJECT(<Имя родительского объекта>)

<Данные и методы>

END;

В результате наследования в так называемом дочернем (или порожденном) объекте будут присутствовать данные и методы родительского объекта, к которым будут добавлены данные и методы, описанные в дочернем. Методы родительского объекта могут быть перекрыты.

В параграфе 7.3 «Стандартные текстовые файлы» был рассмотрен пример со списком студентов. В каждой строке таблицы содержались данные различных типов, которые были сгруппированы при помощи типа запись. Однако в таблице содержались данные об объектах одинаковой структуры - студентах. Как же поступать в случаях, когда необходимо хранить список объектов, имеющих различную структуру, например геометрических фигур (прямоугольников, треугольников, кругов и т.д.), причем для любой фигуры необходимо, к примеру, вычислять площадь.

Можно представить такой набор объектов несколькими таблицами (т.е. массивами записей):

Прямоугольники

Треугольники

Круги

a

b

S = a•b

a

b

c

S = …

r

S = рr2

3

5

15

3

4

5

6

10

314.16

Однако может потребоваться иметь единый список всех объектов (например, если важен порядок следования объектов друг за другом). Можно попытаться представить такой список в виде единой таблицы следующим образом:

Фигура

a

b

c

r

S

Прямоугольник

3

5

--

--

15

Треугольник

3

4

5

--

6

Круг

--

--

--

10

314.16

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

Итак, в большинстве случаев приведенные выше примеры являются крайне неудобными для представления такого рода данных. В этом случае используется так называемый объектно-ориентированный подход, реализованный в языке Паскаль при помощи типов объект и класс. Например, у рассмотренных выше объектов есть схожие черты: они являются геометрическими фигурами и для каждой из этих фигур известен алгоритм вычисления ее площади. Таким образом, структуру этих объектов можно представить при помощи следующей схемы:

В программе реализуется базовый объект «Геометрическая фигура», который содержит только функцию для вычисления площади, причем неопределенную (так называемую, абстрактную). Далее создаются три объекта, которые наследуются от общего базового объекта, содержат соответствующие данные, и самое главное, конкретизируют функцию вычисления площади, описанную в базовом объекте.

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

8.2 Тип данных «класс»

Тип данных «класс» описывается при помощи ключевого слова CLASS аналогично вышерассмотренному типу «объект». По выполняемым функциям он также практически аналогичен объектному типу, но предоставляет более мощные средства объектно-ориентированного программирования. Классы реализованы только в среде Delphi и используются, в частности, для описания визуальных элементов интерфейса (таких как формы, кнопки, поля ввода и т.д.). Например, пользовательская форма наследуется от базового класса TForm и содержит описания элементов, находящихся на ней, методов для обработки событий от этих элементов и т.д.

Пример

TYPE

TUserForm=CLASS(TForm)

Edit1:TEdit; { Поле ввода }

Button1:TButton; { Кнопка }

PROCEDURE Button1Click(Sender:TObject);

{ Метод, вызываемый по нажатии на кнопу }

. . .

END;

В результате такого описания, класс TUserForm обладает всеми свойствами класса TForm, т.е. формы (например, положением на экране, шириной, высотой, методами «Свернуть», «Закрыть» и т.д.).

8.3 Классификация стилей программирования

Общая характеристика стиля программирования складывается из характеристик способов представления данных и логического структурирования программы. К примеру, при изучении соответствующих составных типов были рассмотрены способы представления различных данных, приведенные в следующей таблице.

Вид данных

Способ представления в программе

Список простых однотипных элементов (например, чисел)

Массив

Таблица, в которой все элементы имеют одинаковый простой тип (например, таблица чисел)

Можно представить при помощи двумерного массива

Таблица, в которой в различных столбцах содержатся данные различного типа (например, список студентов, для каждого из которых задаются фамилия, имя, факультет, номер группы и т.д.)

Можно представить в виде массива записей, которые представляют строки таблицы и группируют набор данных различного типа

Список различных объектов, обладающих только некоторыми общими свойствами (например, список различных геометрических фигур, для каждой из которых можно рассчитать площадь)

С помощью типа «объект» или «класс» описывается один базовый объект, в котором присутствуют общие свойства всех объектов, и от которого в дальнейшем эти объекты наследуются. После этого список можно представить в виде массива базовых объектов

Классификация способов логического структурирования программы представлена в следующей таблице.

Вид программы (стиль программирования)

Описание

Линейная программа

Представляет собой последовательность простых операторов

Структурное программирование

В программе используются составные операторы, имеющие опер внутреннюю структуру и состоящие из более простых или также структурированных операторов. Сюда относятся условный оператор, операторы цикла и др.

Процедурное программирование

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

Объектно-ориентированное программирование

Наиболее общий из существующих на сегодняшний день подходов, заключающийся в выделении из исходной предметной области отдельных объектов, их свойств и связей с другими объектами. В языке Паскаль этот подход реализован при помощи типов данных «объект» и «класс», позволяющих группировать в отдельных объектах данные и методы их обработки (процедуры и функции), а также выполнять наследование объектов

8.3 Структура программного модуля

Программные модули (или библиотеки) являются еще одним средством логического структурирования программы (наряду с процедурами, функциями и объектами). Текст программы для удобства может быть разделен на отдельные модули. Также часть сравнительно независимых и общих по смыслу процедур, функций, объектов или других элементов нескольких программ может быть вынесена в библиотеку, выполненную в виде независимого программного модуля. В последствии одни и те же библиотеки и модули могут использоваться в различных программах.

Программный модуль - это отдельный файл с расширением PAS.

Структура программного модуля

UNIT <Имя модуля>;

INTERFACE

[USES <Список библиотек>;]

<Описательная часть интерфейса>

IMPLEMENTATION

[USES <Список библиотек>;]

<Описательная часть раздела реализации>

[BEGIN

<Исполнительная часть>]

END.

В описательной части интерфейса находятся описания общих типов данных, классов, переменных, констант, а также заголовков общих процедур и функций, которые будут доступны любой программе, подключившей данный модуль. Сами процедуры и функции, раскрываются в разделе реализации. Все остальные данные, описанные в разделе реализации, являются локальными для модуля и не будут доступны внешним программам подключившим его.

Если присутствует исполнительная часть, то она будет выполнена в момент подключения модуля внешней программой для инициализации описанных в модуле данных, если таковая необходима.

Лекция 9. Основы визуального программирования

9.1 Формы

Формы представляют собой стандартные окна Windows, содержащие элементы управления, и являются основой визуального интерфейса программы. Например, если создать новую форму и вставить на нее поле ввода и кнопку, то результат будет выглядеть следующим образом:

В Delphi пользовательские формы всегда наследуются от базового класса TForm и выполняется в виде отдельного модуля, в котором в разделе интерфейса находится описание класса формы, а в разделе реализации методы обработки событий от элементов этой формы. Для приведенного примера формы будет создан модуль с именем Unit1, который будет находится в файле Unit1.pas. Этот модуль будет описывать класс пользовательской формы TFrom1.

Модуль Unit1.pas

UNIT Unit1;

INTERFACE

USES

Windows,Messages, ...;

TYPE

TForm1=CLASS(TForm)

Edit1:TEdit;

Button1:TButton;

PROCEDURE Button1Click(Sender:TObject);

END;

VAR

Form1:TForm1;

IMPLEMENTATION

PROCEDURE TForm1.Button1Click(Sender:TObject);

BEGIN

Close(); { Если нажать на кнопку Button1,

форма будет закрыта }

END;

END.

Класс TForm является базовым для всех пользовательских форм и содержит большое количество свойств, методов и событий. В дальнейшем для всех рассматриваемых элементов интерфейса будем приводить только основные свойства, необходимые для работы с этими элементами. Для форм основные свойства и методы представлены в следующей таблице.

Свойство или метод

Значение

Свойство Name

Определено для любого визуального элемента (формы, элементов управления и т.д.) и задает его имя, которое будет использоваться в программе для доступа к этому элементу. В вышеприведенном примере созданная форма имеет имя 'Form1'. Из этого имени конструируется имя класса (TForm1), и описывается в разделе интерфейса глобальная переменная (Form1), с помощью которой в дальнейшем производится доступ к форме

Свойства Left и Top

Также для любого визуального объекта. Для формы задают положение (в пикселях) левого верхнего угла окна формы на экране

Свойства Width и Height

Задают соответственно ширину и высоту (в пикселях) окна формы

Свойство Caption

Заголовок окна формы, выводимый на экран

Процедура Show

Показывает форму на экране. Основная форма программы показывается автоматически

Процедура Hide

Скрывает форму, временно убирая ее с экрана

Процедура Close

Закрывает форму. Если закрыть основную форму программы, то ее выполнение будет завершено

В программе может быть создано несколько форм. При этом только одна из них будет являться главной (основной). Основная форма программы будет автоматически показана на экране при запуске, остальные формы будут созданы в памяти, но не будут автоматически выведены на экран. Чтобы отобразить их необходимо использовать процедуру Show (например, Form2.Show). Закрытие форм, как и любых окон Windows, может производиться с помощью мыши путем нажатия кнопки с изображением крестика в правом верхнем углу окна формы, с помощью клавиатуры нажатием сочетания клавиш Alt-F4, либо программным способом при помощи вызова процедуры Close. Закрытие окна основной формы (любым из описанных способов) приводит к завершению выполнения программы. Закрытие любой другой формы программы приводит только к скрытию формы с экрана (как при использовании процедуры Hide). Позже ее снова можно отобразить на экране с использованием процедуры Show.

9.2 Элемент управления «Поле ввода»

Элемент управления «Поле ввода» находится на вкладке «Стандартные» («Standard») панели элементов и обозначается пиктограммой

Поля ввода используются для ввода с клавиатуры строковых значений. Если проводить аналогию с рассмотренным для консольных приложений оператором ввода, то использование этого элемента аналогично оператору Readln(S), где S - строковая переменная типа STRING. Однако если в консольных приложениях данные вводились строго в определенном порядке (в порядке вызова соответствующих операторов ввода), то при использовании полей ввода на форме данные в них можно вводить в любом порядке совершенно независимо, а потом производить их обработку, например при нажатии на кнопку.

Полям ввода в Delphi соответствует класс TEdit, который содержит следующие основные свойства:

Свойство

Значение

Name

Как и для любого визуального элемента, задает имя, которое используется в программе для доступа к этому элементу. Например, в приведенном ранее классе формы TForm1 поле ввода с именем 'Edit1' описано как переменная типа TEdit

Left и Top

Положение левого верхнего угла поля ввода (в пикселях) относительно левого верхнего угла элемента, в который он вставлен (например, формы)

Width и Height

Ширина и высота (в пикселях) поля ввода

Text

Строковое значение, введенное в данное поле

Пример использования полей ввода в программе будет приведен ниже.

Значение основных свойств формы, а также элемента управления «Поле ввода» проиллюстрировано на следующем рисунке.

Свойства формы, как и свойства других элементов, задаются на вкладке «Свойства» в панели «Инспектор объектов»:

9.3 Элемент управления «Кнопка»

Элемент управления «Кнопка» также находится на вкладке «Стандартные» панели элементов и обозначается пиктограммой

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

Свойство или событие

Значение

Свойство Name

Имя элемента в программе

Свойства Left и Top

Положение кнопки

Свойства Width и Height

Ширина и высота кнопки

Свойство Caption

Текст, который будет изображен на кнопке

Событие OnClick

Задает процедуру обработки события, возникающего при нажатии на кнопку

События для элементов можно задать на вкладке «События» панели «Инспектор объектов». Процедура обработки события автоматически описывается в классе формы и разделе реализации модуля. В ранее рассмотренном примере в классе TFrom1 нажатие кнопки обрабатывается процедурой
Button1Click.

Процедуры обработки событий, задаются на вкладке «События» в панели «Инспектор объектов»:

Для примера перепишем рассмотренную ранее в классе TForm1 процедуру обработки события нажатия кнопки Button1Click для иллюстрации работы кнопок и полей ввода на примере расчета степени числа e. Значение степени должно будет вводиться в поле Edit1. При нажатии на кнопку Button1 будет производиться расчет и выдача на экран соответствующего сообщения.

В следующей программе используются функции StrToFloat и
FloatToStr для преобразования введенного строкового значения в вещественное число и наоборот, некоторого рассчитанного значения в строку для показа результата. Также используется процедура ShowMessage для вывода на экран сообщения.

Текст программы

PROCEDURE TForm1.Button1Click(Sender:TObject);

VAR

Power,Result:Real;

BEGIN

{ Преобразование введенного в поле Edit1

текста в вещественное число }

Power:=StrToFloat(Edit1.Text);

Result:=Exp(Power); { Расчет результата }

{ Вывод на экран сообщения }

ShowMessage('e^'+FloatToStr(Power)+'='+

FloatToStr(Result));

END;

Если, например, ввести в поле Edit1 значение 1 и нажать на кнопку Button1, то на экран будет выдано следующее сообщение:

Вещественные числа для функции StrToFloat должны задаваться через запятую (а не через точку, как обычно). При попытке преобразовать с помощью функции StrToFloat строку, которая не содержит правильного представления вещественного числа, будет выдано сообщение об ошибке, но выполнение программы продолжится.

9.4 Элемент «Метка»

Метки используются для отображения текстовых надписей на форме. На вкладке «Стандартные» панели элементов метки обозначены пиктограммой

Метки описываются при помощи класса TLabel и имеют следующие основные свойства:

Свойство

Значение

Name

Имя элемента в программе

Left и Top

Положение надписи

Width и Height

Ширина и высота надписи рассчитываются автоматически в зависимости от заданного текста

Caption

Текст надписи, отображаемый в форме

9.5 Элемент «Группа переключателей»

Группы переключателей предназначены для выбора одного из нескольких вариантов действий. Их можно применять вместо экранных меню, которые использовались ранее в консольных приложениях. На вкладке «Стандартные» панели элементов группы переключателей обозначены пиктограммой

Группы переключателей описываются при помощи класса
TRadioGroup, основные свойства которого приведены в следующей таблице:

Свойство

Значение

Name

Имя элемента в программе

Left и Top

Положение в форме

Width и Height

Ширина и высота

Caption

Заголовок группы, отображаемый на форме

Items

Список строк (класс TStrings), который содержит названия элементов группы, между которыми производится выбор

ItemIndex

Номер выбранного элемента в группе, причем элементы нумеруются с 0. По умолчанию ItemIndex = -1, что обозначает, что никакой элемент не является выбранным

Для задания списка вариантов необходимо на вкладке свойств инспектора объектов нажать на кнопку с изображением многоточия, появляющуюся при выборе свойства Items:

Для примера рассмотрим форму, на которую вставлены два компонента: группа переключателей и кнопка. В группе переключателей зададим список из трех вариантов. В результате форма будет иметь следующий вид:

Модуль Unit1.pas

UNIT Unit1;

INTERFACE

USES

Windows,Messages,SysUtils,Classes,Controls, ...;

TYPE

TForm1=CLASS(TForm)

RadioGroup1:TRadioGroup;

Button1:TButton;

PROCEDURE Button1Click(Sender:TObject);

END;

VAR

Form1:TForm1;

IMPLEMENTATION

PROCEDURE TForm1.Button1Click(Sender:TObject);

BEGIN

CASE RadioGroup1.ItemIndex OF

0:ShowMessage('Выбран вариант 1');

1:ShowMessage('Выбран вариант 2');

2:ShowMessage('Выбран вариант 3');

END;

END;

END.

Если в списке «RadioGroup1» выбрать некоторый вариант и нажать кнопку «Button1», будет выдано сообщение о выборе соответствующего варианта.

Лекция 10. Основы визуального программирования

10.1 Элемент «Изображение»

Элемент «Изображение» предназначены для представления на форме графической информации. На панели элементов он находится на вкладке «Дополнительные» («Additional») и обозначен пиктограммой

Элемент интерфейса «Изображение» описывается с помощью класса TImage, содержащего следующие основные свойства:

Свойство

Значение

Name

Имя элемента в программе

Left и Top

Положение в форме

Width и Height

Ширина и высота области, занимаемой изображением на форме

Transparent

Логическое значение, определяющее способ отображения: если Transparent=True, то фон изображения будет прозрачным, а если Transparent=False, то фон будет заполнен соответствующим светом

Picture

Значение типа TPicture, задающее содержащееся в элементе изображение

Для задания изображения (свойства Picture) можно использовать кнопку с многоточием, выводимую рядом с этим свойством на панели «Инспектор объектов». При нажатии на нее будет выдано диалоговое окно, позволяющее загрузить изображение из файла.

10.2 Виды изображений

Все изображения можно разделить на две группы: растровые и векторные.

Растровые изображения представляют собой двумерный массив точек, для каждой из которых независимо может быть задан свой цвет, как показано на следующем рисунке:

Например, экран монитора представляется как растровое изображение.

Достоинства: возможность представлять изображения любой сложности, например фотореалистичные.

Недостатки: для изображений с большим количеством цветов и большим разрешением требуется большой объем памяти, причем занимаемый объем памяти растет квадратично при росте разрешения; плохие возможности масштабирования, так как, например, при увеличении изображения будет увеличиваться только размер точек, что приведет к значительному ухудшению качества.

В Windows стандартный формат представления растровых изображений - битовые карты (Bitmap), хранящиеся в файлах с расширением BMP.

Векторные изображения формируются из геометрических примитивов (отрезков, окружностей, эллипсов и т.д.), например:

Достоинства: малый объем занимаемой памяти, возможность масштабирования.

Недостатки: возможность представлять только достаточно простые изображения, в связи с чем используются для представления схем, чертежей, деловой графики и т.д.

Стандартный формат хранения векторных изображений в Windows - так называемые метафайлы (Metafile) с расширением WMF.

10.3 Класс TPicture

Для представления изображений в Delphi используется класс
TPicture. Этот класс содержит три основных свойства, каждое из которых представляет определенный тип изображения (соответственно, актуальным может быть только одно из них):

Свойство

Значение

Bitmap

Значение класса TBitmap, представляющее растровое изображение

Metafile

Векторное изображение (метафайл, класс TMetafile)

Icon

Значок, или иконка (класс TIcon) - небольшое специальное растровое изображение, содержащее пиктограмму, задающую, например, тип документа. Иконки хранятся в фалах с расширением ICO

В дальнейшем будем рассматривать только растровые изображения.

10.4 Класс TBitmap

Класс TBitmap используется в Delphi для представления растровых изображений, содержит свойства, приведенные в следующей таблице.

Свойство

Значение

Width и Height

Ширина и высота изображения в точках. Если размеры изображения превышают размеры области, задаваемой элементом TImage, выходящая за пределы этой области часть изображения отсекается

Canvas

Значение класса TCanvas, предоставляющего средства для рисования на задаваемом классом TBitmap растровом изображении

Если никакого изображения не загружено, растровое изображение, представляемое классом TBitmap, является пустым, т.е. его ширина и высота равны 0. Поэтому, для отображения графической информации необходимо сначала задать размеры изображения, содержащегося в элементе TImage. Например, эти размеры можно сделать равными размерам самого элемента TImage, в результате чего для рисования можно будет использовать всю занимаемую этим элементом на форме область.

Для иллюстрации основных свойств классов TImage, TPicture и TBitmap рассмотрим следующий пример формы, содержащей элемент «Изображение» и кнопку:

Процедура обработки события от нажатия кнопки Button1 задает размеры растрового изображения, содержащегося в элементе Image1, равными размерам этого элемента.

Пример

PROCEDURE TForm1.Button1Click(Sender:TObject);

BEGIN

Image1.Picture.Bitmap.Width:=Image1.Width;

Image1.Picture.Bitmap.Height:=Image1.Height;

END;

Уже из приведенного примера видно, что обращаться к свойствам глубоко вложенных друг в друга классов крайне неудобно. В языке Паскаль в таких случаях можно применять описанный далее оператор.

10.5 Оператор WITH

Синтаксис

WITH <Структурная переменная> DO <Оператор>

Оператор WITH применяется для упрощения доступа к свойствам структурных переменных (типа «запись», «объект» или «класс»). Действие оператора можно продемонстрировать, переписав соответствующим образом тело процедуры, приведенной в предыдущем примере.

Пример

WITH Image1.Picture.Bitmap DO

BEGIN

Width:=Image1.Width;

Height:=Image1.Height;

END;

10.6 Класс 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;

Результат работы программы представлен на следующем рисунке.

Библиографический список

1. Архангельский А.Я. Программирование в Delphi 5. 2-е изд., перераб. и доп. М.: Бином, 2000.

2. Ахо А., Хопкрофт Дж., Ульман Дж. Построение и анализ вычислительных алгоритмов. М.: Мир, 1979.

3. Бондарев В.М., Рублинецкий В.И., Качко Е.Г. Основы программирования. Харьков: Фолио; Ростов-на-Дону: Феникс, 1997.

4. Ершов А.П. Введение в теоретическое программирование. М.: Наука, 1977.

5. Кнут Д. Искусство программирования для ЭВМ. М.: Мир, 1977. Т.1.

6. Кнут Д. Искусство программирования для ЭВМ. М.: Мир, 1977. Т.2.

7. Культин Н.Б. Программирование в Turbo Pascal 7.0 и Delphi: Самоучитель. 2-е изд. СПб; М.; Дюссельдорф; Киев: BHV, 2000.

8. Новиков Ф.А. Дискретная математика для программистов. СПб: Питер, 2000.

9. Фихтенгольц Г.М. Курс дифференциального и интегрального исчисления, т. 2. М.: Наука, 1966.

Размещено на Allbest.ru

...

Подобные документы

  • История и основы структурного программирования в среде Turbo Pascal. Работа с различными типами данных. Операторы языка. Работа с символьными и строковыми переменами, одномерным, двумерным массивами. Классификация компьютерных игр. Игры на языке Паскаль.

    курсовая работа [28,8 K], добавлен 06.05.2014

  • Особенности программирования на языке Паскаль в среде Турбо Паскаль. Линейные алгоритмы, процедуры и функции. Структура данных: массивы, строки, записи. Модульное программирование, прямая и косвенная рекурсия. Бинарный поиск, организация списков.

    отчет по практике [913,8 K], добавлен 21.07.2012

  • Язык программирования Турбо Паскаль. Запись алгоритма на языке программирования и отладка программы. Правила записи арифметических выражений. Стандартное расширение имени файла, созданного системным редактором. Составной оператор и вложенные условия.

    курсовая работа [75,0 K], добавлен 21.03.2013

  • Программирование на языке Паскаль: алфавит, решение задач, простейшие программы, разветвляющие программы, циклические программы, ввод-вывод, массивы, подпрограммы, строковые данные, записи, файлы, использование библиотеки CRT, графика в Паскале.

    учебное пособие [211,1 K], добавлен 30.03.2008

  • Сущность понятия "тип данных". Объектно-ориентированный стиль программирования. Простые типы данных в языке Паскаль: порядковые, вещественные, дата-время. Булевский (логический) тип. Синтаксис определения ограниченного типа. Регулярные типы (массивы).

    реферат [24,1 K], добавлен 01.12.2009

  • Сравнительный анализ языков программирования высокого уровня Си и Паскаль: структура программы, типы данных, арифметические операции, операторы ветвления и циклы. Создание программы поиска подпоследовательностей одинаковых элементов в множественном виде.

    курсовая работа [78,9 K], добавлен 28.12.2012

  • Выбор метода проектирования транслятора с языка Паскаль на язык Си, разработка и кодирование алгоритма программы. Использование допустимых операторов в исходном тексте, определение типов переменных и синтаксиса логических и арифметических выражений.

    курсовая работа [1,0 M], добавлен 03.07.2011

  • Основные сведения о системе программирования Турбо Паскаль. Структура программы на Паскале и ее компоненты. Особенности и элементы языка Турбо Паскаль. Порядок выполнения операций в арифметическом выражении, стандартные функции и оператор присваивания.

    лекция [55,7 K], добавлен 21.05.2009

  • Основы создания фрактальных композиций при помощи среды программирования Паскаль. Сущность и основа фрактальной графики. Графические возможности и операторы для рисования геометрических фигур в среде Паскаль. Примеры обозначения цветов на языке Паскаль.

    лабораторная работа [15,7 K], добавлен 12.06.2010

  • Сравнительный анализ языков программирования высокого уровня Си и Паскаль. Реализация алгоритма обработки данных. Тестирование и отладка программы или пакета программ. Структура программы на языке Турбо Паскаль. Указатели и векторные типы данных.

    курсовая работа [233,5 K], добавлен 14.12.2012

  • Этапы подготовки и решения задач на компьютере. Способы предоставления алгоритмов. Простые типы данных и их обработка. Основы работы с графикой и графическими операторами в Visual Basic. Организация линейной программы. Процедуры и функции в языке Паскаль.

    дипломная работа [1,9 M], добавлен 25.10.2015

  • Изучение символьных и строковых типов данных, алгоритма задачи на языке программирования Паскаль. Описания получения и установки отдельного символа строки, изменения регистра символов. Анализ создания и просмотра файла, поиска и сортировки информации.

    курсовая работа [440,7 K], добавлен 13.06.2011

  • Общая характеристика языков программирования. Описание языка Паскаль: основные субъекты языка; структура Паскаль-программы; типизация и объявление данных. Операторы присваивания и выражения. Структурные операторы, организация ветвлений и циклов.

    дипломная работа [276,6 K], добавлен 26.01.2011

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

    курсовая работа [254,0 K], добавлен 02.07.2011

  • Общая характеристика языка программирования Турбо Паскаль: операторы, циклы, файлы. Процедуры и функции модуля Crt. Структурная и функциональная схема программы учета учащихся, таблица идентификаторов. Список и описание использованных подпрограмм.

    курсовая работа [702,9 K], добавлен 29.01.2011

  • Совместимость и преобразование типов данных. Создание информационно-поисковой системы на языке программирования Паскаль. Описание интерфейса, каждого блока программы "Картотека больных". Рассмотрение результатов работы программы, сортирования данных.

    курсовая работа [368,9 K], добавлен 18.05.2015

  • Освоение технологии структурного программирования и применения стандартных методов работы с одномерными массивами при разработке и создании программы на языке Турбо Паскаль. Разработка программы методом пошаговой детализации с помощью псевдокода.

    реферат [276,9 K], добавлен 27.02.2008

  • Понятие программы и ее основные составляющие. Операторы ввода и вывода. Разветвляющиеся алгоритмы. Цикл как многократное выполнение одинаковых действий. Особенности использования оператора выбора. Графики функций и системы координат. Рекурсия и анимация.

    презентация [663,7 K], добавлен 24.12.2010

  • Простые типы данных: порядковые, вещественные, дата-время. Стандартные процедуры и функции, применимые к целым типам. Кодировка символов в соответствии со стандартом ANSI. Структурированные типы: массивы; записи; множества. Указатели, динамическая память.

    реферат [83,3 K], добавлен 01.12.2009

  • Схема разбора арифметического и логического выражения. Внешняя спецификация конвертора и алгоритм перевода программ на языке Паскаль в текст на языке Си. Назначение подпрограмм, особенности констант и переменных. Код программы и ее тестирование.

    курсовая работа [567,5 K], добавлен 03.07.2011

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.