Написать рекурсивную программу для определения скалярного произведения двух векторов - Free Pascal
Формулировка задачи:
Напишите рекурсивную программу для определения скалярного произведения двух векторов.
помогите пожалуйста решить срочно надо а то я не могу никак разобраться как писать((((
Решение задачи: «Написать рекурсивную программу для определения скалярного произведения двух векторов»
textual
Листинг программы
- Program rekyrsia;
- type Mas=array[1..100] of integer;
- //Рекурсивная функция
- function Scal(k:byte;x,y:Mas):integer;
- begin
- if k=0 then Scal:=0 else Scal:=x[k]*y[k]+Scal(k-1,x,y)
- end;
- //Основная программа
- var a,b:Mas;
- i,n,m:Byte;
- begin
- randomize;
- write('Количество элементов массивов n=');
- readln(n);
- writeln('Массив А');
- for i:=1 to n do
- begin
- a[i]:=Random(20);
- write(a[i],' ');
- end;
- writeln;
- writeln('Массив B');
- for i:=1 to n do
- begin
- b[i]:=Random(20);
- write(b[i],' ');
- end;
- writeln;
- write('Скалярное произведение=',Scal(n,a,b));
- end.
Объяснение кода листинга программы
- Объявление типа данных
Mas
для массива целых чисел размером 100. - Объявление рекурсивной функции
Scal
для вычисления скалярного произведения двух векторов. - Условие выхода из рекурсии: если значение
k
равно 0, то возвращаем 0, иначе возвращаем произведение элементовx[k]
иy[k]
плюс результат вызова функцииScal
с аргументамиk-1
,x
,y
. - Объявление переменных
a
иb
типаMas
. - Объявление переменных
i
,n
иm
типаByte
. - С помощью функции
randomize
инициализируем генератор случайных чисел. - Выводим сообщение
Количество элементов массивов n=
и считываем значениеn
с помощью функцииreadln
. - Выводим сообщение
Массив А
и заполняем массивa
случайными целыми числами от 0 до 19 с помощью циклаfor
и функцииwrite
. - Выводим сообщение
Массив B
и заполняем массивb
случайными целыми числами от 0 до 19 с помощью циклаfor
и функцииwrite
. - Вычисляем скалярное произведение двух векторов
a
иb
с помощью функцииScal
и выводим результат с помощью функцииwrite
.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д