1. даны два одномерных массива разной размерности. для каждого из заданных одномерных массивов выполнить: последовательно переписать в другой массив отрицательные элементы начального массива. с применение подпрограмм и процедур желательно

azodanic12 azodanic12    1   19.06.2019 19:20    0

Ответы
Danich114ejck Danich114ejck  15.07.2020 22:29
Const
  nn = 20;

type
  ta = array[1..nn] of integer;

procedure FillArray(var a: ta; n, min, max: integer);
var
  i, k: integer;
begin
  k := max - min + 1;
  for i := 1 to n do a[i] := Random(k) + min
end;

procedure WriteArray(a: ta; n, p: integer);
var
  i: integer;
begin
  for i := 1 to n do Write(a[i]:p);
  Writeln
end;

procedure CopyNegative(var a, b: ta; m: integer; var n: integer);
var
  i: integer;
begin
  n := 0;
  for i := 1 to m do
    if a[i] < 0 then
    begin
      Inc(n);
      b[n] := a[i]
    end
end;

var
  n: integer;
  x, y: ta;

begin
  Randomize;
  FillArray(x, 10, -50, 50);
  Writeln('Исходный массив');
  WriteArray(x, 10, 4);
  CopyNegative(x, y, 10, n);
  Writeln('Массив из отрицательных элементов');
  WriteArray(y, n, 4);
  FillArray(x, 8, -200, 100);
  Writeln('Исходный массив');
  WriteArray(x, 12, 5);
  CopyNegative(x, y, 12, n);
  Writeln('Массив из отрицательных элементов');
  WriteArray(y, n, 5);
end.

Тестовое решение:
Исходный массив
 -12  17  35  -4 -45   8  33  -8 -47  -4
Массив из отрицательных элементов
 -12  -4 -45  -8 -47  -4
Исходный массив
 -150 -174   92 -168   69  -60 -165  -78  -47   -4    0    0
Массив из отрицательных элементов
 -150 -174 -168  -60 -165  -78  -47   -4
ПОКАЗАТЬ ОТВЕТЫ
Другие вопросы по теме Информатика