Подпрограммы (PascalABC.NET): различия между версиями
(Новая страница: «== Процедуры и функции == * [http://pascalabc.net/downloads/pabcnethelp/index.htm?page=LangGuide/ProcFunc/procdef.html Процедуры и фу...») |
|||
(не показано 7 промежуточных версий этого же участника) | |||
Строка 1: | Строка 1: | ||
− | == | + | {{TOCRight}} |
+ | == Подпрограммы == | ||
+ | При решении задач вы неоднократно сталкивались с ситуацией, кода требовалось несколько раз выполнить одни и те же действия. Частично эту проблему решает использование циклов. Но как быть, если один и тот же участок кода нужно повторить в другом месте программы? Как поступить, если нужно произвести вычисления для группы изменяемых данных (например, вычислить длины сторон треугольника, заданного координатами вершин)? Вот тут на помощь и приходят подпрограммы. | ||
+ | |||
+ | Подпрограмма – именованный или идентифицированный иным образом фрагмент программного кода, к которому можно многократно обращаться. Подпрограмма содержит описание определённого набора действий. | ||
+ | |||
+ | Обращение к подпрограмме называется ее вызовом. Чаще всего для вызова подпрограммы используется ее имя. Место в коде программы, откуда вызывается подпрограмма, называется точкой вызова, а соответствующая программная единица – вызывающей. Сама же подпрограмма при этом считается вызываемой. | ||
+ | |||
+ | Функция – разновидность подпрограммы, возвращающей некоторое значение, которое затем используется в выражении. | ||
+ | |||
+ | Вы давно знакомы с функциями – Sqr, Sqrt, Abs и т.п. – все это стандартные функции; их PascalABC.NET уже «знает». Но также можно писать собственные функции. | ||
+ | |||
+ | Процедура - подпрограмма, не возвращающая значения. | ||
+ | |||
+ | Иными словами, процедуры – это подпрограммы, которые не являются функциями. Например, процедуры Write и Println. | ||
+ | |||
+ | Подпрограммы могут также вызывать сами себя. В этом случае они называются рекурсивными. | ||
+ | |||
+ | Наиболее популярны рекурсивные функции – они получаются на основе рекуррентных соотношений. | ||
+ | |||
+ | == Справка, учебник и задачник == | ||
* [http://pascalabc.net/downloads/pabcnethelp/index.htm?page=LangGuide/ProcFunc/procdef.html Процедуры и функции: обзор] | * [http://pascalabc.net/downloads/pabcnethelp/index.htm?page=LangGuide/ProcFunc/procdef.html Процедуры и функции: обзор] | ||
+ | * [http://pascalabc.net/downloads/OsipovBook/StudentChoice2.pdf Выбор школьника 2] | ||
+ | * [http://ptaskbook.com/ru/tasks/func.php Функции] |
Текущая версия на 17:31, 21 мая 2023
Подпрограммы
При решении задач вы неоднократно сталкивались с ситуацией, кода требовалось несколько раз выполнить одни и те же действия. Частично эту проблему решает использование циклов. Но как быть, если один и тот же участок кода нужно повторить в другом месте программы? Как поступить, если нужно произвести вычисления для группы изменяемых данных (например, вычислить длины сторон треугольника, заданного координатами вершин)? Вот тут на помощь и приходят подпрограммы.
Подпрограмма – именованный или идентифицированный иным образом фрагмент программного кода, к которому можно многократно обращаться. Подпрограмма содержит описание определённого набора действий.
Обращение к подпрограмме называется ее вызовом. Чаще всего для вызова подпрограммы используется ее имя. Место в коде программы, откуда вызывается подпрограмма, называется точкой вызова, а соответствующая программная единица – вызывающей. Сама же подпрограмма при этом считается вызываемой.
Функция – разновидность подпрограммы, возвращающей некоторое значение, которое затем используется в выражении.
Вы давно знакомы с функциями – Sqr, Sqrt, Abs и т.п. – все это стандартные функции; их PascalABC.NET уже «знает». Но также можно писать собственные функции.
Процедура - подпрограмма, не возвращающая значения.
Иными словами, процедуры – это подпрограммы, которые не являются функциями. Например, процедуры Write и Println.
Подпрограммы могут также вызывать сами себя. В этом случае они называются рекурсивными.
Наиболее популярны рекурсивные функции – они получаются на основе рекуррентных соотношений.