1)дан массив из n элементов, n не больше 30. отсортировать по возрастанию элементы второй половины 2) дан массив из n элементов, n не более 30, n-четное. поменять местами первую и вторую половину ,

polavskaya polavskaya    1   16.08.2019 20:20    0

Ответы
tborisova tborisova  04.10.2020 23:25
{ 1. Дан массив из n элементов, n не больше 30. отсортировать по возрастанию элементы второй половины }

const n=20;
var 
  k,x,i,j: integer;
  var a: array[1..n] of integer;
begin
  if n mod 2 =0
    then k:=(n div 2)+1    
    else k:=(n div 2)+2;
  writeln ('Исходный массив');
  for i:=1 to n do begin
    a[i]:=random(100);
    write (a[i]:3);
  end;
  writeln;
  for i:=k to n-1 do 
    for j:=i+1 to n do 
      if a[i]>a[j]
        then begin x:=a[i]; a[i]:=a[j]; a[j]:=x end;      
  writeln;
  writeln ('Измененный массив');
  for i:=1 to n do 
    write (a[i]:3);
end.

Результат:
Исходный массив
 52 49 94 71 98 80 83 94 26 59 66 74 97 59 27 32 90 97 43 37

Измененный массив
 52 49 94 71 98 80 83 94 26 59 27 32 37 43 59 66 74 90 97 97


{ Дан массив из n элементов, n не более 30, n-четное. Поменять местами первую и вторую половину }

const n=20;
var 
  k,x,i: integer;
  var a: array[1..n] of integer;
begin
  k:=(n div 2);
  writeln ('Исходный массив');
  for i:=1 to n do begin
    a[i]:=random(100);
    write (a[i]:3);
  end;
  writeln;
  for i:=1 to k do begin 
    x:=a[i]; 
    a[i]:=a[i+k]; 
    a[i+k]:=x 
  end;
  writeln;
  writeln ('Измененный массив');
  for i:=1 to n do 
    write (a[i]:3);
end.

Результат:
Исходный массив
 37  8 74 17  8 96  1 47 69 77 69 21  2 67 93 35 74 58 48 53

Измененный массив
 69 21  2 67 93 35 74 58 48 53 37  8 74 17  8 96  1 47 69 77
ПОКАЗАТЬ ОТВЕТЫ
Другие вопросы по теме Информатика