a,b и c - логические переменные. Принимают значение "Истина" или "Ложь".
Соответственно, выражение a:= (x[i] = 0) and a означает, что a принимает значение "Истина" только при одновременном выполнении обоих условий: x[i] = 0 - истинное высказывание и значение а - "Истина".
Точно также выражение b:= ( not(c) and (x[i] > 0) or b; означает, что b принимает значение "Истина" в любом из двух случаев
1)при одновременном выполнении обоих условий: значение c - "Ложь" и x[i] > 0 - истинное высказывание.
2) Значение b - "Истина"
Последнее выражение c:= ( not(b) and (x[i] < 0) ) or c; аналогично предыдущему: с принимает значение "Истина" в любом из двух случаев:
1)при одновременном выполнении обоих условий: значение b - "Ложь" и x[i] < 0 - истинное высказывание.
//Pascal //Заполнение массива случайными числами var A: array[1..255] of integer; i, sum, N: integer; begin write('Введите N: '); readln(N); randomize; //В PascalABC.NET можно убрать for i := 1 to N do begin A[i] := random(21)-10; //Случайные числа от -10 до 10 if ((A[i] mod 2 <> 0) and (A[i] < 0)) then sum := sum + A[i]; write(A[i], ' '); end; writeln; writeln('Сумма отрицательных и нечетных = ', sum); readln; end.
//Pascal //Заполнение массива с клавиатуры var A: array[1..255] of integer; i, sum, N: integer; begin write('Введите N: '); readln(N); for i := 1 to N do begin write('A[', i, '] = '); readln(A[i]); if ((A[i] mod 2 <> 0) and (A[i] < 0)) then sum := sum + A[i]; end; writeln; writeln('Сумма отрицательных и нечетных = ', sum); readln; end.
Объяснение:
a,b и c - логические переменные. Принимают значение "Истина" или "Ложь".
Соответственно, выражение a:= (x[i] = 0) and a означает, что a принимает значение "Истина" только при одновременном выполнении обоих условий: x[i] = 0 - истинное высказывание и значение а - "Истина".
Точно также выражение b:= ( not(c) and (x[i] > 0) or b; означает, что b принимает значение "Истина" в любом из двух случаев
1)при одновременном выполнении обоих условий: значение c - "Ложь" и x[i] > 0 - истинное высказывание.
2) Значение b - "Истина"
Последнее выражение c:= ( not(b) and (x[i] < 0) ) or c; аналогично предыдущему: с принимает значение "Истина" в любом из двух случаев:
1)при одновременном выполнении обоих условий: значение b - "Ложь" и x[i] < 0 - истинное высказывание.
2) Значение c - "Истина"