Описание функции
Функция выглядит почти так же, как и процедура. Отличительные особенности функции: она имеет
только один результат вычисления (но может иметь несколько входных параметров);
результат обозначается именем функции и передается в основную программу. Заголовок
функции начинается с ключевого слова Function и заканчивается типом
возвращаемого данной функцией значения.
раздел описаний
begin
операторы
имя функции:=результат;
end;
begin
операторы
имя функции:=результат;
end;
Примеры:
Function pl (a:real):real;
Function sum (a,b,c:integer):real;
В теле функции обязательно должен быть хотя бы
один оператор присваивания, где в левой части стоит имя функции, а в правой —
ее значение. Иначе значение функции не будет определено.
Вызывается функция по ее имени с указанием фактических параметров. Вызов функции можно делать непосредственно внутри выражения.
Вызывается функция по ее имени с указанием фактических параметров. Вызов функции можно делать непосредственно внутри выражения.
Примеры:
s:=pl(f)+pl(k);
a:=sum(3,6,8)-sum(a,h,k);
Задание 1. Найти площадь фигуры, которая получена вырезанием из квадрата со стороной а квадрата со стороной b (a>b).
Program z1;
Var a,b,s:real;
Function pl (a:real):real;
Begin
Pl:=a*a;
End;
Begin
Readln(a,b);
S:=pl(a)-pl(b);
Writeln(s);
End.
Задание 2. Найти
значение выражения: 56 – 310
+ 412.
Указание: Описать
функцию для нахождения аn, как произведение n множителей, равных а.
Program z2;
Var s:longint;
Function st (a,n:integer):longint;
Var p:longint; i:integer;
Begin
P:=1;
For i:=1 to n do
P:=p*a;
St:=p;
End;
Begin
S:=st(5,6)-st(3,10)+st(4,12);
Writeln(s);
End.
Тесты Посмотреть решение
Экспериментальная часть
1.
Дано действительное число x. Вычислить х+х3+х5+х7.
2.
Дано действительное число x. Вычислить х+х3+х5+х7+…+хn, где n –
нечетное число.
Указание: Написать
функцию, которая находит сумму цифр одного числа.
Program z2;
Var n,m,I,s:integer;
Function sum(a:integer):integer;
Var s:integer;
Begin
S:=0;
While a<>0 do
Begin
s:=s+a mod 10;
a:=a div 10;
End;
Sum:=s;
End;
Begin
Readln(n,m); s:=0;
For i:=n to m do
S:=s+sum(i);
Writeln(s);
End.
Тесты Посмотреть решение
Тесты Посмотреть решение
Экспериментальный раздел работы
2. Удалить из массива целых чисел числа, сумма цифр которых меньшеt 9.
Указание: Написать функцию, которая находит сумму делителей одного числа.
program z4;
var n,m,i:integer; s1:longint;
function del(a:integer):integer;
var s,i:integer;
begin
s:=1+a;
for i:=2 to a div 2+1 do
if a mod i=0 then s:= s+i ;
del:=s;
end;
begin
readln(n,m);
s1:=0;
for i:=n to m do
s1:=s1+del(i);
writeln(s1);
end.
Тесты Посмотреть решение
2. Дан массив из целых чисел. Необходимо удалить из него все совершенные числа.
var n,m,i:integer; s1:longint;
function del(a:integer):integer;
var s,i:integer;
begin
s:=1+a;
for i:=2 to a div 2+1 do
if a mod i=0 then s:= s+i ;
del:=s;
end;
begin
readln(n,m);
s1:=0;
for i:=n to m do
s1:=s1+del(i);
writeln(s1);
end.
Тесты Посмотреть решение
Экспериментальный раздел работы
1. Найти все совершенные числа на промежутке от n до m (совершенное число равно сумме всех своих делителей, кроме него самого).2. Дан массив из целых чисел. Необходимо удалить из него все совершенные числа.
Задание 5. Дан массив целых чисел. Вывести на экран все простые числа.
Указание: Написать функцию, которая проверяет, является ли число простым.
Тесты Посмотреть решение
Указание: Написать функцию, которая проверяет, является ли число простым.
Тесты Посмотреть решение
ЗАДАНИЯ ДЛЯ САМОСТОЯТЕЛЬНОГО РЕШЕНИЯ
1. Даны действительные числа a, b, c. Получить:
2. Даны три натуральных числа. Найти их наибольший общий делитель.
4. Два натуральных числа называются дружественными, если каждое из них равно сумме всех делителей другого, за исключением его самого. Напечатать все пары дружественных чисел, не превосходящих заданного натурального числа.