Вопрос задан 04.06.2018 в 04:24. Предмет Информатика. Спрашивает Мельниченко Макс.

Напишите программу в паскале . мы вводим первый массив,вводим второй массив и в третьем массиве

программа выводит все числа по возрастанию
0 0
Перейти к ответам

Ответы на вопрос

Внимание! Ответы на вопросы дают живые люди. Они могут содержать ошибочную информацию, заблуждения, а также ответы могут быть сгенерированы нейросетями. Будьте внимательны. Если вы уверены, что ответ неверный, нажмите кнопку "Пожаловаться" под ответом.
Отвечает Малышева Полина.

Решение быстрой сортировкой , вводим длину начальных массивов и 2 массива. Получаем ответ


0 0
Отвечает Tanya Malygina.

1. Классическая "школьная" реализация на Паскале

// PascalABC.NET 3.0, сборка 1076
const
  nn=50; { максимальная длина массивов 1,2 }
var
  a,b:array[1..nn] of integer;
  c:array[1..2*nn] of integer;
  n1,n2,n3,i,j,t,k:integer;
begin
  Randomize;
  Write('Размер первого массива (1-50): '); Read(n1);
  Write('Размер второго массива (1-50): '); Read(n2);
  { Шаг 1. Инициализация первого массива случайными числами }
  Writeln('*** Первый массив ***');
  for i:=1 to n1 do begin
    a[i]:=Random(51)-25;
    Write(a[i],' ')
  end;
  Writeln;
  { Шаг 2. Инициализация второго массива случайными числами }
  Writeln('*** Второй массив ***');
  for i:=1 to n2 do begin
    b[i]:=Random(51)-25;
    Write(b[i],' ')
  end;
  Writeln;
  { Шаг 3. Сортировка первого массива }
  for i:=1 to n1-1 do
    for j:=1 to n1-1 do
      if a[j]>a[j+1] then
      begin t:=a[j]; a[j]:=a[j+1]; a[j+1]:=t end;
  { Шаг 4. Сортировка второго массива }
  for i:=1 to n2-1 do
    for j:=1 to n2-1 do
      if b[j]>b[j+1] then
      begin t:=b[j]; b[j]:=b[j+1]; b[j+1]:=t end;
  { Шаг 5. Слияние }
  n3:=n1+n2;
  i:=1; j:=1; k:=1;
  while (i<=n1) and (j<=n2) do begin
    if a[i]<=b[j] then begin c[k]:=a[i]; Inc(i) end
    else begin c[k]:=b[j]; Inc(j) end;
    Inc(k);
  end;
  if i>n1 then
    for j:=j to n2 do begin c[k]:=b[j]; Inc(k) end
  else
    if j>n2 then
      for i:=i to n1 do begin c[k]:=a[i]; Inc(k) end;
  { Шаг 6. Вывод результата }
  Writeln('*** Третий массив ***');
  for i:=1 to n3 do Write(c[i],' ');
  Writeln
end.
 
Тестовое решение:
Размер первого массива (1-50): 10
Размер второго массива (1-50): 7
*** Первый массив ***
11 -9 20 -8 -1 13 25 23 5 24
*** Второй массив ***
20 -4 -14 -19 19 -23 10
*** Третий массив ***
-23 -19 -14 -9 -8 -4 -1 5 10 11 13 19 20 20 23 24 25

2. Реализация современными средствами программирования

// PascalABC.NET 3.0, сборка 1076
begin
  var n1:=ReadInteger('Размер первого массива (1-50): ');
  var n2:=ReadInteger('Размер второго массива (1-50): ');
  var a:=ArrRandom(n1,-25,25);
  Writeln('*** Первый массив ***'); a.Println;
  var b:=ArrRandom(n2,-25,25);
  Writeln('*** Второй массив ***'); b.Println;
  var c:=(a+b).Sorted;
  Writeln('*** Третий массив ***'); c.Println
end.

Тестовое решение:
Размер первого массива (1-50): 10
Размер второго массива (1-50): 7
*** Первый массив ***
1 22 -22 -16 -1 -10 24 -22 -18 -8
*** Второй массив ***
15 23 -12 12 17 -8 13
*** Третий массив ***
-22 -22 -18 -16 -12 -10 -8 -8 -1 1 12 13 15 17 22 23 24

0 0

Топ вопросов за вчера в категории Информатика

Последние заданные вопросы в категории Информатика

Задать вопрос