Вопрос задан 06.08.2026 в 11:48. Предмет Информатика. Спрашивает Ложкина Юля.

Pascal ABC или PascalABC.NET. Дан массив размером n×n, элементы которого — целые числа. Для каждого столбца найти первый положительный элемент и записать данные в новый массив. При решении использовать двумерный массив.

Перейти к ответам

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

Отвечает Амангелди Мурат.

Идея такая: идём по каждому столбцу сверху вниз и ищем первый элемент, который больше нуля. Если нашли — записываем его в новый одномерный массив. Если в столбце положительных чисел нет, запишем \(0\).

Программа на PascalABC.NET:
program FirstPositiveInColumns;

var
  a: array[,] of integer;
  b: array of integer;
  n, i, j: integer;
  found: boolean;

begin
  write('n = ');
  readln(n);

  SetLength(a, n, n);
  SetLength(b, n);

  writeln('Введите элементы массива:');
  for i := 0 to n - 1 do
    for j := 0 to n - 1 do
      read(a[i, j]);

  for j := 0 to n - 1 do
  begin
    found := false;
    b[j] := 0;

    for i := 0 to n - 1 do
      if (a[i, j] > 0) and not found then
      begin
        b[j] := a[i, j];
        found := true;
      end;
  end;

  writeln('Первые положительные элементы столбцов:');
  for j := 0 to n - 1 do
    write(b[j], ' ');
end.

Здесь \(a\) — двумерный массив, а \(b\) — новый массив, куда записываются найденные элементы по столбцам.

Похожие вопросы

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

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

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