// PascalABC.NET 3.1, сборка 1250 от 28.05.2016 begin var n:=ReadInteger('Задайте число строк/столбцов массива:'); var a:=MatrixRandom(n,n,-99,99); Writeln('Исходный массив'); for var i:=0 to n-1 do begin for var j:=0 to n-1 do Write(a[i,j]:4); Writeln end; Write('Кол-во нечетных элементов выше главной диагонали: '); var k:=0; for var i:=0 to n-2 do for var j:=i+1 to n-1 do if Odd(a[i,j]) then Inc(k); Writeln(k) end.
Так как язык не указан, приведу пример на SWI-Prolog.
Код:
read_int(Int) :- read(Int), integer(Int).split_int_by_numbers(0, []) :- !.split_int_by_numbers(N, [Number|Ints]) :- Number is mod(N, 10), RestN is div(N, 10), split_int_by_numbers(RestN, Ints).test_to_div(_, []).test_to_div(N, [Number|Ints]) :- mod(N, Number) =:= 0, test_to_div(N, Ints). test(Int) :- split_int_by_numbers(Int, Numbers), test_to_div(Int, Numbers), write(Int), write(" - Yes!"), nl.test(Int) :- write(Int), write(" - No!"), nl.?- read_int(Int), test(Int).begin
var n:=ReadInteger('Задайте число строк/столбцов массива:');
var a:=MatrixRandom(n,n,-99,99);
Writeln('Исходный массив');
for var i:=0 to n-1 do begin
for var j:=0 to n-1 do Write(a[i,j]:4);
Writeln
end;
Write('Кол-во нечетных элементов выше главной диагонали: ');
var k:=0;
for var i:=0 to n-2 do
for var j:=i+1 to n-1 do
if Odd(a[i,j]) then Inc(k);
Writeln(k)
end.
Тестовое решение
Задайте число строк/столбцов массива: 6
Исходный массив
31 27 -90 -64 -75 22
12 11 79 6 -14 73
-66 -52 -97 -82 -50 47
-65 20 25 -7 -13 46
-31 -9 -69 47 81 2
-43 -68 95 -3 -36 -55
Кол-во нечетных элементов выше главной диагонали: 6