Честно говоря, какой-то странный код. Во-первых, после 0 (во второй строке) должно стоять двоеточие и, во-вторых, лично у меня функции записаные с большой буквы, не работают. Как я понимаю, эта программа должна искать чётные числа от 0 до 10 (мне выдаёт 2,4,6,8,10). Она работает так: благодаря цыклу for переменной i надаётся значение от 0 до 9 (функцией range(10)). Дальше проверяется есть ли число i чётным (i%2==0). Функция not по сути делает противоположное: проверяет есть ли это число нечётным. Тогда если оно нечётнон, выводится на екран число на один больше него (т.е. чётное).
Я бы написал эту программу так:
for i in range(1, 11): if i % 2 == 0: print(i)
По сути она выводит то же самое, но код немного менше и понятней.
P.S. Эти программы не выдают в ответе 0, хотя 0 - тоже парное число. Чтобы она выдавала еще и 0, просто надо убрать первый аргумент функции range():
for i in range(11): if i % 2 == 0: print(i) Тогда она выведет 0,2,4,6,8,10.
//PascalABC.NET 3.1 сборка 1219 procedure PrintMatrix(a: array[,] of integer); begin for var i := a.GetLowerBound(0) to a.GetUpperBound(0) do begin writeln; for var j := a.GetLowerBound(1) to a.GetUpperBound(1) do write(a[i, j], ' '); end; writeln; end;
begin var a := MatrixRandom(9, 9, 10, 99); PrintMatrix(a); var i := (a.GetLowerBound(0) + a.GetUpperBound(0)) div 2 + (a.GetLowerBound(0) + a.GetUpperBound(0)) mod 2; var j := (a.GetLowerBound(1) + a.GetUpperBound(1)) div 2 + (a.GetLowerBound(1) + a.GetUpperBound(1)) mod 2; writeln('A[', i, ', ', j, '] = ', a[i, j]); end.
Во-первых, после 0 (во второй строке) должно стоять двоеточие и, во-вторых, лично у меня функции записаные с большой буквы, не работают.
Как я понимаю, эта программа должна искать чётные числа от 0 до 10 (мне выдаёт 2,4,6,8,10).
Она работает так:
благодаря цыклу for переменной i надаётся значение от 0 до 9 (функцией range(10)). Дальше проверяется есть ли число i чётным (i%2==0). Функция not по сути делает противоположное: проверяет есть ли это число нечётным. Тогда если оно нечётнон, выводится на екран число на один больше него (т.е. чётное).
Я бы написал эту программу так:
for i in range(1, 11):
if i % 2 == 0:
print(i)
По сути она выводит то же самое, но код немного менше и понятней.
P.S. Эти программы не выдают в ответе 0, хотя 0 - тоже парное число.
Чтобы она выдавала еще и 0, просто надо убрать первый аргумент функции range():
for i in range(11):
if i % 2 == 0:
print(i)
Тогда она выведет 0,2,4,6,8,10.
procedure PrintMatrix(a: array[,] of integer);
begin
for var i := a.GetLowerBound(0) to a.GetUpperBound(0) do
begin
writeln;
for var j := a.GetLowerBound(1) to a.GetUpperBound(1) do
write(a[i, j], ' ');
end;
writeln;
end;
begin
var a := MatrixRandom(9, 9, 10, 99);
PrintMatrix(a);
var i := (a.GetLowerBound(0) + a.GetUpperBound(0)) div 2 + (a.GetLowerBound(0) + a.GetUpperBound(0)) mod 2;
var j := (a.GetLowerBound(1) + a.GetUpperBound(1)) div 2 + (a.GetLowerBound(1) + a.GetUpperBound(1)) mod 2;
writeln('A[', i, ', ', j, '] = ', a[i, j]);
end.