Внутри условного оператора возможно использование другого условного оператора, в этом случае говорят о вложенных условиях. Следует с осторожностью использовать условия, имеющие большую вложенносвть, т.к. их структура часто бывает запутанной.
Оператор цикла может содержать другой оператор цикла, в этом случае говорят о вложенных циклах. На практике не рекомендуется использовать циклы со степенью вложенности больше трех.
На ряду с возможностью использования стандартных процедур и функций Turbo Pascal 7.0 предоставляет возможность создания пользовательских процедур и функций.
Процедуры и функции- это объект языка программирования, описывающий отдельные фрагменты алгоритма и имеющие собственное имя и определенное правило обращения к ним.
Используя процедуры и функции, можно разделить большую задачу на более мелкие подзадачи, оформив их как процедуру или функцию. Такой подход носит название структурного или блочного программирования.Использование блочного подхода является одной из концептуальных особенностей языка Паскаль.
Пример.
Найти большее из трех чисел.
Необходимо создать функцию, вычисляющую большее из двух чисел.
max(max(a,b),c)
При создании процедур и функций преследуются следующие цели:
* разделение общей задачи на меньшие по объему и сложности подзадачи;
* уменьшение объемов программы за счет многократного применения процедур и функций, реализующих некоторые типовые действия;
* универсализация решения задач, т.е. создается процедура или функция, реализующая общее решение ряда однотипных задач;
* повышается наглядность и понятность программы;
* улучшается модификация и отладка программы.
Структура процедур и функций аналогична структуре основной программы на языке Паскаль. Процедуры и функции имеют описательную часть и выполняемую, называемую телом процедуры или функции. Процедуры и функции должны быть объявлены в описательной части основной программы либо в описательной части другой процедуры или функции.
Function <имя функции>[(формальные параметры)]:<тип результата>;
[описательная часть]
Begin
<тело функции>;
end;
Замечание: в описательной части процедуры или функции могут быть реализованы те же операторы, что и в описательной части основной программы по тем же правилам, за исключением Program, uses.
Функция должна иметь тип результата являющийся простым или String.
Замечание: В общем виде функция представляет собой некоторый блок, на входе которого находятся формальные параметры, на выходе возвращается некоторое значение ассоциированное с именем функции.
В теле функции можно выполнять арифметические и логические операции с именем функции, как с обычной переменной, а так же присваивать имени функции некоторое значение. Если в еле функции отсутствует оператор вида:
<имя функции>:=<выражение>;
то говорят, что функция задана не корректно и возвращает неопределенное значение.