Необходимо составить программу с использованием рекурсии - Pascal ABC
Формулировка задачи:
Поменять местами элемент с заданным номером и самый левый минимальный элемент, после чего все элементы, имеющие номера с первого по заданный, поделить на найденное минимальное значение
Решение задачи: «Необходимо составить программу с использованием рекурсии»
textual
Листинг программы
const n=20;
var x:array[1..n]of real;
//рекурсивная функция поиска минимального
function Min(n:integer):integer;
var w:integer;
begin
if n>1 then
begin
w:=Min(n-1);
if x[n]>x[w] then Min:=w
else Min:=n
end
else Min:=1
end;
var k,i,imn:integer;
z,t:real;
begin
randomize;
writeln('Исходный массив:');
for i:=1 to n do
begin
x[i]:=1+random*10;
write(x[i]:5:1);
end;
writeln;
imn:=Min(n);
z:=x[imn];
writeln('Индекс первого минимального=',imn,' его значение=',z:0:1);
repeat
write('Введите номер от 1 до ',n,' k=');
readln(k);
until k in [1..n];
t:=x[imn];
x[imn]:=x[k];
x[k]:=t;
writeln('Обмен минимального с элеменьом под номером ',k);
for i:=1 to n do
write(x[i]:5:1);
writeln;
writeln('Деление элементов с 1 по ',k,' на ',z:0:1);
for i:=1 to n do
begin
if i<=k then x[i]:=x[i]/z;
write(x[i]:5:1);
end;
end.