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