Конфигурация среды программирования (IDE)

Пункт меню “Options | Environment” предоставляет Вам большой набор страниц и управляющих элементов, которые определяют внешний вид и работу IDE. Delphi позволяет сделать следующие важные настройки:

1.Определить, что из проекта будет сохраняться автоматически.

3.Можно менять цвета IDE.

5.Можно менять подсветку синтаксиса в Редакторе.

7.Можно изменить состав Палитры Компонент.

9.Указать “горячие клавиши” IDE.

Первая страница пункта меню “Options | Environment” показана на рис.9

Рис.9: Страница Preferences.

В группе “Desktop Contents” определяется, что будет сохраняться при выходе из Delphi. Если выбрать Desktop Only - это сохранит информацию о директориях и открытых окнах, если выбрать Desktop And Symbols - это сохранит то же самое плюс информацию для броузера (browser).

В группе “Autosave” указывается, что нужно сохранять при запуске программы. Если позиция Editor Files выбрана, то сохраняются все модифицированные файлы из Редактора при выполнении команд Run|Run, Run|Trace Into, Run|Step Over, Run|Run To Cursor или при выходе из Delphi. Если позиция Desktop выбрана - сохраняется рабочая среда при закрытии проекта или при выходе из Delphi. Если Вы позже откроете проект, то он будет иметь тот же вид, что и при его закрытии.

В группе “Form Designer” можно установить, показывать ли сетку (grid) на экране и выравнивать ли объекты по ней, и размер ячеек сетки.

В группе “Debugging”: опция Integrated Debugging - использовать ли встроенный отладчик; Step Program Block - отладчик остановится на первой строке модуля, в котором есть отладочная информация; Break On Exception - останавливать ли программу при возникновении исключительной ситуации; Minimize On Run - свертывать ли Delphi при запуске программы. После закрытия программы среда Delphi восстанавливается. Hide Designers On Run - прячет окна Дизайнера (Инспектор Объектов, формы) при запуске приложения.

Show Compiler Progress - показывать ли окно, в котором отражается процесс компиляции программы.

“Gallery” - указывает, в каких случаях нужно предоставлять “галерею” (коллекцию заготовок и экспертов).

Страницы Editor Options, Editor Display и Editor Colors позволяют Вам изменить цвета и “горячие” клавиши, используемые IDE. Страница Editor Display показана на рис.10, а Editor Colors - на рис.11.

Рис.10: Страница Editor Display.

Рис.11: Страница Editor Colors.

Существует несколько способов изменить назначение “горячих” клавиш, используемых Редактором. Например, многие пользователи привыкли, что по клавише F5 максимизируется окно Редактора. Для этого им надо использовать расположение клавиш, называемое “Classic” (Keystroke mapping : Classic). Всего есть четыре вида конфигурации клавиш:

“Default” - характерно для Microsoft. Если Вы новичок в Windows или уже привыкли к этому расположению клавиш, то это подойдет.

“Classic” - более известно ветеранам Borland C++ и Borland Pascal. Поддерживает многие комбинации клавиш WordStar и отладчик управляется старым добрым способом.

Остальные два вида - имитируют редакторы Epsilon и BRIEF. Подойдут, если вы с ними знакомы.

Точное описание назначения клавиш можно найти в Справочнике (в Help | Topic Search набрать “key mapping”).

Цвета IDE можно изменить на странице Editor Colors.

И, наконец, Editor Options (рис.12).

Рис.12: На странице Editor Options можно настроить тонкие детали работы Редактора.

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

“Use syntax highlight” - выделять ли цветом синтаксические конструкции в Редакторе Исходного текста.

“Find text at cursor” - если включено, то при поиске (Ctrl+F) в качестве подстроки для поиска будет браться то слово, на котором стоит курсор.

Обо всех опциях можно подробнее узнать в Справочнике (F1).

Установки сохраняются в файле DELPHI.INI, который находится в директории Windows.

 

Контрольні питання

1. Розповісти про додавання та видалення форм та модулів з проекту

2. Охарактеризувати процедуру керування вікнами на робочому просторі

3. Охрактеризувати процедуру створення виконуємого файлу для Windows

4. Розповісти про тонке налаштування середовища програмування


САМОСТІЙНА РОБОТА СТУДЕНТА

ЗМІСТОВИЙ МОДУЛЬ 2: ПРОЦЕДУРНО-ОРІЄНТОВАНЕ ПРОГРАМУВАННЯ. ПРОГРАМУВАННЯ ГРАФІКИ

ТЕМА 2.1: ОСНОВИ МОВИ OBJECT PASCAL

 

Самостійне заняття №12 –Основи створення проектів

План заняття

1. Характеристика процедури створення проектів

2. Характеристика процедури виконання програми-проекту на мові Object Pascal

Язык Object Pascal - это основной инструмент программирования в среде разработки Delphi. Любая программа в Delphi состоит из файла проекта и одного или нескольких модулей. Программа-проект на Object Pascal может содержать следующие разделы:

■ заголовок программы;

■ раздел объявления подключаемых модулей;

■ раздел объявления меток;

■ раздел объявления констант;

■ раздел объявления типов;

■ раздел объявления переменных;

■ раздел процедур и функций;

■ тело программы (обязательная часть).

Чтобы создать новое приложение, необходимо выполнить ко­манду File | New | Application, которая позволяет открыть новый проект. При этом создается главная форма приложения Formlи соответствующий ей модуль Unitl.При желании молено изме­нить заголовок формы. Для этого следует перейти к странице Properties Инспектора объектов и поменять содержимое свойства Caption,задав новый заголовок.

После создания формы на нее добавляются необходимые ком­поненты, набор и размещение которых лучше продумать заранее. Чтобы поместить компонент на форму, необходимо выбрать его пиктограмму на соответствующей странице палитры компонен­тов и нажать на ней левую кнопку мыши, а затем, переместив указатель мыши на нужное место формы, еще раз нажать левую кнопку. Компонент появится в форме, причем его левый верхний угол окажется в месте расположения указателя, а Испектор объ­ектов и дерево объектов отобразят информацию об этом компо­ненте. Аналогичным образом на форме размещаются все про чие необходимые компоненты. Установка требуемых свойств и создание обработчиков событий для всех компонентов осуще­ствляется при помощи Инспектора объектов.

В процессе изучения и закрепления материала этой главы бу­дет рассмотрено множество примеров, использующих одну и ту же форму. Чтобы избавиться от повторения создания формы для различных примеров, удобно будет поместить ее в репозиторий. Вид формы показан на рис. 3.1. На ней размещены строка ввода (TEdit),многострочный редактор (ТМето)и две кнопки (TBitBtn).Кнопка ОК понадобится для запуска каких-либо дей­ствий, поясняющих те или иные особенности использования язы­ка программирования. Другая кнопка предназначена для закрытия формы, а следовательно, для прекращения работы программы. Многострочный редактор служит для вывода информации на эк­ран, а строка ввода - для ввода начальных параметров.

Порядок создания описанной формы приводится ниже и пред­ставляет собой последовательность таких действий:

■ выполнив команду File | New \ Application, открыть новый проект;

изменить заголовок формы. Для этого следует перейти к стра­нице Properties Инспектора объектов и поменять содержимое свойства Captionна значение Form_Example.Следует от­метить тот факт, что одновременно происходит изменение за­головка формы;

выбрать на странице Additional компонент BitBtn и, поместив указатель мыши в нужном месте формы, нажать ее левую кнопку. Компонент появится в форме, причем его левый верх­ний угол окажется в месте расположения указателя, а Инспек­тор объектов отобразит информацию об этой кнопке. В свой­стве Kindнужно установить значение bkOk;

■ аналогичным образом поместить на форму вторую такую же кнопку, но в свойстве Kindвыбрать значение bkClose;

■ расположить компонент Edit со страницы Standard на фор­ме и удалить содержимое свойства Text;

■ разместить на форме компонент Memo, находящийся на странице Standard, и очистить содержимое свойства Lines.Свойство ScrollBarsвыбрать ssBoth.

Свойство Kindкнопки BitBtn определяет внешний вид компо­нента и стандартные функции, которые данная кнопка будет реа-лизовывать в диалоговых окнах.

Свойству ScrollBarsкомпонента Memo присвоено значение ssBoth.Это означает, что редактор будет содержать горизон­тальную и вертикальную полосы прокрутки. Свойство Linesсодержит текст, который будет отображаться в поле компонента Memo в момент его появления на экране. Аналогичный смысл имеет и свойство Textкомпонента Edit.

Часто возникает необходимость использовать сходные формы при создании нескольких различных приложений. В Delphi суще­ствует специальный репозиторий объектов, в который можно по­местить спроектированную форму, чтобы избежать потерь време­ни при повторении создания формы. Это позволяет многократно использовать готовый шаблон формы вместо того, чтобы заново разрабатывать ее. Для выполнения этой операции, следует:

■ сохранить форму в файле с любым именем (допустим, Forml) в каталоге архива Delphi. Он находится в ката­логе размещения Delphi (по умолчанию задан C:\Program Files\Borland\Delphi7) и называется Objrepos;

предыдущее действие не обеспечивает включения формы в архив, поэтому следует щелкнуть по форме правой кнопкой мыши и выбрать команду Add to Repository. В появившемся окне в строке Title необходимо написать имя формы Forml, в строке Description - пояснения, в списке Page выбрать Forms, а в строке Author указать свою фамилию (см. рис. 3.2) и на жать кнопку ОК. Теперь форма зарегистрирована и может быть выбрана с помощью команды File \ New | Other.

В ряде случаев бывает удобно определить форму, помещенную в репозиторий как главную, тогда Delphi при выполнении коман­ды File | New \ Application будет выводить ее на экран вместо стандартной пустой формы. Для этого требуется выполнить ко­манду Tools | Repository, затем в появившемся окне (см. рис. 3.3) в списке Pages выбрать строку Forms и в списке Objects отыскать форму Forml (либо другую, в зависимости от того, под каким именем она была сохранена). Щелкнув по ней левой кнопкой мы­ши, следует установить флаг Main Form и закрыть окно нажатием кнопки ОК, чтобы запомнить изменения.

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

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

Тип дата-время используется для хранения даты и времени.

Контрольні питання

1. Надати характеристику процедури створення проектів

2. Описати процедуру виконання програми-проекту на мові Object Pascal


АУДИТОРНЕ ЗАНЯТТЯ

ЗМІСТОВИЙ МОДУЛЬ 2: ПРОЦЕДУРНО-ОРІЄНТОВАНЕ ПРОГРАМУВАННЯ. ПРОГРАМУВАННЯ ГРАФІКИ

ТЕМА 2.1: ОСНОВИ МОВИ OBJECT PASCAL

Лекція №18 – Порядкові типи даних

План заняття

1. Характеристика порядкових типів даних

2. Характеристика функцій для роботи з порядковими типами даних на мові Object Pascal

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

В Object Pascal к порядковым типам относятся целые, символь­ные, логические типы и задаваемые пользователем перечисления и поддиапазоны. Все значения любого порядкового типа образуют упорядоченную последовательность, и значение переменной по­рядкового типа определяется его местом в этой последовательно­сти. За исключением переменных целых типов, значения которых могут быть как положительными, так и отрицательными, первый элемент любого порядкового типа имеет номер 0, второй элемент -номер 1 и т.д. Порядковый номер значения возвращает функция Ord(). Порядковый номер целого значения равен самому значе­нию. Иными словами, для целых типов Ord(x)=x.Функция Ord(х) возвращает положительное целое число от 0 до 1 (х - ло­гический тип), от 0 до 255 (х - символьный тип), от 0 до 65 535 (х -перечисляемый тип). Следовательно, поддиапазон сохраняет свой­ства порядкового типа, от которого он образован, и возвращаемое значение Ord(x) зависит от базового типа.

Существуют еще две функции, которые специально предна­значены для работы с порядковыми типами данных. Это функции Pred(x) hSucc(x).

Результатом вызова функции Pred(x)является предыдущее значение порядкового типа. Другими словами, Pred (х)= Ord (x)- 1.В свою очередь, Succ(x)возвращает следующее значение порядкового типа, т.е. Succ(x) = Ord(x) + 1.

Если программа будет содержать такие строки:

 

Целые типы данных. Целые типы обозначают множества це­лых чисел в различных диапазонах. В табл. 3.6 приведены харак­теристики целых типов. Они различаются диапазоном значений и размером занимаемой памяти.

 

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

Стандартные процедуры и функции, предназначенные для ра­боты с целочисленными типами данных, представлены в табл. 3.7.

 

 

В вышеприведенной таблице буквами b, w, i, L соответственно обозначены выражения типа Byte, Word, Integer, Longlnt.Переменная х - выражение любого из указанных типов. В квад­ратных скобках указывается необязательный параметр.

В Object Pascal имеется пять логических типов: Boolean, ByteBool, Bool, WordBoolи LongBool.Единственным отли­чием этих типов является то, что они занимают разный объем па­мяти (см. табл. 3.8).

 

 

Логические переменные могут принимать одно из двух значе­ний: True(истина) или False(ложь). При этом справедливы следующие условия:

 

 

Фактически для всех логических типов значению Falseсоот­ветствует число 0, которое записывается в указанное в табл. 3.8 количество байтов. Отличие логических типов также заключается в величине параметра, собтветствующего значению True.В пе­ременной типа Booleanэтому значению соответствует число 1, а для других типов значению Trueсоответствует любое значение, отличное от нуля. Функция Ord (True)для Booleanвернет 1, а для всех других логических типов возвратит (-1).

Значениями переменной, для которой установлен символьный тип данных, является единичный символ. В Windows использует­ся код ANSI (по названию разработавшего этот код института -American National Standard Institute- Американский националь­ный институт стандартизации). Множество значений символьного типа состоит из 256 различных символов, определенным образом упорядоченных, и содержит символы заглавных и строчных букв, цифр и другие символы, включая специальные управляющие.

В Object Pascal есть три символьных типа: Char, AnsiCharи WideChar(см. табл. 3.9). Тип Charявляется стандартным типом Pascal. Он использовался и в Turbo Pascal и сейчас в Object Pascal. Типы AnsiCharи WideCharбыли добавлены позднее.

 

 

 

Значение типа Charпредставляет собой любой символ из на­бора ANSI.

Значение типа AnsiCharберется из набора символов, упоря­доченных в соответствии с расширенным форматом ANSI.

Тип WideChar- это символы, упорядоченные в соответствии с международным набором символов UNICODE. Первые 256 сим­волов совпадают с символами ANSI.

Функция Ord(Ch),где Ch- любая переменная символьного типа, возвращает целое значение, которым символ Chпредставлен в памяти, т.е. порядковый номер этого символа в таблице ANSI.

Функция Chr(i)преобразует целочисленную переменную в символьную переменную типа Char,порядковый номер которой задается параметром i.

Функция UpCase () служит преобразованию буквы из нижне­го регистра в верхний.

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

В программе перечисляемые типы описываются после ключе­вого слова typeи находятся в списке внутри круглых скобок:

Первое значение в списке имеет порядковый номер 0, второе -1 и т.д. Максимальный порядковый номер может быть 65 536, что является вполне достаточным.

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

вызовет ошибку при компиляции, поскольку идентификатор greenиспользуется и в первом перечислении, и во втором.

Для работы с перечисляемыми типами используются такие функции, как Ord(), Succ (), Pred(). К примеру:

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

Тип-диапазон может быть описан, как в разделе type,так и вразделе описания переменных после зарезервированного слова var,например:

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

Тип-диапазон обычно используется только в тех случаях, когда заранее точно известно, что значения некоторой переменной на­ходятся внутри определенного диапазона. Если же такой уверен­ности нет, то данный тип использовать не рекомендуется.

Тип-диапазон поддерживает все операции базового типа. Кроме этого, для работы с типами-диапазонами используются функции:

High (а)- возвращает значение максимальной границы диа­пазона, к которому принадлежит переменная а;

Low (a) - возвращает минимальное значение типа-диапазона.

Контрольні питання

1. Навести характеристику порядкових типів даних

2. Навести характеристику функцій для роботи з порядковими типами даних на мові Object Pascal


АУДИТОРНЕ ЗАНЯТТЯ

ЗМІСТОВИЙ МОДУЛЬ 2: ПРОЦЕДУРНО-ОРІЄНТОВАНЕ ПРОГРАМУВАННЯ. ПРОГРАМУВАННЯ ГРАФІКИ

ТЕМА 2.1: ОСНОВИ МОВИ OBJECT PASCAL

Лекція №19 – Речові типи даних

План заняття

1. Характеристика речових типів даних

2. Характеристика функцій для роботи з речовими типами даних на мові Object Pascal

В переменных вещественных типов содержатся числа, состоя­щие из целой и дробной частей. В Object Pascal определено шесть вещественных типов. Все типы различаются пороговым (мини­мальным положительным) и максимальным значениями, а также точностью (количеством значащих цифр) и объемом занимаемой памяти (см. табл. 3.10).

Вещественное число в памяти компьютера представляется следующим образом:

где s - знаковый разряд числа, е - экспонента, m - мантисса.

Длина мантиссы колеблется в пределах от 23 двоичных разря­дов (тип Single)до 63(тип Extended).Это обеспечивает точ­ность десятичных цифр 7-8 для Singleи 19-20для Extended.

Типы Сотри Currencyимеют особое предназначение в Object Pascal. Тип Comp содержит только целые числа с нулевой мантис­сой, которые при вычислениях представляются как вещественные и имеют очень большой диапазон значений. Другими словами, длина дробной части у чисел типа Сотротсутствует. В свою очередь, у типа Currencyдлина дробной части составляет 4 десятичных раз­ряда. Этот тип предназначен для обработки денежных операций, так как может охватить большой диапазон денежной массы и поз­воляет учитывать двойную систему денежных единиц (гривня -копейка, доллар - цент и т.д.). При программировании операций с валютой обычно приходится искать естественный способ записи денежных сумм, в котором целая часть числа определяет количест­во гривень, дробная - копеек. Если такие значения записывать в переменные типа Сотр,придется представлять их в виде целого числа копеек. В этом случае следует умножать значение на 100 для обращения копеек в гривни, а затем делить на 100, чтобы снова получить копейки. При использовании типа Currencyзадачу вы­бора представления масштаба возьмет на себя компилятор. Осо­бенность типов Currencyи Сотрзаключается в том, что они яв­ляются вещественными типами с фиксированной десятичной точ­кой, ввиду чего работа с ними осуществляется быстрее, чем с остальными вещественными числами с плавающей точкой.

Типы Real, Single, Doubleи Extendedотносятся к веще­ственным типам данных с так называемой плавающей десятичной точкой. Десятичная точка ставится перед старшим байтом мантис­сы, однако при арифметических действиях с числом она сдвигается вправо или влево в зависимости от выполняемой операции и дво­ичного порядка числа. Операции с типами Real, Single, Doubleи Extendedназывают арифметикой с плавающей точкой.

Для работы с вещественными типами используются математи­ческие функции Object Pascal, которые приведены в табл. 3.11.

 

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

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

Рассмотрим представленные функции на практике. Для иллюст­рации примера используется форма Form_Example (см. рис. 3.1). Обработчик нажатия кнопки ОК будет иметь такой вид

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

В Object Pascal определен ряд стандартных модулей, в которых описаны различные функции и процедуры. После подключения таких модулей к программе предоставляется возможность исполь­зовать описанные в них подпрограммы. В табл. 3.12-3.14 представ­лены некоторые математические функции, предоставляющие ши­рокие возможности при работе с вещественными типами. В про­грамме эти функции будут доступны после ссылки на стандартный модуль Math,который необходимо указать в разделе uses.

 

Ниже представлены примеры использования некоторых из пе­речисленных процедур и функций:

SinCos(0, sin, cos)-> sin=0, cos=l. n:=DegToRad(180);-> n=3,1415926.n:=Logl0(100);-> n=2.

 

Контрольні питання

1. Характеристика речових типів даних

2. Характеристика функцій для роботи з речовими типами даних на мові Object Pascal


АУДИТОРНЕ ЗАНЯТТЯ

ЗМІСТОВИЙ МОДУЛЬ 2: ПРОЦЕДУРНО-ОРІЄНТОВАНЕ ПРОГРАМУВАННЯ. ПРОГРАМУВАННЯ ГРАФІКИ

ТЕМА 2.1: ОСНОВИ МОВИ OBJECT PASCAL

Лекція №20 –Прості оператори

План заняття

1. Характеристика поняття оператор

2. Огляд простих операторів

3. Характеристика міток Object Pascal

4. Правила використання міток

Оператор в программе - это единое неделимое предложение, вы­полняющее какое-либо алгоритмическое действие. Собственно гово­ря, вся программа складывается из последовательности операторов, следующих друг за другом. Необходимо заметить, что под любым оператором подразумевается действие (сравнение, присваивание, переход по программе и т.д.)- Таким образом, блоки описания пере­менных, констант, меток, типов и составляющие их предложения операторами не являются. В программе операторы отделяются один от другого точкой с запятой «;». Этот символ имеет значение конца оператора и разделяет записанные в одну строку операторы:

а:=45; Ь:=а*20;

Однако даже если в строке содержится единственный опера­тор, его необходимо обязательно завершать символом «;».

Все операторы Object Pascal можно разделить на простые и структурированные. Простыми считаются операторы, которые не содержат в себе других операторов. К ним относятся:

■ оператор присваивания;

■ вызов процедуры;

■ оператор безусловного перехода GOTO;

■ пустой оператор.

Оператор присваивания является простейшим и наиболее часто употребляемым. Он применяется для вычисления нового значения переменной и для определения значения, возвращаемого функцией. Значение и переменная разделены парой символов «:=». Типы значе­ния и переменной могут быть любыми (кроме файлового), но долж­ны быть совместимы для присваивания (желательно совпадение).

Далее, при описании работы с процедурами, будет рассмотрен оператор обращения к процедуре.

Оператор безусловного перехода GOTOпозволяет изменить последовательность выполнения операторов и перейти к выпол­нению кода, начиная с указанного места в программе. Возле опе­ратора, на который будет совершен переход, должна быть уста­новлена метка. В операторе GOTOуказывается метка с тем же именем. В Object Pascal метки могут быть только двух видов:

■ целые числа от 0 до 9999;

■ обычное имя.

Используемые в программе метки описываются в разделе объявления меток, начинающимся зарезервированным словом label.Пример описания метки показан ниже:

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

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

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

■ применять операторы перехода только для передачи управления вниз по тексту программы (т.е. вперед);

■ расстояние между меткой и оператором перехода на нее не должно превышать страницу текста.

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

 

Контрольні питання

1. Надати характеристику поняттю оператор

2. Розглянути прості оператори

3. Навести характеристику міток Object Pascal

4. Охарактеризувати правила використання міток


АУДИТОРНЕ ЗАНЯТТЯ

ЗМІСТОВИЙ МОДУЛЬ 2: ПРОЦЕДУРНО-ОРІЄНТОВАНЕ ПРОГРАМУВАННЯ. ПРОГРАМУВАННЯ ГРАФІКИ

ТЕМА 2.1: ОСНОВИ МОВИ OBJECT PASCAL

Лекція №21 –Структуровані оператори

План заняття

1. Характеристика поняття структурований оператор

2. Огляд поняття составний оператор

3. Характеристика та формат запису оператора if

4. Характеристика та формат запису оператора case

Структурированные операторы включают в себя последова­тельность из нескольких других (простых и структурированных) операторов. К структурированным операторам относятся:

■ составной оператор;

■ условный оператор if;

■ условный оператор case;

■ оператор цикла repeat;

■ оператор цикла while;

■ оператор цикла for;

■ оператор над записями with.

Составной оператор представляет собой последовательность операторов, заключенных между двумя зарезервированными сло­вами beginи end.Эти ключевые слова называются оператор­ными скобками. Между последним оператором и словом endраз­решается не ставить точку с запятой. Однако ее необходимо ста вить после end.Из описанных выше простых операторов можно составить составной оператор, например:

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

Условный оператор if предназначен для выбора к выполне­нию одного из двух действий, в зависимости от некоторого усло­вия. Структура условного оператора имеет вид:

Условием выбора является логическое выражение (как прави­ло, использующее операторы сравнения). Алгоритм работы опе­ратора if имеет следующий вид. Сначала вычисляется выраже­ние условие. Результат вычисления должен иметь логический тип. Если результат True(истина), то выполняется действие1, а действие2 пропускается. В противном случае, если результат False(ложь), то выполняется действие2, а действие! игно­рируется. Ниже приведен пример условного оператора if.

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

Если в операторе необходимо предусмотреть несколько усло­вий, то они объединяются путем организации вложения условных операторов либо при помощи использования логических операций and,or, xor, not.

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

Запись без скобок будет некорректной. Если предыдущий опе­ратор записать в таком виде:

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

Операторы действие! и действие2могут быть любого ти­па, в частности, являться условными. В свою очередь, каждый из вложенных может содержать в себе еще условные операторы if. Довольно часто возникает ситуация, когда не все вложенные ус­ловные операторы имеют часть else действие!. Это означает, что возникает двусмысленность трактовки elseсоответствую­щему if. Такая неоднозначность в Object Pascal решается очень просто - зарезервированное слово elseвсегда ассоциируется с ближайшим к нему (сверху по тексту) зарезервированным словом if, которое еще не связано с else:

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

Условный оператор caseпозволяет осуществлять выбор из любого количества вариантов. В этом и заключается его главное отличие от оператора if. Структура оператора caseв Object Pas­cal имеет вид:

case ключ_выбора of

константа_выбора : оператор;

константа_выбора : оператор;

константа_выбора : оператор; else

операторы end;

Здесь case, of, elseи end- зарезервированные слова;

ключ_выбора - выражение любого простого или строкового типа;

константа_выбора - набор констант того же типа, что ивыражение ключ_выбора, оператор - любые операторы.

Условный оператор caseработает следующим образом. Вна­чале вычисляется выражение ключ__выбора. Затем просматрива­ется последовательность констант выбора, с которыми сравнива­ется полученное значение. Если находится константа, равная выражению ключ_выбора, то выполняется оператор, находя­щийся за этой константой. После этого оператор caseзавершает свою работу. Если же значение выражения ключ_выбора не совпадает ни с одной из констант, то выполняется оператор, рас­положенный после else.Ветвь оператора elseявляется необя­зательной. При отсутствии оператора else,когда ключу выбора нет соответствия, оператор caseпросто завершает свою работу и выполняется следующий за ним оператор.

Если для нескольких констант необходимо выполнять один и тот же оператор, то эти константы можно перечислить через запятую, а также можно задавать диапазон. В следующем примере используется условный оператор case.В строке ввода задается номер этажа. За­тем, в зависимости от введенного номера, либо выдается соответст­вующее сообщение, либо (если значение равно нулю) по оператору безусловного перехода производится выход из оператора case.

 

 

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

Оператор цикла repeatорганизует выполнение цикла, со­стоящего из любого числа операторов, с неизвестным заранее чис­лом повторений. Выход из цикла осуществляется при выполнении заданного условия. Такой цикл называют еще циклом с постусло­вием, поскольку условие выхода из цикла проверяется в его конце и он гарантированно выполняется хотя бы один раз. Однократное выполнение цикла часто называется итерацией. Структура этого оператора выглядит следующим образом:

 

 

Точку с запятой перед untilставить необязательно, так как слова repeatи untilподобны операторным скобкам. Выход из цикла происходит в случае, если выражение логического типа -условие, является истинным.

Следующая процедура заполняет массив типа Integerзна­чениями от 1 до 10 с использованием цикла repeat.В теле цикла содержатся операторы, обеспечивающие заполнение массива, вы­вод в текстовый редактор значений из массива и инкремент (по­следовательное наращивание) индекса массива. Условие оконча­ния цикла - проверка выхода значения индекса за границы масси­ва: i= 11.

 

В результате выполнения данной программы в многострочном редакторе отобразится цепочка чисел от 1 до 10.

Оператор цикла whileорганизует выполнение цикла с пред­условием. Другими словами, сначала проверяется условие, и лишь после подтверждения его истинности выполняется тело цикла. Цикл прекращает работу, если условие ложно. А это озна­чает, что при определенном стечении обстоятельств тело цикла может ни разу не выполниться. Оператор цикла whileзаписы­вается так:

 

Цикл выполняется, пока условие не примет значение False.Решить предыдущий пример (т.е. заполнить массив числами от 1 до 10) с помощью цикла whileможно следующим образом.

Оператор цикла forорганизует выполнение оператора строго заданное количество раз. Существует два варианта оператора for:

 

Следует отметить тот факт, что начальное и конечное значения должны быть того же типа, что и параметр цикла. Действует цикл forследующим образом. Сначала вычисляются и запоминаются начальное и конечное значения. Затем параметру цикла присваивает­ся начальное значение, после чего параметр цикла сравнивается с конечным значением. Далее, пока параметр цикла меньше или равен конечному значению (при использовании первого варианта) либо больше или равен (во втором варианте), последовательно выполня­ются итерации цикла. Как только параметр выходит за пределы, ус­тановленные конечным значением, цикл завершается. Итерация включает в себя выполнение оператора, расположенного за словом do, и увеличение (в первом варианте) или уменьшение (во втором варианте) параметра цикла на единицу. Изменение параметра цикла происходит автоматически при каждой итерации.

Необходимо иметь в виду, что при применении цикла со сло­вом toначальное значение не должно превышать конечное. Ана­логично при использовании слова downtoначальное значение не должно быть меньше конечного. Если эти условия не являются истинными, то цикл ни разу не выполнится.

Процедура заполнения двух массивов числами от 1 до 10 и от 10 до 1 соответственно с помощью цикла forбудет выглядеть так:

 

 

Массив a [i]заполнится числами от 1 до 10, а массив b [i]-от 10 до 1.

В Object Pascal существуют две стандартные процедуры -breakи continue,предназначенные специально для использо­вания в операторах цикла. Процедура breakпозволяет досрочно выйти из цикла, даже если не выполнилось условие выхода. Если, например, в любой из циклов заполнения массивов, рассмотрен­ных в примерах, добавить условный оператор следующего вида:

то это приведет к выходу из цикла при достижении параметром значения i= 7.

В свою очередь, применение процедуры continueпозволит начать новую итерацию цикла, даже если не завершена предыду­щая.

Оператор над записями withбыл рассмотрен выше при опи­сании типа запись.

Контрольні питання

1. Надати характеристику поняття структурований оператор

2. Виконати огляд поняття составний оператор

3. Навести характеристику та формат запису оператора if

4. Навести характеристику та формат запису оператора case


САМОСТІЙНА РОБОТА СТУДЕНТА

ЗМІСТОВИЙ МОДУЛЬ 2: ПРОЦЕДУРНО-ОРІЄНТОВАНЕ ПРОГРАМУВАННЯ. ПРОГРАМУВАННЯ ГРАФІКИ

ТЕМА 2.1: ОСНОВИ МОВИ OBJECT PASCAL

 

Самостійне заняття №13 –Тип дата-час

План заняття

 

1. Огляд Функції та процедури Delphi для роботи з датою та часом

 








Дата добавления: 2014-12-01; просмотров: 1198;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.168 сек.