назад
                                 
№ 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   
Hosted by uCoz