Прежде чем продолжить изучение языка Pascal, следует подвести
итог и вспомнить всё, что было сказано ранее. Всё, что сказано ниже, является
кратким сборником всех предыдущих уроков.
Переменные
Переменная - это ячейка памяти,
которой присвоено некоторое имя и это имя используется для доступа к данным,
расположенным в данной ячейке. Для каждой переменной задаётся
тип данных - диапазон всех возможных значений для
данной переменной. Примеры типов данных - Integer (целое
число), Real (вещественное число), Boolean
(логическое значение), String (строка, последовательность
символов), Char (один символ) и др. Значения переменным
присваиваются непосредственно в процессе выполнения программы. Делается это с
помощью знака присвоения - ":=" ("переменная := значение").
Каждая переменная перед использованием должна быть описана в разделе описания с
помощью ключевого слова VAR ("VAR переменная :
тип данных"). Частным случаем переменных являются константы.
Константы - это переменные, значения которых не
меняются в процессе выполнения программы. Константы описываются словом
CONST ("CONST имя константы = значение").
Тип данных при описании констант простых типов данных можно опускать (например,
запись "CONST g: Real = 9.8" эквивалентна записи "CONST g = 9.8").
Одной из встроенных констант является число "пи" - PI.
Базовые конструкции
Раздел описаний - это то место в
программе, где описываются все используемые переменные, константы (а также
метки, подпрограммы, типы данных и пр.).
Раздел реализации - место, где записываются все
инструкции, которые будут выполнены при работе программы.
Раздел реализации заключается в блок BEGIN .. END:
{раздел описаний}
begin
{раздел реализации}
end.
Блок BEGIN .. END служит для группировки нескольких
команд. Особенно хорошо это будет проиллюстрировано при записи условного
оператора (см. далее).
Условный оператор
Условный оператор служит для создания ветвлений в программе,
т.е. когда в зависимости от какого-либо условия выполняется та или иная
последовательность команд. Условный оператор записывается с помощью ключевых
слов IF .. THEN, между которыми указывается
некоторое условие, логическое выражение, которое может быть либо истиной (True),
либо ложью (False). Команды, следующие за условным оператором,
выполняются только в том случае, когда логическое выражение является истиной.
if {условие} then
{последовательность команд}
В случае, если требуется выполнить несколько команд в
зависимости от выполнения условия, следует заключить эти команды в BEGIN ..
END:
if {условие} then
begin
Команда 1;
Команда 2;
Команда 3
end;
В приведённом примере команды будут выполнены только в том
случае, если условие истинно. Условный оператор позволяет указать команды и для
того случая, когда условие не выполнилось:
if {условие} then
{команды, если условие выполняется}
else
{команды, если условие не выполняется}
Обратите внимание, что перед ключевым словом ELSE
разделитель команд ";" не ставится.
Не всегда использование конструкции IF .. THEN .. ELSE
удобно. Иногда требуется выполнить различные команды в зависимости от значения
переменной, причём значений может быть много. В этом случае можно применить
оператор выбора, именуемый CASE. Оператору выбора
сообщается переменная-селектор (тип данных должен быть
обязательно перечислимый - число, символ и т.п.), а затем перечисляются
значения, которые может принимать переменная и для каждого из них указывается
соответствующий набор команд. В случае, если значение переменной не совпало ни с
одной из указанных, выполняется набор команд, указанных после слова ELSE
(хотя этот блок не является обязательным).
case {переменная-селектор} of
{константа_1}: {инструкции 1}
{константа_2}: {инструкции 2}
{...}
else {инструкции, если ни одна константа не подошла}
end;
Логические выражения
Логические выражения - выражения, которые могут быть либо
истинными, либо ложными. Соответствующий тип данных (логический) -
Boolean (значения True и False). Логические
выражения, к примеру, указываются при записи условного оператора IF.
Над логическими выражения можно проводить некоторые операции:
• NOT ("не", отрицание) - изменяет значение выражения на
противоположное;
• AND ("и", умножение) - результирующее выражение истинно
только тогда, когда истинны все составляющие его выражения;
• OR ("или", сложение) - общее выражение будет истинным когда
хотя бы одно из выражений, соединённых с помощью OR, истинно.
При записи сложных логических выражений простые условия
следует заключать в скобки, так как они имеют более низкий приоритет.
Функции
Функции - заранее определённые
наборы команд, направленные на получение какого-либо значения. Функция может
иметь входные параметры - аргументы, которые используются при
вычислении результирующего выражения. Входных параметров у функции может и не
быть. Функцию можно вызывать по её имени. Значение, возвращённое функцией, можно
присвоить какой-либо переменной, тип данных которой совпадает с типом данных
результата функции, либо использовать в каком-либо выражении или даже в качестве
входного параметра другой функции. В Delphi встроено огромное количество
функций. Дополнительные функции для математических расчётов содержатся в модуле
Math. Чтобы подключить этот модуль, нужно добавить в раздел
uses его имя.
Случайные числа
Случайные числа полезно применять при моделировании каких-либо
процессов, которые могут протекать при различных условиях. Также случайные числа
часто применяются в играх для создания случайного варианта игры (например,
расклад карточного пасьянса).
Случайные числа генерируются функцией Random. Если
функция вызвана без параметров, случайное число будет взято из диапазона от 0 до
1, а если передать функции какое-либо число, то число будут выбрано из интервала
от 0 до N (N - переданный параметр). Само число N при этом в "розыгрыше" не
участвует. Для того, чтобы получить случайное из число из какого-нибудь другого
интервала (например, от -5 до 5), следует просто из результата вычесть смещение
относительно нуля. Например, Random(11)-5 будет генерировать числа от
-5 до 5.
Чтобы числа были действительно случайными (а не псевдослучайными - при каждом
запуске программы числа будут одинаковые), следует перед первым вызовом функции
Random() вызывать процедуру Randomize. Она
не имеет никаких параметров, её назначение - инициализация генератора
действительно случайных чисел.
Ввод и вывод
Чтобы связать программную часть приложения и его визуальную
составляющую, необходим механизм взаимодействия визуальных объектов внутренней
структуры программы. Для того, чтобы получить какие-либо данные от визуальных
элементов (например, полей ввода), необходимо обратиться к соответствующим
свойствам этих компонентов. При этом необходимо следить за тем, чтобы типы
переносимых данных совпадали.
Для конвертирования чисел в текстовые строки и обратно
используются следующие функции:
• StrToInt() - преобразует указанную строку в целое число;
• StrToFloat() - преобразует указанную строку в вещественное
число;
• IntToStr() - преобразует целое число в строку;
• FloatToStr() - преобразует вещественное число в строку.
Например, если требуется получить значение, введённое в
текстовое поле Edit1 и записать его в переменную A типа
Integer, следует написать так:
A:=StrToInt(Edit1.Text);
Для ввода чисел можно использовать текстовое поле
TEdit (страница Standard), бегунок TTrackBar
(страница Win32), поле с кнопками-стрелками TSpinEdit
(Samples) и др. Для ввода текстовых строк небольшой длины обычно
используется TEdit, для ввода больших текстов - TMemo
(Standard) или TRichEdit (Win32). Также
удобен ввод с помощью диалогового окна, создаваемого функцией InputBox().
Для вывода данных можно использовать любые из компонент -
например текстовую метку TLabel или то же текстовое поле
TEdit. Очень часто удобно выводить данные в виде диалоговых
окон - с помощью функций ShowMessage() и MessageDlg().
Заключение
В данном уроке были кратко изложены темы, затронутые в
предыдущих уроках - объявление переменных и присвоение им значений,
использование констант, базовые конструкции языка Pascal, условный оператор и
оператор выбора, формирование логических выражений, использование готовых
функций, применение генератора случайных чисел и способы ввода и вывода данных.
Всё это является базой для дальнейшего изучения языка Pascal и
объектно-ориентированной среды Delphi.
Автор: © Ерёмин А.А.
|