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

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

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

дан двухмерный массив размером m*n. найти кол-во положительных элем-ов каждого столбца массива. из первых четырёх строк массива сформировать четыре новых вектора (одномерных массива) и в каждом из них удалить все эл-ты меньше значения k! если что,в долгу не останусь( желательно решить как можно скорее)

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

textual
Листинг программы
  1. type
  2.     TVector = Array[Byte] Of ShortInt;
  3.     TArray = Array[Byte] Of TVector;
  4. var
  5.     orig: TArray;
  6.     a, b, c, d: TVector;
  7.     i, j, n, m, count, m1, m2, m3, m4: Byte;
  8.     k: ShortInt;
  9. begin
  10.     {Заполнение базового массива}
  11.     repeat
  12.         Write('Input m (>4) = '); ReadLn(n);
  13.     until (n > 3);
  14.     repeat
  15.         Write('Input n (>0) = '); ReadLn(m);
  16.     until (m > 0);
  17.     Randomize();
  18.     for i := 0 to n - 1 do
  19.     begin
  20.         WriteLn;
  21.         for j := 0 to m - 1 do
  22.         begin
  23.             orig[i, j] := Random(199) - 99;
  24.             Write(orig[i, j]:5);
  25.         end;
  26.     end;
  27.     {количество положительных элементов в столбцах}
  28.     WriteLn;
  29.     for j := 0 to m - 1 do
  30.         Write('-----');
  31.     WriteLn;
  32.     for j := 0 to m - 1 do
  33.     begin
  34.         count := 0;
  35.         for i := 0 to n - 1 do
  36.             if (orig[i, j] > 0)
  37.             then
  38.                 Inc(count);
  39.         Write(count:5);
  40.     end;
  41.     {копирование в отдельные векторы и удаление меньших k}
  42.     WriteLn;
  43.     Write('Input k='); ReadLn(k);
  44.     a := orig[0]; m1 := m;
  45.     i := 0;
  46.     while (i < m1) do
  47.     begin
  48.         if (a[i] < k)
  49.         then
  50.         begin
  51.             for j := i to m1 - 2 do
  52.                 a[j] := a[j + 1];
  53.             Dec(m1);
  54.         end
  55.         else
  56.             Inc(i);
  57.     end;
  58.     WriteLn; WriteLn;
  59.     for j := 0 to m1 - 1 do
  60.         Write(a[j]:5);
  61.     b := orig[1]; m2 := m;
  62.     i := 0;
  63.     while (i < m2) do
  64.     begin
  65.         if (b[i] < k)
  66.         then
  67.         begin
  68.             for j := i to m2 - 2 do
  69.                 b[j] := b[j + 1];
  70.             Dec(m2);
  71.         end
  72.         else
  73.             Inc(i);
  74.     end;
  75.     WriteLn; WriteLn;
  76.     for j := 0 to m2 - 1 do
  77.         Write(b[j]:5);
  78.     c := orig[2]; m3 := m;
  79.     i := 0;
  80.     while (i < m3) do
  81.     begin
  82.         if (c[i] < k)
  83.         then
  84.         begin
  85.             for j := i to m3 - 2 do
  86.                 c[j] := c[j + 1];
  87.             Dec(m3);
  88.         end
  89.         else
  90.             Inc(i);
  91.     end;
  92.     WriteLn; WriteLn;
  93.     for j := 0 to m3 - 1 do
  94.         Write(c[j]:5);
  95.     d := orig[3]; m4 := m;
  96.     i := 0;
  97.     while (i < m4) do
  98.     begin
  99.         if (d[i] < k)
  100.         then
  101.         begin
  102.             for j := i to m4 - 2 do
  103.                 d[j] := d[j + 1];
  104.             Dec(m4);
  105.         end
  106.         else
  107.             Inc(i);
  108.     end;
  109.     WriteLn; WriteLn;
  110.     for j := 0 to m4 - 1 do
  111.         Write(d[j]:5);
  112. end.

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

Этот код написан на языке Pascal и выполняет следующие действия:

  1. Заполняет базовый массив случайными числами.
  2. Вычисляет количество положительных элементов в каждом столбце матрицы.
  3. Выводит результаты на экран. В коде используются следующие типы данных:
    • TVector: это массив из коротких целых чисел (Byte).
    • TArray: это массив из TVector. Основная часть кода находится внутри цикла, который выполняется столько раз, сколько требуется для заполнения базового массива. Внутри этого цикла каждый столбец матрицы заполняется случайным образом. Затем происходит вычисление количества положительных элементов в каждом столбце. Для этого используется цикл, который проходит по всем элементам столбца и проверяет, больше ли текущий элемент нуля. Если это так, то счетчик положительных элементов увеличивается. В конце кода выводится количество положительных элементов в каждом столбце матрицы.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

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

13   голосов , оценка 4.077 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы