Delphi.int.ru — Портал программистов

Вход Регистрация | Забыли пароль?

События

Сегодня:
Вопросы0    Ответы0    Мини-форумы0


Последние:
Вопрос10.11, 12:07 / #6676
Ответ02.08, 00:42 / #6619
Новости30 апреля 2012


Сейчас онлайн:
На сайте — 19
На IRC-канале — 2

Ссылки

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

Автор:
© Ерёмин А.А., 2007
Ничто так не способствует успешному внедрению новшеств, как отсутствие проверок.
Номер урока:
15
 

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

Автор: Ерёмин А.А.

Статья добавлена: 29 октября 2007

Следующая статья: Обучающий курс. 16. Циклы - общее понятие; цикл с параметром »

Рейтинг статьи: 4.89 Голосов: 9 Ваша оценка:

Зарегистрируйтесь/авторизируйтесь,
чтобы оценивать статьи.

Для вставки ссылки на данную статью на другом сайте используйте следующий HTML-код:

Ссылка для форумов (BBCode):

Быстрая вставка ссылки на статью в сообщениях на сайте:
{{a:115}} (буква a — латинская) — только адрес статьи (URL);
{{статья:115}} — полноценная HTML-ссылка на статью (текст ссылки — название статьи).

Поделитесь ссылкой в социальных сетях:


Комментарии читателей к данной статье

Ерёмин А.А.
Репутация: +40

Ерёмин А.А. (9 августа 2010, 18:32) | 1 отзыв:

Цитата (antoca):

Собственно в статье уже почему-то написано Random(11)

Потому что ошибка исправлена. Что опять неправильно-то?
antoca
Репутация: +1

antoca (9 августа 2010, 18:01):

Random(10)-5 = -5..4

А не -5..5. Собственно в статье уже почему-то написано Random(11). В общем хрен с ним.
Ерёмин А.А.
Репутация: +40

Ерёмин А.А. (21 мая 2010, 14:55):

Цитата (processor):

Почему от -5 и до 4 только )))

Ошибочка. Спасибо, исправлено.
processor
Репутация: нет

processor (18 мая 2010, 22:07):

Например, Random(10)-5 будет генерировать числа от -5 до 5. ??? Почему от -5 и до 4 только )))

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