Подводим промежуточный итог
Автор: |
© Ерёмин А.А., 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. Циклы - общее понятие; цикл с параметром »
Зарегистрируйтесь/авторизируйтесь,
чтобы оценивать статьи.
Для вставки ссылки на данную статью на другом сайте используйте следующий HTML-код:
Ссылка для форумов (BBCode):
Быстрая вставка ссылки на статью в сообщениях на сайте:
{{a:115}} (буква a — латинская) — только адрес статьи (URL);
{{статья:115}} — полноценная HTML-ссылка на статью (текст ссылки — название статьи).
Поделитесь ссылкой в социальных сетях:
Комментарии читателей к данной статье
Репутация: +40 |
Ерёмин А.А. (9 августа 2010, 18:32) | 1 отзыв: Цитата (antoca): Собственно в статье уже почему-то написано Random(11) Потому что ошибка исправлена. Что опять неправильно-то? |
Репутация: +1 |
antoca (9 августа 2010, 18:01): Random(10)-5 = -5..4
А не -5..5. Собственно в статье уже почему-то написано Random(11). В общем хрен с ним. |
Репутация: +40 |
Ерёмин А.А. (21 мая 2010, 14:55): |
Репутация: нет |
processor (18 мая 2010, 22:07): Например, Random(10)-5 будет генерировать числа от -5 до 5. ??? Почему от -5 и до 4 только )))
|
Оставлять комментарии к статьям могут только зарегистрированные пользователи.