Параметры-переменные
При вызове процедур и функций формальные параметры-переменные занимают то же самое место в памяти, что и соответствующие им фактические параметры. Таким образом, дополнительное место в памяти не выделяется и изменения формального параметра приводят к изменениям фактического. Параметры-переменные, как правило, используются для передачи результатов из процедур в вызывающий алгоритм. Такой механизм передачи данных требует, чтобы фактические параметры были переменными, причем в точности того же типа, что и формальные параметры. При описании вспомогательные алгоритмы перед параметрами-переменными должно присутствовать слово var. Заголовок процедуры с параметрами-переменными имеет вид: Procedure MyProc2(var par1,par2: type1; var par3,par4: type2); Параметры-константы Работа с формальными параметрами-константами внутри вспомогательных алгоритмов ведется как с обычными локальными константами. Только эти константы принимают значения выражений, которые находятся в фактических параметрах. Им не выделяется новая память как локальным переменным. Запрещается изменять их значения во время выполнения подпрограммы и контроль за этим осуществляется на уровне компилятора, как для обычных констант. Использовать параметры-константы рекомендуется при передаче данных большого объема с гарантией сохранения их значений. Заголовок процедуры с параметрами-константами имеет вид: Procedure MyProc3(const par1,par2: type1; const par3,par4: type2);
Разветвляющиеся алгоритмы В тех случаях, когда последовательность действий зависит от выполнения или невыполнения некоторых условий, в алгоритмах используется ветвление. Условный оператор В Паскале для реализации конструкции ветвление используется условный оператор. Условный оператор IF реализует базовую конструкцию ветвление и позволяет изменить порядок выполнения команд в зависимости от некоторого логического условия, т.е. он осуществляет ветвление вычислительного процесса.
Условный оператор имеет вид: IF <условие> THEN <оператор1> [ ELSE <оператор2>]; В случае истинности логического выражения, стоящего в условии, выполняется <оператор1>, а <оператор2> пропускается. При ложном значении логического выражения пропускается <оператор1> и выполняется <оператор2>. Оператор IF может быть полным (присутствуют обе ветви) или неполным (Else-ветви нет, при ложном условии ничего не делается). По правилам каждая из ветвей может содержать либо один выполняемый оператор, либо несколько, объединенных в составной. Точка с запятой перед Else является ошибкой. Оператор выбора Если в алгоритме предусмотрены не два возможных варианта выполнения программы, а больше, то может использоваться оператор выбора CASE. Структура этого оператора в Турбо Паскале: CASE <ключ_выбора> OF C1: <оператор1>; C2: <оператор2>; ... CN: <операторN>; [ ELSE <оператор0>;] END; Здесь <ключ_выбора> - это выражение порядкового типа, в зависимости от значения которого принимается решение; C1,...,CN - значения, с которыми сравнивается значение <ключа>; <оператор1>,..., <операторN> - оператор (возможно составные), из которых выполняется тот, с константой которого происходит первое совпадение значения <ключа>, <оператор0> выполнится, если значение ключа не совпадает ни с одной из констант C1,...,CN. Ветвь Else не обязательна, и в отличие от оператора if, перед ней можно ставить точку с запятой. Если для нескольких значений <ключа> действия совпадают, то эти константы можно перечислить через запятую перед двоеточием или даже задать диапазон значений (нижняя граница.. верхняя граница).
Оператор перехода Кроме того в Турбо Паскале имеется другая возможность реализации нелинейного хода программы: с использованием оператора безусловного перехода. Оператор перехода имеет вид: GOTO <метка>. Он позволяет передать управление непосредственно на нужный оператор программы. Перед этим оператором должна располагаться метка отделенная от него двоеточием. В Турбо Паскале в качестве меток выступают либо целые числа от 0 до 9999, либо идентификаторы. Все метки должны быть описаны в разделе объявления меток следующим образом: label <список меток через запятую>; Каждой меткой в программе может быть помечен только один оператор. Операторов перехода с одной и той же меткой можно писать любое количество. Необходимо, чтобы раздел описания метки, сама метка и оператор перехода с ее использованием располагались в пределах одного блока программы (см. тему процедуры и функции). Кроме того, нельзя передавать управление внутрь структурированных операторов (например, if, for, while, repeat и др.). Замечание. Использование оператора Goto считается «плохим» стилем программирования, поэтому необходимо избегать его использования при написании программ.
Воспользуйтесь поиском по сайту: ©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...
|