мета-данные страницы
Загрузка не удалась. Возможно, проблемы с правами доступа?
Различия
Показаны различия между двумя версиями страницы.
Предыдущая версия справа и слеваПредыдущая версияСледующая версия | Предыдущая версияСледующая версияСледующая версия справа и слева | ||
pascal:subprograms [13/10/2011 10:52] – oca | pascal:subprograms [15/10/2011 11:17] – oca | ||
---|---|---|---|
Строка 3: | Строка 3: | ||
Ниже сказанное относится не только к языку Паскаль, | Ниже сказанное относится не только к языку Паскаль, | ||
- | **Процедура (подпрограмма)** -- большой (более или менее) фрагмент кода, который описан один раз, но вызывается из разных мест программы. Процедурами, | + | **Процедура (подпрограмма)** -- большой (более или менее) фрагмент кода, который описан один раз, но может |
- | write, writeln, read и readln. | + | |
Процедуры можно разделять по нескольким критериям. В данном случае, | Процедуры можно разделять по нескольким критериям. В данном случае, | ||
+ | |||
* **стандартные** добавляются автоматически, | * **стандартные** добавляются автоматически, | ||
- | * **библиотечные** | + | * **библиотечные** |
- | * библиотеки могут поставляться изначально | + | |
- | * создаваться | + | |
- | * создаваться самим | + | |
* **локальные** описываются в программе. | * **локальные** описываются в программе. | ||
- | С помощью механизма передачи параметров, подобный фрагмент кода способен | + | Библиотеки могут |
+ | * поставляться изначально как стандартные, в составе инструментов разработчика вместе с компилятором, отладчиком и т.д. | ||
+ | * создаваться программистом или его коллегами | ||
+ | * создаваться | ||
- | Иначе говоря, | + | Иначе говоря, |
+ | |||
+ | Пример, | ||
+ | |||
+ | Идея сортировки в следующем: | ||
+ | Массив рассматриваем как состоящий из двух частей - сортированной и несортированной в каждый момент работы программы | ||
+ | 1) Находим максимальный во всём массиве элемент. | ||
+ | В рассматриваемой части массива | ||
+ | |||
+ | <code pascal | Крайне общий алгоритм программы сортировки массива> | ||
+ | uses allForSorting; | ||
+ | // Скорее всего - не существует в реальности. | ||
+ | // Содержит ВСЁ (происхождение чего мы не хотим объяснять) | ||
+ | |||
+ | const | ||
+ | n=1000; | ||
+ | |||
+ | type | ||
+ | ArrayType = array[1..N] of integer; | ||
+ | // Описание типа (" | ||
+ | var | ||
+ | SortedA : ArrayType; | ||
+ | |||
+ | begin | ||
+ | FillArray (SortedA); | ||
+ | PrintArray(SortedA); | ||
+ | SortArray (SortedA); | ||
+ | PrintArray(SortedA); | ||
+ | |||
+ | end. | ||
+ | |||
+ | </ | ||
+ | |||
+ | |||
+ | Важно то, что с помощью механизма **передачи параметров**, | ||
**Описание процедуры** -- это общее описание алгоритма, | **Описание процедуры** -- это общее описание алгоритма, | ||
Строка 34: | Строка 68: | ||
Большинство языков программирования позволяют оформлять многократно используемый код в виде процедур и/или функций. Целью написания процедур может быть: | Большинство языков программирования позволяют оформлять многократно используемый код в виде процедур и/или функций. Целью написания процедур может быть: | ||
- | | + | минимизация написания повторяющегося кода - когда программисту приходится |
- | + | минимизация включения повторяющегося кода | |
стандартизация кода | стандартизация кода | ||
| |