Действия с матрицей - 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.
- Если сумма элементов в строке равна нулю, выводится сообщение о том, что в строке нет повторяющихся элементов.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д