1.вывести на экран главную и побочную диагональ квадратной матицы. 2 вычислить количество четных элементов квадратной матрицы, расположенных по ее периметру.
var a: array[1..mm, 1..mm] of integer; i, j, m, s: integer;
begin Write('Введите число строк (столбцов) матрицы: '); Readln(m); Randomize; Writeln(#13#10, 'Исходная матрица'); for i := 1 to m do begin for j := 1 to m do begin a[i, j] := Random(99) + 1; { числа 1..99 } Write(a[i, j]:3) end; Writeln end; Writeln('*** Главная диагональ ***'); for i := 1 to m do Write(a[i, i]:3); Writeln; Writeln('*** Побочная диагональ ***'); for i := 1 to m do Write(a[i, m - i + 1]:3); Writeln; Write('Сумма четных элементов по периметру равна '); s := 0; for j := 1 to m do if a[1, j] mod 2 = 0 then s := s + a[1, j]; for j := 1 to m do if a[m, j] mod 2 = 0 then s := s + a[m, j]; for i := 2 to m-1 do if a[i, 1] mod 2 = 0 then s := s + a[i, 1]; for i := 2 to m-1 do if a[i, m] mod 2 = 0 then s := s + a[i, m]; Writeln(s) end.
Байт (англ. byte) (русское обозначение: байт и Б; международное: B, byte)[1] — единица хранения и обработки цифровой информации; совокупность битов, обрабатываемая компьютером одновременно. В современных вычислительных системах байт состоит из 8 бит и, соответственно, может принимать одно из 256 (от 0 до 255) различных значений (состояний, кодов). Однако в истории компьютерной техники существовали решения с иными размерами байта (например, 6, 32 или 36 бит), поэтому иногда в компьютерных стандартах и официальных документах для однозначного обозначения группы из 8 бит используется термин «октет» (лат. octet). В большинстве вычислительных архитектур байт — это минимальный независимо адресуемый набор данных.
var y: System.uint64; //Большая цЫфра же и положительная x, i: byte; //Нет смысла большие числа брать слишком, переполнение будет
begin readln(x); //Принимаем число... y := 1; i := 1; repeat y *= i; //...и умножаем такое-то количество раз i += 1; until (i > x); if (y = 0) then //Выводим, предусмотрев переполнение writeln('Слишком большая цЫферка') else writeln(y); end.
Int64 - это то же самое, что LongInt, а Uint64 (unsign long int) - длинное число без знака, при правильном использовании позволяет записывать в переменную числа, в 2 раза превышающие максимум Int64
mm = 20;
var
a: array[1..mm, 1..mm] of integer;
i, j, m, s: integer;
begin
Write('Введите число строк (столбцов) матрицы: ');
Readln(m);
Randomize;
Writeln(#13#10, 'Исходная матрица');
for i := 1 to m do
begin
for j := 1 to m do
begin
a[i, j] := Random(99) + 1; { числа 1..99 }
Write(a[i, j]:3)
end;
Writeln
end;
Writeln('*** Главная диагональ ***');
for i := 1 to m do Write(a[i, i]:3);
Writeln;
Writeln('*** Побочная диагональ ***');
for i := 1 to m do Write(a[i, m - i + 1]:3);
Writeln;
Write('Сумма четных элементов по периметру равна ');
s := 0;
for j := 1 to m do
if a[1, j] mod 2 = 0 then s := s + a[1, j];
for j := 1 to m do
if a[m, j] mod 2 = 0 then s := s + a[m, j];
for i := 2 to m-1 do
if a[i, 1] mod 2 = 0 then s := s + a[i, 1];
for i := 2 to m-1 do
if a[i, m] mod 2 = 0 then s := s + a[i, m];
Writeln(s)
end.
Тестовое решение:
Введите число строк (столбцов) матрицы: 10
Исходная матрица
12 81 22 55 45 97 37 95 33 84
4 40 77 85 20 15 40 41 64 16
17 72 42 32 85 94 7 39 65 46
22 23 58 69 53 40 65 49 70 20
90 62 26 60 53 13 19 2 21 31
50 55 8 29 26 39 40 89 70 51
91 98 31 86 62 80 81 9 32 79
49 90 71 44 26 55 46 81 79 73
75 5 18 34 96 67 16 29 43 15
1 76 78 19 28 91 31 39 98 73
*** Главная диагональ ***
12 40 42 69 53 39 81 81 43 73
*** Побочная диагональ ***
84 64 39 65 13 26 86 71 5 1
Сумма четных элементов по периметру равна 646