
#include <iostream>
using namespace std;
int main()
{
const int n = 7;
int mas[n][n] = {
{0, 1, 1, 1, 1, 1, 0},
{3, 0, 1, 1, 1, 0, 4},
{3, 3, 0, 1, 0, 4, 4},
{3, 3, 3, 0, 4, 4, 4},
{3, 3, 0, 2, 0, 4, 4},
{3, 0, 2, 2, 2, 0, 4},
{0, 2, 2, 2, 2, 2, 0}};//инициализируем матрицу
for (int jjj = 0; jjj < (n - 1) / 2; jjj++)
for (int kkk = 1; kkk < n - 1; kkk++)
swap(mas[jjj][kkk], mas[n - 1 - jjj][kkk]);// меняем верхний с нижним
for (int jjj = 0; jjj < (n - 1) / 2; jjj++)
for (int kkk = 1; kkk < n - 1; kkk++)
swap(mas[kkk][jjj], mas[kkk][n - 1 - jjj]);// меняем правый с левым
for (int jjj = 0; jjj < n; jjj++)
{
for (int kkk = 0; kkk < n; kkk++)
cout << mas[jjj][kkk] << " ";
cout << endl;
};//выводим матрицу
}
===== PascalABC.NET =====
function GCD(a, b: integer): integer;// НОД
begin
while b <> 0 do
begin
a := a mod b;
Swap(a, b)
end;
Result := a
end;
procedure RedFrac(var a, b: integer);// сокращение дроби
begin
var sgna := Sign(a); // мы должны учитывать знак!
var sgnb := Sign(b); // мы должны учитывать знак!
a := Abs(a);
b := Abs(b);
var d := GCD(a, b);
a := (a div d) * sgna;
b := (b div d) * sgnb
end;
begin
var (p1, q1) :=
ReadInteger2('Дробь 1. Введите числитель и знаменатель:');
var (p2, q2) :=
ReadInteger2('Дробь 2. Введите числитель и знаменатель:');
var p3 := p1 * q1 + p2 * q2;
var q3 := q1 * q2;
RedFrac(p3, q3);
Println(p3, '/', q3)
end.