назад
№ 4.2.4.16
Условие:
измененный массив С1, С2, …., Сн : каждый элемент, предшествующий
минимальному, помножен на него, а все следующие за минимальным уменьшены на
1
Идея: это
программа состоит из двух процедур, процедуры ввода и процедуры обработки
данных и главной программы. Вторая процедура вычисляет номер минимального
элемента и если мин элемент стоит первым то вычитает по 1 изо всех
последующих чисел, если минимальный элемент находит в середине, то возводит
в квадрат предыдущие и вычитает единицу из последующих, если мин элемент
последний, то возводит в квадрат предыдущие элементы!
program a42416;
uses crt;
type mas=array[1..50] of real;
var c:mas; n:byte;
procedure vvod(var x:mas; var
nx:byte);
var i:byte;
begin
writeln('введите число
элементов');
readln(nx);
for i:=1 to nx do
begin
writeln('введите
число');
readln(x[i]);
end; end;
procedure zam(var x:mas; var
nx:byte);
var i,j:byte; min:real;
begin
min:=x[1]; j:=1;
for i:=2 to nx do
if min>x[i] then begin min:=x[i];
j:=i; end;
if j=1 then for i:=2 to n do
x[i]:=x[i]-1 else begin for
i:=1 to j-1 do
x[i]:=x[i]*x[i];
for i:=j+1 to nx do x[i]:=x[i]-1;
end;
writeln; writeln;
for i:=1 to n do
write(x[i]);
end;
Тест:
1)
Ввод 5 5 5 3 8 вывод 25 25 25 3 7
2)
Ввод 1 6 9 8 7 вывод 1 5 8 7 6
3)
Ввод 8 4 5 6 1 вывод 64 16 25 36 1