Дана целочисленная прямоугольная матрица - Turbo Pascal

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

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

Дана целочисленная прямоугольная матрица. 1. Определить номер первого из столбцов, содержащих хотя бы один нулевый элемент. 2. Характеристикой строки целочисленной матрицы назовем сумму отрицательных чётных элементов. Переставляя строки заданной матрицы, расположить их в соответствии с убыванием характеристик. Для откладки откладки программы исходный массив сформировать с помощью генератора случайных чисел. Помогите пожалуйста.я чайник в программировании

Решение задачи: «Дана целочисленная прямоугольная матрица»

textual
Листинг программы
uses crt;
const max=10; {максимальный размер матрицы}
var a:array[1..max,1..max+1] of integer;{+1 столбец для характеристик}
    m,n,i,j,k,x:integer;
begin
clrscr;
repeat
writeln('Введите размеры матрицы от 2 до 10');
readln(m,n);
until(m in [2..10])and(n in [2..10]);
randomize;
writeln('Исходная матрица');
writeln(' ':4*n+3,'Сумма');
for i:=1 to m do
 begin
  a[i,n+1]:=0;
  for j:=1 to n do
   begin
    a[i,j]:=-5+random(11);
    write(a[i,j]:4);
    if (a[i,j]<0)and(a[i,j] mod 2=0) then
    a[i,n+1]:=a[i,n+1]+a[i,j];{суммы по строкам пишем в дополнительный столбец}
   end;
  writeln(a[i,n+1]:6);
 end;
j:=1;
k:=0;
while (j<=n)and(k=0) do
 begin
  i:=1;
  while(i<=m)and(k=0) do
  if a[i,j]=0 then k:=j else inc(i);
  if k=0 then inc(j);
 end;
 if k=0 then writeln('В матрице нет нолей')
 else writeln('Номер первого столбца с нулевым элементом=',k);
{перестановка строк по убыванию значений дополнительного столбца }
for i:=1 to m-1 do
for j:=i+1 to m do
if a[i,n+1]<a[j,n+1] then
for k:=1 to n+1 do
 begin
  x:=a[i,k];
  a[i,k]:=a[j,k];
  a[j,k]:=x;
 end;
writeln('Перестановка строк по убыванию характеристик');
writeln(' ':4*n+3,'Сумма');
for i:=1 to m do
 begin
  for j:=1 to n do
  write(a[i,j]:4);
  writeln(a[i,n+1]:6);
 end;
readln;
end.

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

  1. Объявлены переменные: m, n, i, j, k, x - целочисленные; a - массив целочисленных значений; max - константа, определяющая максимальный размер матрицы (10).
  2. Ввод размеров матрицы от 2 до 10.
  3. Инициализация случайными значениями основной матрицы размером m на n.
  4. Дополнительный столбец (n+1) используется для хранения суммы элементов каждой строки.
  5. Суммы по строкам записываются в дополнительный столбец при условии, что элемент с модулем 2 равен нулю.
  6. Циклы, выполняющие перестановку строк матрицы в соответствии с убыванием сумм дополнительного столбца.
  7. Вывод исходной матрицы и переставленной матрицы.
  8. Ввод размеров матрицы повторяется, если они некорректны, иначе программа завершается.

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


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

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

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