Конфигурация среды программирования (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 Pascal имеет вид:
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; просмотров: 1257;