Кто может решить задачи по паскалю? 1)Даны числа A1,A2,...,An получить в порядке...

0 голосов
20 просмотров

Кто может решить задачи по паскалю?
1)Даны числа A1,A2,...,An получить в порядке возрастания (в новом массиве) все различные числа, входящие в A1,A2,...,An.
2)Даны два упорядоченных набора чисел C1, C2,... Cn и D1, D2, ..., Dm. Соединить их в один упорядоченный массив F
(Только написать нужно чтобы числа в массив вводились вручную, а не рандоные)


Информатика (15 баллов) | 20 просмотров
Дан 1 ответ
0 голосов
Правильный ответ
// PascalABC.NET 3.3, сборка 1540 от 16.09.2017
// Внимание! Если программа не работает, обновите версию!

begin
  var a:=ReadArrInteger(ReadInteger('n='));
  var b:=a.Distinct.OrderBy(x->x).ToArray; b.Println
end.

Пример
n= 7
3 -5 6 3 3 4 1
-5 1 3 4 6

begin
  var n1:=ReadInteger('Длина первого массива-');
  var c:=ReadSeqInteger('Вводите массив:',n1).OrderBy(x->x).ToArray;
  var n2:=ReadInteger('Длина второго массива-');
  var d:=ReadSeqInteger('Вводите массив:',n2).OrderBy(x->x).ToArray;
  //собственно слияние
  var f:=new integer[n1+n2];
  var (ic,id,&if):=(0,0,0);
  repeat
    if c[ic]    else begin f[&if]:=d[id]; id+=1 end;
    &if+=1
  until (ic=n1) or (id=n2);
  if ic=n1 then
    repeat
      f[&if]:=d[id]; id+=1; &if+=1
    until id=n2
  else
    repeat
      f[&if]:=c[ic]; ic+=1; &if+=1
    until ic=n1;
  Write('Массив F: '); f.Println(',')
end.

Пример
Длина первого массива- 6
Вводите массив: 4 0 -3 6 4 2
Длина второго массива- 5
Вводите массив: 3 6 -3 0 2
Массив F: -3,-3,0,0,2,2,3,4,4,6,6
(150k баллов)