Необходимо составить программу с использованием рекурсии - 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.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

9   голосов , оценка 3.444 из 5
Похожие ответы