Вывести номер первого столбца матрицы, содержащего равное количество положительных и отрицательных элементов - Pascal ABC

Узнай цену своей работы

Формулировка задачи:

Дана целочисленная матрица 7х4. Вывести номер ее первого столбца содержащего равное количество положительных и отрицательных элементов (0 не учитывается). Если таких столбцов нет то вывести 0. Интервал элементов матрицы от -17 до 54 есть вот такой код (ищет строку а не столбец)
и вот такой он считает то что нужно (но он слишком не красивый и не полный
если можно что бы код был похож на первый то будет замечательно. зарание спасибо.
Извиняюсь не тот код (который второй)

Решение задачи: «Вывести номер первого столбца матрицы, содержащего равное количество положительных и отрицательных элементов»

textual
Листинг программы
uses crt;
const
   n=7;
   m=4;
var
   arr:array[1..n,1..m] of integer;
   i,j,p,o,stb:integer;
begin
randomize;
stb:=0;
writeln('Matrix:');
for j:=1 to m do
 begin
  p:=0;
  o:=0;
  for i:=1 to n do
   begin
    arr[i,j]:=-17+random(35); //54 это много практически всегда будет 0
    if arr[i,j]>0 then inc(p);
    if arr[i,j]<0 then inc(o);
   end;
  if (p=o) and (stb=0) then stb:=j;
 end;
for i:=1 to n do
 begin
  for j:=1 to m do
  write(arr[i,j]:4);
  writeln;
 end;
writeln('stb = ',stb)
end.

Объяснение кода листинга программы

В данном коде используется язык программирования Pascal ABC. Он предназначен для решения задач, связанных с обработкой матриц. В начале кода объявляются необходимые переменные: n, m и arr - массив целых чисел размером n на m. Также объявляются переменные i, j, p и o, которые будут использоваться для подсчета положительных и отрицательных элементов матрицы. Затем происходит инициализация переменной stb, которая будет использоваться для определения номера столбца с равным количеством положительных и отрицательных элементов. Значение stb устанавливается равным 0. Далее происходит вывод матрицы. Для этого используется цикл for, который проходит по каждой строке матрицы. Внутри цикла происходит итерация по каждому элементу строки. Для каждого элемента выполняется следующая последовательность действий:

  • переменной p устанавливается значение 0, а переменной o - значение 0. Эти переменные будут использоваться для подсчета положительных и отрицательных элементов соответственно.
  • внутри цикла выполняется проверка: если значение элемента arr[i,j] больше 0, то значение переменной p увеличивается на 1. Аналогично, если значение элемента arr[i,j] меньше 0, то значение переменной o увеличивается на 1.
  • после завершения внутреннего цикла проверяется условие (p=o) и (stb=0). Если оно выполняется, то значение переменной stb устанавливается равным значению j.
  • после завершения внешнего цикла происходит вывод матрицы. Для этого используется еще один цикл for, который проходит по каждой строке матрицы. Внутри цикла происходит вывод каждого элемента строки с помощью функции write.
  • в конце кода выводится значение переменной stb. Таким образом, данный код решает задачу поиска номера столбца матрицы, содержащего равное количество положительных и отрицательных элементов.

Оцени полезность:

9   голосов , оценка 3.889 из 5
Похожие ответы