Описать рекурсивную функцию MinRec(A,N) вещества типа,которая находит минимальный элемент вещестного массива A размера N,не используя оператор цикла .С помощью функции MinRec найти минимальные элемента массивов A,B,C размера NA,NB,NC соответсвенно!!
Помогите пожалуста. непонятные ошибки...
type mas=array[1..50] of integer;
var x,y,z:mas;
n,i,k,l:integer;
function Min(n,k,l:integer):integer;
var w:integer;
begin
if n>1 then
begin
w:=Min(n-1);
if x[n]>w then Min:=w
else Min:=x[n]
end
else Min:=x[1]
end;
begin
if k>1 then
begin
w:=Min(k-1);
if y[k]>w then Min:=w
else Min:=y[k]
end
else Min:=y[1]
end;
begin
if l>1 then
begin
w:=Min(l-1);
if z[l]>w then Min:=w
else Min:=z[l]
end
else Min:=z[1]
end;
begin
clrscr;
randomize;
write('Razmer massiva X n='); readln(n);
write('Razmer masiva X k='); readln(k);
write('Razmer masiva X l='); readln(l);
writeln('Massiv X: '); writeln('Massiva Y: '); writeln('Massiv Z: ');
for i:=1 to n do
begin
x[i]:=random(20);
y[i]:=random(20);
z[i]:=random(20);
write(x[i],' ', y[i] , ' ' , z[i] , ' ');
end;
writeln;
write('min=',Min(n));
write('min=',Min(k));
write('min=',Min(l));
readln
end.
function Min(n,k,l:integer):integer;
begin
w:=Min(n-1);
Изменил, добавил 2 параметры. также ошибка мутная какаята задача . что делать?
раз нельзя цикл - то рекурсия. Вроде это у тебя и сделано
Сделай функцию, которая принимает 3 параметра - сам массив, размер массива и номер элемента
Начать решать заново.
Для начала - алгоритм. На словах. Что делаешь, если у тебя есть массив определенного размера, и тебе надо найти в нем минимум? Правильно. Если размер = 1, то минимум очевиден: это и есть тот единственный элемент. Если элементов больше 1 - то надо найти наименьшее из двух: последний элемент массива и минимум всех предыдущих:
function min(a, b: real): real;Все просто...
begin
if a < b then min := a else min := b;
end;
function minrec(const arr: array of real;
size: integer): real;
begin
if size = 1 then minrec := arr[0]
else minrec := min(arr[size - 1], minrec(arr, size - 1));
end;
type
mas=array[1..5] of real;
const
a1: mas = (4, 3, 9, -12, 5);
begin
writeln(minrec(a1, 5):5 :2);
end.
Спасибо оказывается совсем просто... получилось
а все ясно не внимательно я прочитал . спасибо