Найти количество положительных элементов каждого столбца матрицы - Pascal
Формулировка задачи:
дан двухмерный массив размером m*n. найти кол-во положительных элем-ов каждого столбца массива. из первых четырёх строк массива сформировать четыре новых вектора (одномерных массива) и в каждом из них удалить все эл-ты меньше значения k! если что,в долгу не останусь( желательно решить как можно скорее)
Решение задачи: «Найти количество положительных элементов каждого столбца матрицы»
textual
Листинг программы
type TVector = Array[Byte] Of ShortInt; TArray = Array[Byte] Of TVector; var orig: TArray; a, b, c, d: TVector; i, j, n, m, count, m1, m2, m3, m4: Byte; k: ShortInt; begin {Заполнение базового массива} repeat Write('Input m (>4) = '); ReadLn(n); until (n > 3); repeat Write('Input n (>0) = '); ReadLn(m); until (m > 0); Randomize(); for i := 0 to n - 1 do begin WriteLn; for j := 0 to m - 1 do begin orig[i, j] := Random(199) - 99; Write(orig[i, j]:5); end; end; {количество положительных элементов в столбцах} WriteLn; for j := 0 to m - 1 do Write('-----'); WriteLn; for j := 0 to m - 1 do begin count := 0; for i := 0 to n - 1 do if (orig[i, j] > 0) then Inc(count); Write(count:5); end; {копирование в отдельные векторы и удаление меньших k} WriteLn; Write('Input k='); ReadLn(k); a := orig[0]; m1 := m; i := 0; while (i < m1) do begin if (a[i] < k) then begin for j := i to m1 - 2 do a[j] := a[j + 1]; Dec(m1); end else Inc(i); end; WriteLn; WriteLn; for j := 0 to m1 - 1 do Write(a[j]:5); b := orig[1]; m2 := m; i := 0; while (i < m2) do begin if (b[i] < k) then begin for j := i to m2 - 2 do b[j] := b[j + 1]; Dec(m2); end else Inc(i); end; WriteLn; WriteLn; for j := 0 to m2 - 1 do Write(b[j]:5); c := orig[2]; m3 := m; i := 0; while (i < m3) do begin if (c[i] < k) then begin for j := i to m3 - 2 do c[j] := c[j + 1]; Dec(m3); end else Inc(i); end; WriteLn; WriteLn; for j := 0 to m3 - 1 do Write(c[j]:5); d := orig[3]; m4 := m; i := 0; while (i < m4) do begin if (d[i] < k) then begin for j := i to m4 - 2 do d[j] := d[j + 1]; Dec(m4); end else Inc(i); end; WriteLn; WriteLn; for j := 0 to m4 - 1 do Write(d[j]:5); end.
Объяснение кода листинга программы
Этот код написан на языке Pascal и выполняет следующие действия:
- Заполняет базовый массив случайными числами.
- Вычисляет количество положительных элементов в каждом столбце матрицы.
- Выводит результаты на экран.
В коде используются следующие типы данных:
- TVector: это массив из коротких целых чисел (Byte).
- TArray: это массив из TVector. Основная часть кода находится внутри цикла, который выполняется столько раз, сколько требуется для заполнения базового массива. Внутри этого цикла каждый столбец матрицы заполняется случайным образом. Затем происходит вычисление количества положительных элементов в каждом столбце. Для этого используется цикл, который проходит по всем элементам столбца и проверяет, больше ли текущий элемент нуля. Если это так, то счетчик положительных элементов увеличивается. В конце кода выводится количество положительных элементов в каждом столбце матрицы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д