Действия с матрицей - 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.
Объяснение кода листинга программы
- Используется библиотека crt для работы с графическим интерфейсом.
- Задаются константы nmax и m, которые представляют максимально возможное количество строк и столбцов матрицы соответственно.
- Объявляются переменные b, c, v, m, n, k, i, j, f и p. Переменная b представляет исходную матрицу, c - копию матрицы b, v - вектор, m, n, k, i, j, f и p - вспомогательные переменные для поиска повторяющихся элементов в матрице b.
- Выводится запрос на ввод количества строк и столбцов матрицы.
- Для каждой строки матрицы b выводится количество повторяющихся элементов в столбце.
- Если количество повторяющихся элементов равно нулю, выводится сообщение о том, что во всех столбцах матрицы b есть одинаковые элементы.
- Выводится матрица c, которая представляет копию матрицы b с повторяющимися элементами.
- Выводится вектор v.
- Выводится сообщение о том, что в векторе нет нулевых элементов.
- Выводится сумма элементов в строке для каждого повторяющегося элемента в матрице b.
- Если сумма элементов в строке равна нулю, выводится сообщение о том, что в строке нет повторяющихся элементов.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д