• объединить два случайным образом созданных массива в один упорядочить новый массив по убыванию Pascal ABC по теме: сортировка массива

Ответы 1

  • 1. Примерно так учат писать программы в школе...const  nn=100; // предельное кол-во элементов в массивеtype  mas=array[1..nn] of integer;procedure RandomArray(var a:mas;n,p,q:integer);// Заполняет первые n элементов массива a// случайными числами из интервала [p;q]var  i:integer;begin  for i:=1 to n do a[i]:=Random(q-p+1)+pend;procedure PrintArray(a:mas;n:integer);// Выводит на экран первые n элементов массива avar  i:integer;begin  for i:=1 to n do Write(a[i],' ');  Writelnend;procedure SortByDescending(var a:mas;n:integer);// Сортирует по невозрастанию первые n элементов массива a.// Элементарная обменная сортировкаvar  i,j,t:integer;begin  for i:=1 to n-1 do    for j:=1 to n-1 do      if a[j]<a[j+1] then        begin t:=a[j]; a[j]:=a[j+1]; a[j+1]:=t endend;// Основная программаvar  i,n1,n2,n3,x,y:integer;  a,b,c:mas;begin  Randomize;  Write('Кол-во элементов в массиве и границы интервала из значений: ');  Read(n1,x,y);  RandomArray(a,n1,x,y);  Write('Кол-во элементов в массиве и границы интервала из значений: ');  Read(n2,x,y);  RandomArray(b,n2,x,y);  Write('Первый массив: '); PrintArray(a,n1);  Write('Второй массив: '); PrintArray(b,n2);  Writeln('Объединенный массив, отсортированный по невозрастанию');  n3:=n1+n2;  for i:=1 to n1 do c[i]:=a[i];  for i:=1 to n2 do c[i+n1]:=b[i];  SortByDescending(c,n3);  PrintArray(c,n3)end.Тестовое решениеКол-во элементов в массиве и границы интервала из значений: 8 10 60Кол-во элементов в массиве и границы интервала из значений: 6 30 90Первый массив: 41 56 14 57 52 51 30 54 Второй массив: 76 36 44 39 68 38 Объединенный массив, отсортированный по невозрастанию76 68 57 56 54 52 51 44 41 39 38 36 30 142. На самом деле эту же задачу можно написать гораздо короче// PascalABC.NET 3.1, сборка 1246 от 23.05.2016begin  var n1,n2,x,y:integer;  Write('Кол-во элементов в массиве и границы интервала из значений: ');  Read(n1,x,y);  var a:=ArrRandom(n1,x,y);  Write('Кол-во элементов в массиве и границы интервала из значений: ');  Read(n2,x,y);  var b:=ArrRandom(n2,x,y);  Write('Первый массив: '); a.Println;  Write('Второй массив: '); b.Println;  Writeln('Объединенный массив, отсортированный по невозрастанию');  var c:=(a+b).SortedDescending; c.Printlnend.
  • Добавить свой ответ

Еще вопросы

Войти через Google

или

Забыли пароль?

У меня нет аккаунта, я хочу Зарегистрироваться

How much to ban the user?
1 hour 1 day 100 years