Подпрограмма-функция - 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
с точностью до трех знаков после запятой. - Окончание блока кода программы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д