Подпрограммы (PascalABC.NET): различия между версиями

Материал из Информационная безопасностя
Перейти к навигации Перейти к поиску
Строка 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://pascalabc.net/downloads/OsipovBook/StudentChoice2.pdf Выбор школьника 2]
 
<syntaxhighlight lang="pascal" line>
 
procedure hello(name: string);
 
begin
 
  Writeln($'Hello {name}!');
 
end;
 
 
function add(a, b: integer): integer;
 
begin
 
  result := a + b;
 
end;
 
 
begin
 
  hello('Иван');
 
  var a := 2;
 
  var b := 3;
 
  var res := add(a,b);
 
  Writeln($'{a} + {b} = {res}');   
 
end.
 
</syntaxhighlight>
 
  
 
== Задачник ==
 
== Задачник ==
 
* [http://ptaskbook.com/ru/tasks/func.php Функции]
 
* [http://ptaskbook.com/ru/tasks/func.php Функции]

Версия 17:29, 21 мая 2023

Подпрограммы

При решении задач вы неоднократно сталкивались с ситуацией, кода требовалось несколько раз выполнить одни и те же действия. Частично эту проблему решает использование циклов. Но как быть, если один и тот же участок кода нужно повторить в другом месте программы? Как поступить, если нужно произвести вычисления для группы изменяемых данных (например, вычислить длины сторон треугольника, заданного координатами вершин)? Вот тут на помощь и приходят подпрограммы.

Подпрограмма – именованный или идентифицированный иным образом фрагмент программного кода, к которому можно многократно обращаться. Подпрограмма содержит описание определённого набора действий. 

Обращение к подпрограмме называется ее вызовом. Чаще всего для вызова подпрограммы используется ее имя. Место в коде программы, откуда вызывается подпрограмма, называется точкой вызова, а соответствующая программная единица – вызывающей. Сама же подпрограмма при этом считается вызываемой.

Функция – разновидность подпрограммы, возвращающей некоторое значение, которое затем используется в выражении.

Вы давно знакомы с функциями – Sqr, Sqrt, Abs и т.п. – все это стандартные функции; их PascalABC.NET уже «знает». Но также можно писать собственные функции.

Процедура - подпрограмма, не возвращающая значения.

Иными словами, процедуры – это подпрограммы, которые не являются функциями. Например, процедуры Write и Println.

Подпрограммы могут также вызывать сами себя. В этом случае они называются рекурсивными. Наиболее популярны рекурсивные функции – они получаются на основе рекуррентных соотношений.


Процедуры и функции

Задачник