Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- program MaxMinStol;
- type
- mass = array [1..5, 1..5] of integer;
- procedure Input(var A, B: mass);
- var
- i, j, m, n: integer;
- begin
- writeln('Первая матрица');
- randomize;
- for i := 1 to 5 do
- begin
- for j := 1 to 5 do
- begin
- A[i, j] := random(5); write(A[i, j]:3)
- end;
- writeln;
- end;
- writeln;
- writeln('Вторая матрица');
- for m := 1 to 5 do
- begin
- for n := 1 to 5 do
- begin
- B[m, n] := random(5); write(B[m, n]:3)
- end;
- writeln;
- end;
- end;
- procedure Mult(var A, B, C: mass);
- var
- k, l: integer;
- begin
- for k := 1 to 5 do
- begin
- for l := 1 to 5 do
- begin
- C[k,l]:= A[k, 1] * B[1, l] + A[k, 2] * B[2, l] + A[k, 3] * B[3, l] + A[k, 4] * B[4, l] + A[k, 5] * B[5, l];
- write(C[k,l]:3)
- end;
- writeln;
- end;
- end;
- procedure Obmen(var A: mass);
- var
- max,min,maxi,mini,i, j, k: integer;
- begin
- max := A[1, 1]; min := A[1, 1]; maxi := 1; mini := 1;
- for j := 1 to 5 do
- for i := 1 to 5 do
- begin
- if A[i, j] > max then begin max := A[i, j]; maxi := j; end;
- if A[i, j] < min then begin min := A[i, j]; mini := j; end;
- end;
- for i := 1 to 5 do
- begin
- k := A[i, mini]; A[i, mini] := A[i, maxi]; A[i, maxi] := k;
- end;
- writeln('Максимальный элемент = ', max, ' в столбце ', maxi);
- writeln('Минимальный элемент = ', min, ' в столбце ', mini);
- writeln;
- writeln('Обмен столбцами:');
- for i := 1 to 5 do
- begin
- for j := 1 to 5 do
- write(A[i, j]:3);
- writeln;
- end;
- end;
- procedure Snake(var A: mass);
- var
- i, j: integer;
- begin
- writeln('Вывод массива змейкой:');
- for i := 1 to 5 do
- begin
- if i mod 2 <> 0 then for j := 1 to 5 do
- write(A[i, j]:3);
- if i mod 2 = 0 then for j := 5 downto 1 do
- write(A[i, j]:3);
- writeln;
- end;
- end;
- function Sumnadgl(A: mass): integer;
- var
- i, j, s: integer;
- begin
- write('Сумма чисел над главной диагональю - ');
- s := 0;
- for j := 1 to 5 do
- for i := 1 to 5 do
- if j > i then s := s + A[i, j];
- writeln(s);
- end;
- function Sumpodgl(A: mass): integer;
- var
- i, j, s: integer;
- begin
- write('Сумма чисел под главной диагональю - ');
- s := 0;
- for j := 1 to 5 do
- for i := 1 to 5 do
- if j < i then s := s + A[i, j];
- writeln(s);
- end;
- function Sumnagl(A: mass): integer;
- var
- i, j, s: integer;
- begin
- write('Сумма чисел на главной диагонали - ');
- s := 0;
- for j := 1 to 5 do
- for i := 1 to 5 do
- if j = i then s := s + A[i, j];
- writeln(s);
- end;
- function Sumnadpob(A: mass): integer;
- var
- i, j, s: integer;
- begin
- write('Сумма чисел над побочной диагональю - ');
- s := 0;
- for j := 1 to 5 do
- for i := 1 to 5 do
- if i + j < 6 then s := s + A[i, j];
- writeln(s);
- end;
- function Sumpodpob(A: mass): integer;
- var
- i, j, s: integer;
- begin
- write('Сумма чисел под побочной диагональю - ');
- s := 0;
- for j := 1 to 5 do
- for i := 1 to 5 do
- if i + j > 6 then s := s + A[i, j];
- writeln(s);
- end;
- function Sumnapob(A: mass): integer;
- var
- i, j, s: integer;
- begin
- write('Сумма чисел на побочной диагонали - ');
- s := 0;
- for j := 1 to 5 do
- for i := 1 to 5 do
- if i + j = 6 then s := s + A[i, j];
- writeln(s);
- end;
- procedure Spiral(var A: mass);
- var
- i, j, p: integer;
- begin
- writeln('Вывод массива спиралью');
- for p := 1 to 5 do
- begin
- for j := p to 6 - p do write(A[p, j]:3);
- for i := p + 1 to 6 - p do write(A[i, 6 - p]:3);
- for j := 5 - p downto p do write(A[6 - p, j]:3);
- for i := 5 - p downto p + 1 do write(A[i, p]:3);
- end;
- writeln;
- end;
- procedure Sort(var A:mass);
- var
- p, T, i, j: integer;
- begin
- writeln('Сортировка массива по четным\нечетным столбцам');
- for j := 1 to 5 do
- begin
- if j mod 2 <> 0 then
- for p := 1 to 4 do
- for i := 1 to 4 do
- if A[i, j] < A[i + 1, j] then
- begin
- T := A[i, j]; A[i, j] := A[i + 1, j]; A[i + 1, j] := T;
- end;
- if j mod 2 = 0 then
- for p := 1 to 4 do
- for i := 1 to 4 do
- if A[i, j] > A[i + 1, j] then
- begin
- T := A[i, j]; A[i, j] := A[i + 1, j]; A[i + 1, j] := T;
- end;
- end;
- for i := 1 to 5 do
- begin
- for j := 1 to 5 do
- write(A[i, j]:3);
- writeln;
- end;
- end;
- var
- A, B, C: mass; n: integer;
- begin
- writeln('Добро пожаловать в программу "Двумерный массив"');
- writeln('Нажмите 1, чтобы ввести 2 рандомных двумерных массива');
- writeln('Нажмите 2, чтобы найти в первом массиве максимальный и минимальный элементы и поменять местами их столбцы');
- writeln('Нажмите 3, чтобы вывести первый массив змейкой');
- writeln('Нажмите 4, чтобы вывести первый массив спиралью');
- writeln('Нажмите 5, чтобы найти в первом массиве сумму чисел над главной диагональю');
- writeln('Нажмите 6, чтобы найти в первом массиве сумму чисел под главной диагональю');
- writeln('Нажмите 7, чтобы найти в первом массиве сумму чисел на главной диагонали');
- writeln('Нажмите 8, чтобы найти в первом массиве сумму чисел над побочной диагональю');
- writeln('Нажмите 9, чтобы найти в первом массиве сумму чисел под побочной диагональю');
- writeln('Нажмите 10, чтобы найти в первом массиве сумму чисел на побочной диагонали');
- writeln('Нажмите 11, чтобы сортировать первый массив по четным\нечетным столбцам');
- writeln('Нажмите 12, чтобы вычислить произведение двух матриц');
- writeln('Нажмите 13, чтобы закончить работу с программой');
- while (true) do
- begin
- readln(n);
- if n=1 then Input(A, B);
- if n=2 then Obmen(A);
- if n=3 then Snake(A);
- if n=4 then Spiral(A);
- if n=5 then Sumnadgl(A);
- if n=6 then Sumpodgl(A);
- if n=7 then Sumnagl(A);
- if n=8 then Sumnadpob(A);
- if n=9 then Sumpodpob(A);
- if n=10 then Sumnapob(A);
- if n=11 then Sort(A);
- if n=12 then begin writeln('Произведение матриц'); Mult(A,B,C); end;
- if n=13 then break;
- end;
- writeln('До встречи!');
- end.
Add Comment
Please, Sign In to add comment