мета-данные страницы
  •  
Загрузка не удалась. Возможно, проблемы с правами доступа?

Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Предыдущая версия справа и слеваПредыдущая версия
Следующая версия
Предыдущая версия
pascal:subprograms [15/10/2011 10:08] ocapascal:subprograms [23/04/2016 15:07] (текущий) ybezrukov
Строка 1: Строка 1:
-====== Процедуры и функции ====== 
- 
-Ниже сказанное относится не только к языку Паскаль, но и к большинству других языков программирования, за исключением конкретных языковых конструкций (имён процедур), которые даны именно для Паскаля. 
- 
-**Процедура (подпрограмма)** -- большой (более или менее) фрагмент кода, который описан один раз, но может вызываться из разных мест программы. Процедурами, вернее -- **вызовами** стандартных процедур, являются многие команды, такие, как команды ввода/вывода   - //write//, //writeln//, //read// и //readln//. 
- 
-Процедуры можно разделять по нескольким критериям. В данном случае, говоря о стандартных процедурах, процедуры неявно различаются по месту расположения кода. А именно:  
- 
-  * **стандартные** добавляются автоматически,   
-  * **библиотечные**  требуют подключения внешних библиотек (пример -- keypressed, readkey, delay из CRT), причём, библиотеки могут  
-      * поставляться изначально как стандартные, в составе инструментов разработчика вместе с  
-        компилятором, отладчиком и т.д. 
-      * создаваться программистом или его коллегами для себя;   
-      * создаваться и распространяться некоторой  третьей стороной.  
-  
-  * **локальные** описываются в программе. 
- 
-Иначе говоря, вы можете описать некоторый маленький алгоритм (подпрограмму), решающий частную задачу, и включить его качестве простого действия в более сложный алгоритм (программу).  При этом, описание можно сделать таким образом, что ваш алгоритм будет применим к более или менее широкому набору объектов, с которыми работает общий алгоритм. 
- 
- 
-Важно то, что с помощью механизма **передачи параметров**, подобный фрагмент кода способен выполнять одни и те же действия с разными объектами, т.е. значениями(константами), переменными и выражениями. Например, вычислять кубический корень из заданного числа, сортировать произвольный массив с элементами указанного типа, отбрасывать ненужные пробелы в указанной строке и т.д. 
- 
-**Описание процедуры** -- это общее описание алгоритма, реализующегося в процедуре, средствами используемого языка программирования.  Многие системы программирования позволяют получить программу, собранную из фрагментов, написанных на нескольких языках программирования. Например - с ассемблерными вставками, т.е. фактически - с непосредственным использованием команд процессора.  
- 
-В программе может содержатся **предварительное описание** или **объявление** процедуры, которое описывает, как должна вызываться процедура, т.е. указывает ее имя и порядок подстановки параметров, но не описывает алгоритма процедуры. В частности, оно используется для присоединения программ, написанных на ассемблере. 
- 
-**Вызов процедуры** -- применение ранее описанного алгоритма к конкретно указанным объектам уже при работе программы. 
- 
-При описании алгоритма процедуры, используются **формальные параметры**, которые не являются реальными объектами, доступными для дальнейшего использования в программе. При вызове процедуры, происходит подстановка 
- 
-**Функция** -- специальным образом оформленная процедура, которая **возвращает значение** определённого типа. Это означает, что вызов функции приводит в вычислению значения данного типа, которое может может быть использовано. Вызов функции одновременно является выражением и может быть использован везде, где может быть использовано другое выражение, вычисляющее значение данного типа, т.е. в качестве присваиваемого значения, в более сложном выражении или при подстановке параметра при вызове другой процедуры или функции. 
- 
- 
- 
-Например, алгоритм сортировки выбором (по возрастанию) требует нахождения максимального элемента на различных частях массива, а также. 
- 
-Большинство языков программирования позволяют оформлять многократно используемый код в виде процедур и/или функций. Целью написания процедур может быть: 
- 
-  минимизация написания повторно используемого кода; 
-   
-  стандартизация кода 
-   
-   
  
 ===== Процедуры ===== ===== Процедуры =====
Строка 243: Строка 200:
 </code> </code>
  
- 
- 
-</code>