Действия с матрицей - Turbo Pascal

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

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

Выполнить над прямоугольной матрицей В размером m х n последовательность действий, указанную в задании. а) Сформировать из столбцов В, не содержащих равных элементов, матрицу С размером m х k, где k  n - количество таких столбцов; б) в матрице С вычислить суммы элементов строк, номера которых определяются номерами нулевых элементов заданного вектора.

Решение задачи: «Действия с матрицей»

textual
Листинг программы
uses crt;
const nmax=10;
var b,c:array[1..nmax,1..nmax] of integer;
    v:array[1..nmax] of byte;
    m,n,k,i,j,f,p:byte;
    sm:integer;
begin
clrscr;
randomize;
repeat
write('Количество строк до ',nmax,' m=');
readln(m);
until m in [1..nmax];
repeat
write('Количество столбцов до ',nmax,' n=');
readln(n);
until n in [1..nmax];
writeln('Исходная матрица B:');
for i:=1 to m do
 begin
  for j:=1 to n do
   begin
    b[i,j]:=random(20);
    write(b[i,j]:3);
   end;
  writeln;
 end;
k:=0;
for j:=1 to n do
 begin
  f:=0;
  i:=1;
  while(i<m)and(f=0) do
   begin
    p:=i+1;
    while(p<=m)and(f=0) do
    if b[p,j]=b[i,j] then f:=1
    else inc(p);
    if f=0 then inc(i);
   end;
  if f=0 then
   begin
    inc(k);
    for i:=1 to m do
    c[i,k]:=b[i,j];
   end;
 end;
if k=0 then
 begin
  writeln('Во всех столбцах матрицы В есть одинаковые элементы');
  readln;
  exit;
 end;
writeln('Матрица С');
for i:=1 to m do
 begin
  for j:=1 to k do
  write(c[i,j]:3);
  writeln;
 end;
writeln('Вектор V');
for i:=1 to m do
 begin
  v[i]:=random(2);
  write(v[i]:3);
 end;
writeln;
p:=0;
for i:=1 to m do
if v[i]=0 then
 begin
  p:=1;
  sm:=0;
  for j:=1 to n do
  sm:=sm+c[i,j];
  writeln('Сумма в строке ',i,'=',sm);
 end;
if p=0 then write('В векторе нет нулевых элементов');
readln
end.

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

  1. Используется библиотека crt для работы с графическим интерфейсом.
  2. Задаются константы nmax и m, которые представляют максимально возможное количество строк и столбцов матрицы соответственно.
  3. Объявляются переменные b, c, v, m, n, k, i, j, f и p. Переменная b представляет исходную матрицу, c - копию матрицы b, v - вектор, m, n, k, i, j, f и p - вспомогательные переменные для поиска повторяющихся элементов в матрице b.
  4. Выводится запрос на ввод количества строк и столбцов матрицы.
  5. Для каждой строки матрицы b выводится количество повторяющихся элементов в столбце.
  6. Если количество повторяющихся элементов равно нулю, выводится сообщение о том, что во всех столбцах матрицы b есть одинаковые элементы.
  7. Выводится матрица c, которая представляет копию матрицы b с повторяющимися элементами.
  8. Выводится вектор v.
  9. Выводится сообщение о том, что в векторе нет нулевых элементов.
  10. Выводится сумма элементов в строке для каждого повторяющегося элемента в матрице b.
  11. Если сумма элементов в строке равна нулю, выводится сообщение о том, что в строке нет повторяющихся элементов.

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


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

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

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