Подпрограмма-функция - Pascal
Формулировка задачи:
Написать программу решения задачи, используя функции: в основной функции ввести с клавиатуры или вычислить с помощью генератора случайных чисел 10 элементов массива вещественного типа и напечатать результат вычислений, во вспомогательной - вычислить скалярную величину, согласно варианта задания:
Решение задачи: «Подпрограмма-функция»
textual
Листинг программы
- const
- N = 10;
- type
- TVector = Array[1..N] Of Real;
- function GenVector(var ar: TVector): Boolean;
- var
- i: 1..N;
- k: Integer;
- begin
- repeat
- WriteLn('Выберите способ инициализации массива:');
- WriteLn('1. Ручной ввод.');
- WriteLn('2. Генератор случайных чисел.');
- ReadLn(k);
- until (k in [1..2]);
- Write('Вектор X:');
- if (k = 2)
- then
- begin
- Randomize;
- for i := 1 to N do
- begin
- ar[i] := Random*20 - 10;
- Write(ar[i]:7:2);
- end;
- WriteLn;
- end
- else
- begin
- WriteLn;
- for i := 1 to N do
- begin
- Write('x[', i, ']=');
- ReadLn(ar[i]);
- end;
- end;
- GenVector := True;
- end;
- function G(const ar: TVector): Extended; //Double | Real
- var
- p, s: Extended; //Double | Real
- i: 1..N;
- begin
- p := 1;
- s := 0;
- for i := 1 to N do
- begin
- p := p*ar[i];
- s := s + ar[i];
- end;
- G := Cos(p)/Sin(s);
- end;
- var
- x: TVector;
- begin
- GenVector(x);
- WriteLn('G=', G(x):0:3);
- end.
Объяснение кода листинга программы
- Объявление константы
N
со значением 10. - Объявление типа
TVector
как массива из 10 вещественных чисел. - Объявление функции
GenVector
с возвращаемым значением Boolean и параметромar
типа TVector. - Объявление переменной
i
типа целого числа в диапазоне от 1 до 10. - Объявление переменной
k
типа целого числа. - Начало блока кода функции
GenVector
. - Цикл повторения до тех пор, пока значение переменной
k
не будет в диапазоне от 1 до 2. - Вывод сообщений о выборе способа инициализации массива.
- Считывание значения переменной
k
. - Завершение цикла повторения.
- Вывод сообщения
Вектор X:
. - Если значение переменной
k
равно 2, то выполняется следующий блок кода, иначе следующий блок кода. - Если выбрано значение 2, то для каждого элемента массива
ar
генерируется случайное вещественное число в диапазоне от -10 до 10, и его значение выводится. - В противном случае пользователю предлагается ввести значения элементов массива
ar
вручную. - Окончание блока кода функции
GenVector
. - Определение функции
G
с параметромar
типа TVector и возвращаемым значением типа Extended (вещественное число с повышенной точностью). - Объявление переменных
p
иs
типа Extended и переменнойi
типа целого числа в диапазоне от 1 до 10. - Начало блока кода функции
G
. - Установление начальных значений переменных
p
иs
равными 1 и 0 соответственно. - Вычисление произведения всех элементов массива
ar
и их суммы. - Вычисление значения функции G по формуле
Cos(p)/Sin(s)
. - Окончание блока кода функции
G
. - Объявление переменной
x
типа TVector. - Начало блока кода программы.
- Инициализация массива
x
с помощью функцииGenVector
. - Вывод значения функции
G
для массиваx
с точностью до трех знаков после запятой. - Окончание блока кода программы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д