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