Ввести одномерный целочисленный массив A, вывести его. Найти минимальный среди чётных элементов. Далее произвести циклический сдвиг вправо элементов стоящих справа от найденного максимума, и четыре раза влево сдвиг элементов стоящих слева от найденного максимума — Pascal(Паскаль)

program sdvig;
uses crt;
var a:array[1..100]of integer;
    N,i,j,imn,x:integer;
begin
write('Размер массива n='); readln(N);
imn:=0;
for i:=1 to N do
 begin
  write('a[',i,']=');
  read(a[i]);
  if a[i] mod 2=0 then imn:=i;
 end;
writeln('Массив А:');
for i:=1 to N do
 begin
  write(a[i]:5);
  if(a[i] mod 2=0)and(imn>0)and(a[i]<a[imn]) then imn:=i;
 end;
 writeln;
 if imn=0 then write('В массиве нет четных элементов!')
 else writeln('Минимальный из четных=',a[imn],' его индекс=',imn);
 if imn>n-2 then writeln('После минимального нет двух элементов для сдвига')
 else
  begin
   x:=a[n];
   for i:=n downto imn+2 do
   a[i]:=a[i-1];
   a[imn+1]:=x;
  end;
 if imn<3 then writeln('До минимального нет двух элемнтов для сдвига')
 else
  begin
   for j:=1 to 4 do
    begin
     x:=a[1];
     for i:=1 to imn-2 do
     a[i]:=a[i+1];
     a[imn-1]:=x;
    end;
  end;
writeln('Сдвиги до и после минимального:');
for i:=1 to n do
 begin
  if i=imn then textcolor(12)else textcolor(0);
  write(a[i]:5);
 end;
end.

Leave a Comment

67 − 60 =