Составить программу, максимально используя для вычисления заданных выражений, подпрограммы типа FUNCTION - Pascal ABC
Решение задачи: «Составить программу, максимально используя для вычисления заданных выражений, подпрограммы типа FUNCTION»
textual
Листинг программы
type mas=array[1..20] of real;
function pow(x:real;k:integer):real;
var i:integer;
p:real;
begin
p:=1;
for i:=1 to k do
p:=p*x;
pow:=p;
end;
function fac(x:integer):real;
var i:integer;
f:real;
begin
f:=1;
for i:=1 to x do
f:=f*i;
fac:=f;
end;
function sum(x:mas;c:real;k:integer):real;
var i:integer;
s:real;
begin
s:=0;
for i:=1 to k do
s:=s+pow(c+x[i],k);
sum:=s;
end;
var a,f:real;
x:mas;
k,n,c,i:integer;
begin
randomize;
repeat
write('Размер масссива Х от 2 до 20 k=');
readln(k);
until k in [2..20];
writeln('Массив Х');
for i:=1 to k do
begin
x[i]:=5*random;
write(x[i]:5:2);
end;
writeln;
write('Введите натуральное число n=');
readln(n);
write('Введите натуральное число c=');
readln(c);
write('Введите действительное число a=');
readln(a);
f:=sum(x,c,k)/(fac(c)-fac(k))+pow(a,n);
write('F=',f:0:2);
end.
Объяснение кода листинга программы
- Создается тип данных mas, который представляет собой массив из 20 элементов типа real.
- Определяются три функции: pow, fac и sum.
- Функция pow принимает на вход аргументы x и k, и возвращает результат возведения x в степень k.
- Функция fac принимает на вход аргумент x и возвращает факториал числа x.
- Функция sum принимает на вход аргументы x, c и k, и возвращает сумму результатов возведения (c + x[i]) в степень k для i в диапазоне от 1 до k.
- Создается переменная a типа real, которая будет использоваться для ввода значения a.
- Создается переменная f типа real, которая будет использоваться для хранения результата вычисления F.
- Задается диапазон значений k от 2 до 20.
- В цикле повторяется запрос размера массива Х и его заполнение случайными значениями.
- Затем запрашиваются значения n, c и a.
- Вычисляется значение F по формуле F = (sum(x,c,k) / (fac(c) - fac(k)) + pow(a,n)).
- Результат выводится на экран в формате 2 десятичных знака.