Ввести одномерный массив A, вывести его. Элементы первой
половины массива, отсортировать по возрастанию, а второй половины
переставить в обратном порядке- Pascal(Паскаль)

program abc;

const
  Nmass = 100;

var
  p, i, j, p2, count, min, imin: integer;
  mas, mas2: array [1 .. Nmass] of integer;

begin
  writeln('Введите длину массива');
  readln(p);
  writeln('Вводим элементы массива A:');
  for i := 1 to p do
  begin
    write('A[', i, ']=');
    readln(mas[i]);
  end;
  writeln('Исходный массив A:');
  for i := 1 to p do
    write(mas[i]:5);
  writeln;
  writeln;
  min := mas[1];
  imin := 1;
  count := 1;
  if p mod 2 = 0 then
    p2 := p div 2
  else
    p2 := (p div 2) + 1;
  for j := 1 to p2 do
  begin
    for i := 1 to p2 do
    begin
      if mas[i] < min then
      begin
        imin := i;
        min := mas[i];
      end;
    end;
    mas2[j] := mas[imin];
    mas[imin] := 2147483647;
    min := 2147483647;
    imin := 0;
  end;
  for i := p downto p2 + 1 do
  begin
    mas2[p2 + count] := mas[i];
    inc(count);
  end;
  write('массив A после изменения:');
  for i := 1 to p do
    write(mas2[i]:5);
  writeln;

end.

Leave a Comment

32 − 26 =