Версия для печати

Урок 15. Подводим промежуточный итог

Оцените материал
(14 голосов)

Подводим промежуточный итог

Прежде чем продолжить изучение языка 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.