составить программу.

1)дан массив х(1..10) получить новый массив у(1..10) такой что в нем сначала идут положительные числа, нулевые ,отрицательные.(из х массива) 2)найти минимальный элемент массива х(1..10)и максимальный элемент массива.поменять их местами и вывод результирующего массива на экран

1

Ответы и объяснения

Лучший Ответ!
2012-03-27T18:06:28+04:00

Это Проверенный ответ

×
Проверенные ответы содержат надёжную, заслуживающую доверия информацию, оценённую командой экспертов. На "Знаниях" вы найдёте миллионы ответов, правильность которых подтвердили активные участники сообщества, но Проверенные ответы - это лучшие из лучших.

type array100 = array [1..100] of integer;
var x,y:array100;
i,n,min,max:integer;

procedure QuickSort(var a:array100;low:integer;high:integer);
var i,j,x,t:integer;
begin
  i:=low;
  j:=high;
  x:=A[(low+high) div 2];
 
  repeat
    while(A[i]>x) do
      i:=i+1;
    while(A[j]<x) do
      j:=j-1;
    if(i<=j) then begin
      t:=A[i];
      A[i]:=A[j];
      A[j]:=t;
      i:=i+1;
      j:=j-1;
    end;  
  until (i>j) or (i>=n);
 
  if(low<j) then QuickSort(A,low,j);
  if(i<high) then QuickSort(A,i,high);
end;

Begin
  randomize;
  n:=20;
  for i:= 1 to n do begin
    x[i]:=random(n*10)- 10*n div 2 ;
    write(x[i]:4);
    y[i]:=x[i];
    if i mod 10=0 then writeln;
  end;
 
  QuickSort(y,1,n);
 
  writeln;
  for i:= 1 to n do begin
    write(y[i]:4);
    if i mod 10=0 then writeln;
  end;
  {second part}
  min:=1;
  max:=1;
  for i:= 1 to n do begin
    if x[i]<x[min] then min:=i;
    if x[i]>x[max] then max:=i;
  end;
  i:=x[min];
  x[min]:=x[max];
  x[max]:=i;
    
  writeln;
  for i:= 1 to n do begin
    write(x[i]:4);
    if i mod 10=0 then writeln;
  end;
 
End.