Из сумм элементов строк матрицы сформировать вектор - Free Pascal
Формулировка задачи:
Дана матрица А[1:6,1:6] и вектор B[1:6]. Из сумм элементов строк матрицы сформировать вектор C. Если минимальный элемент вектора C кратен минимальному элементу вектора B, то из положительных элементов матрицы А сформировать вектор D и упорядочить его по возрастанию. Иначе матрицу А упорядочить по возрастанию.
Решение задачи: «Из сумм элементов строк матрицы сформировать вектор»
textual
Листинг программы
uses Crt; const n=6; type Tmass=array[1..n] of integer; Tmatr=array[1..n,1..n] of integer; var a:Tmatr; b,c:Tmass; d:array[1..(n*n)] of integer; i,j,t,z,m,min1,min2,sum:integer; begin ClrScr; Writeln('Matrix A:'); Writeln; Randomize; min1:=MaxInt; for i:=1 to n do begin for j:=1 to n do begin a[i,j]:=Random(51)-30; Write(a[i,j]:5); end; Writeln; b[i]:=Random(51)-30; if b[i]<min1 then min1:=b[i]; end; Writeln; Writeln('Vactor B:'); Writeln; for i:=1 to n do Write(b[i]:5); Writeln; Writeln; min2:=MaxInt; Writeln('Vector C:'); Writeln; for i:=1 to n do begin sum:=0; for j:=1 to n do sum:=sum+a[i,j]; c[i]:=sum; if c[i]<min2 then min2:=c[i]; Write(c[i]:6); end; Writeln; Writeln; if (min2 mod min1)=0 then begin t:=0; for i:=1 to n do for j:=1 to n do if a[i,j]>0 then begin Inc(t); d[t]:=a[i,j]; end; if t>1 then for i:=1 to t-1 do for j:=1 to t-i do if d[j]>d[j+1] then begin sum:=d[j]; d[j]:=d[j+1]; d[j+1]:=sum; end; Writeln('Vector D:'); Writeln; for i:=1 to t do Write(d[i]:5); end else begin repeat z:=0; t:=n; for i:=1 to n-1 do for j:=1 to n-i do if a[t,j]>a[t,j+1] then begin m:=a[t,j]; a[t,j]:=a[t,j+1]; a[t,j +1]:=m; end; Dec(t); repeat for i:=1 to n-1 do for j:=1 to n-i do if a[t,j]>a[t,j+1] then begin m:=a[t,j]; a[t,j]:=a[t,j+1]; a[t,j +1]:=m; end; if a[t,n]>a[t+1,1] then begin m:=a[t,n]; a[t,n]:=a[t+1,1]; a[t+1,1]:=m; Inc(z); end; Dec(t); until t<1; until z=0; Writeln('Matrix A:'); Writeln; for i:=1 to n do begin for j:=1 to n do Write(a[i,j]:5); Writeln; end; end; ReadKey; end.
Объяснение кода листинга программы
- Объявлены следующие переменные:
- a: матрица размером n на n для хранения значений элементов матрицы A;
- b: вектор размером n для хранения значений элементов вектора B;
- c: вектор размером n для хранения значений элементов вектора C;
- d: массив размером n*n для хранения значений элементов вектора D;
- i, j, t, z, m, min1, min2, sum: целочисленные переменные для выполнения операций.
- Задано значение константы n равное 6.
- Выполнена инициализация матрицы a случайными значениями с помощью функции Random и присваивания min1 значения MaxInt.
- Выведена матрица A на экран.
- Выполнена инициализация вектора b случайными значениями.
- Выведен вектор B на экран.
- Выполнена инициализация вектора C суммами элементов строк матрицы A.
- Выведен вектор C на экран.
- Проверено равенство min2 и min1. Если оно не выполняется, то выполнен алгоритм сортировки элементов вектора C по возрастанию.
- Выполнен вывод вектора D на экран.
- Ввод ключа с помощью функции ReadKey.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д