Функция (информатика) Фу́нкция — в программировании — один из видов подпрограммы. Особенность, отличающая её от другого вида подпрограмм — процедуры, состоит в том, что функция возвращает значение, а её вызов может использоваться в программе как выражение. С точки зрения теории систем, функция в программировании — отдельная система (подсистема, подпрограмма), на вход которой поступают управляющие воздействия в виде значений аргументов. На выходе системы получаем результат выполнения программы, который может быть как скалярной величиной, так и векторным значением. По ходу выполнения функции могут выполняться также некоторые изменения в управляемой системе, причём как обратимые, так и необратимые. В некоторых языках программирования (например, в Паскале) функции существуют наряду с процедурами (подпрограммами, не возвращающими значения), в других, например, в C, являются единственным реализованным видом подпрограммы (то есть все подпрограммы являются функциями и могут возвращать значение). Побочным эффектом функции называется любое изменение функцией состояния программной среды, кроме возврата результата (изменение значений глобальных переменных, выделение и освобождение памяти, ввод-вывод и так далее). Теоретически наиболее правильным является использование функций, не имеющих побочного эффекта (то есть таких, в результате вызова которых возвращается вычисленное значение, и только), хотя на практике приходится использовать функции с побочным эффектом, хотя бы для обеспечения ввода-вывода и отображения результатов работы программы. Существует специфическая парадигма программирования — функциональное программирование, в которой любая программа представляет собой набор вложенных вызовов функций, не вызывающих побочных эффектов. Наиболее известный язык программирования, реализующий эту парадигму — Лисп. В нём любая операция, любая конструкция языка, любое выражение, кроме константы, являются вызовами функций.
PROGRAM A23; const max = 42; var vt:array[1..max]of integer; i,n:byte; x:integer; num:integer;
BEGIN n := max; writeln('Массив из n элементов будет задан случайными числами на интервале [0..20].'); readln(n); writeln('Подсчитать количество положительных элементов больших чем указанное число.'); writeln('Введите число: '); readln(x); writeln(' ');
writeln('Начальный Массив' ); randomize;
num := 0; for i:=1 to n do begin vt[i]:=random(-512,512); write(vt[i], ' ');
if (vt[i]>0) then num:=num+1;
end; writeln(' ');
writeln('Найдено ', num,' положительных элементов больших чем ', x);
const
max = 42;
var
vt:array[1..max]of integer;
i,n:byte;
x:integer;
num:integer;
BEGIN
n := max;
writeln('Массив из n элементов будет задан случайными числами на интервале [0..20].');
readln(n);
writeln('Подсчитать количество положительных элементов больших чем указанное число.');
writeln('Введите число: '); readln(x);
writeln(' ');
writeln('Начальный Массив' );
randomize;
num := 0;
for i:=1 to n do begin
vt[i]:=random(-512,512);
write(vt[i], ' ');
if (vt[i]>0) then
num:=num+1;
end;
writeln(' ');
writeln('Найдено ', num,' положительных элементов больших чем ', x);
END.