Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Архив1 / docx55 / Курсовая работа(5).docx
Скачиваний:
52
Добавлен:
01.08.2013
Размер:
127.96 Кб
Скачать

2.6.2 Безусловный переход

Оператор BREAK существует в обоих языках программирования, и в обоих языках относительно циклов он несет одинаковую функциональную нагрузку – выход из текущего блока цикла. Оператор BREAK предназначен для досрочного завершения цикла. При его выполнении происходит немедленный выход из текущего цикла и переход к выполнению оператора, следующего за циклом. Оператор CONTINUE завершает текущую итерацию цикла, осуществляя переход к концу тела цикла. Главное различие для языков Си и Паскаль в использовании этих операторов в том, что в Си это именно операторы, а в ранних версиях Паскаля (включая Borland Pascal и Delphi Pascal) это процедуры.

Оператор GOTO и система меток также имеется в обоих языках. В Паскале оператор GOTO осуществляет переход к оператору, помеченному специальной меткой, которая отделяется от самого оператора двоеточием. В качестве метки может быть использовано любое целое число без знака, содержащее более четырех цифр, или любое имя. Чтобы можно было использовать метку, она должна быть в обязательном порядке объявлена в разделе меток в описательной части программы. Этот раздел начинается служебным словом LABEL, после которого через запятую перечисляются метки [13]. В языке Си метки обозначаются таким же образом, но описывать их не нужно. В обоих языках использование этих операторов основано на аналоге оператора языка Ассемблер, поэтому и различий в их использовании нет.

2.7 Пользовательские подпрограммы

Подпрограмма - самостоятельная часть программы, которая разрабатывается независимо от других частей и затем вызывается по имени [8]. Подпрограммы в Паскале используются как вспомогательные элементы, в отличие от подпрограмм в языке Си, где функция является основной структурной единицей программы.

Подпрограммы языка Паскаль делятся на две категории: процедуры PROCEDURE, не возвращающие значений, и функции FUNCTION, возвращающие значения. Синтаксически процедуры и функции состоят из заголовка и тела, после которого ставится символ конца оператора «;». Заголовок содержит ключевое слово PROCEDURE или FUNCTION, затем следует имя подпрограммы. За именем находится необязательная конструкция из круглых скобок для передачи списка формальных параметров, и если подпрограмма является функцией, то далее располагается тип возвращаемого значения через символ двоеточия. Тело процедуры, как и программы, в свою очередь может содержать описания процедур и функций. Таким образом, процедуры и функции могут быть вложены друг в друга как угодно глубоко, при этом тело программы — самое верхнее в цепочке. Вслед за заголовком процедур/функций вместо тела может помещаться ключевое слово FORWARD, это делается в том случае, если описание процедуры/функции располагается в программе после её вызова, и связано с поддерживаемой в Паскале возможностью компиляции программы за один проход [5]. Возвращение значения из функции осуществляется через временную переменную, которая доступна по имени самой функции. Таким образом, для того, чтобы вернуть значение в точку вызова, необходимо присвоить это значение имени функции внутри ее описания.

Подпрограммы языка Си представляют основную структурную единицу языка и доступны в одном виде – функции. Каждая функция может иметь несколько этапов своего создания. Первый этап – объявление функции, которое состоит из заголовка функции, списка формальных параметров и пустого оператора. Объявление требуется компилятору на стадии линковки для того, чтобы указать существование данной функции. Заголовок функции состоит из типа возвращаемого значения (в случае, если функция не возвращает значения, ей присваивается тип void), имя функции и обязательного списка формальных параметров. Если список формальных параметров пуст, то по умолчанию в него записывается ключевое слово void. Второй этап – определение функции, в котором после заголовка в фигурных скобках идут операторы, выполняющиеся в теле данной функции. В случае, если необходимо вернуть значение, используется оператор return. Он передает требуемое значение в поток вызова и принудительно завершает функцию. В одной функции может быть сколь угодно операторов возврата, но выход будет осуществляться по первому из них. И третий этап – непосредственно вызов функции, который может проходить ниже объявления либо определения и может быть использован внутри самой функции (рекурсия).

Подпрограммы в Си и Паскале имеют одинаковый механизм передачи параметров в функцию через стек, унаследованный у языков более низкого уровня. Возврат значения в Си происходит через процессор, а потому проходит быстрее возврата значения в Паскале. Функции Си имеют более последовательную организацию, а потому выигрывают в синтаксисе у подпрограмм Паскаля.

Соседние файлы в папке docx55