const
n = 5;
var
a: array[1..n, 1..n] of integer;
k, c, i, j: integer;
begin
c := 1;
k := 1;
while c <= n do
begin
for i := 1 to n do
begin
a[c, i] := k;
k := k + 1;
end;
c := c + 1;
if c>n then break;
for i := n downto 1 do
begin
a[c, i] := k;
k := k + 1;
end;
c := c + 1;
end;
for i := 1 to n do
begin
for j := 1 to n do
write(a[i, j]:3);
writeLn;
end;
end.
Данная программа выведет 64.
Вначале задаётся переменная под названием "a", которой даётся значение 4. Дальше запускается цикл for для переменной "i" в радиусе 4. Данную переменную не нужно создавать отдельно, так как она будет использоваться только в цикле и изменяться в нём. В методе range указан аргумент числа и цикл будет при срабатывании присваивать переменной "i" число, которое идёт по порядку до 4, и пока переменная "i" не станет равна числу, указанному в аргумента метода range, цикл будет повторять действия. Цикл сработает 3 раза, так как в аргументе метода range указано число 4, и если переменная "i" будет равна 4, то он перестанет работать. В самом цикле написана инструкция, в которой к переменной "a" прибавляется она сама. Иными словами мы будем возводить её в квадрат. Так можно понять, что ответом будет возведение числа 4 в 3-ю степень, что равняется 64.
#include <iostream>
#include <time.h>
using namespace std;
int main()
{
setlocale(LC_ALL, "Russian");
int a[5][5];
int i, j, s, p;
srand(time(NULL));
for (i = 0; i <= 4; i++) {
cout << "\n";
for (j = 0; j <= 4; j++) {
a[i][j] = ((double)rand() / (RAND_MAX + 1) * 5) + 1;
cout << a[i][j] << ' ';
}
}
s = 0;
for (i = 0, j = 4; i < 5; i++, j--) // правая диагональ
s += a[i][j];
p = 1;
for (i = 0; i < 5; i++) // левая диагональ
p *= a[i][i];
cout << "\n\nСумма правой диагонали = " << s << "\nПроизведение левой диагонали = " << p << "\n";
}