1) Напишите, сколько из приведенных ниже логических выражений на языке Pascal верны для утверждения число

  • 56
1) Напишите, сколько из приведенных ниже логических выражений на языке Pascal верны для утверждения "число X оканчивается на цифру Y в восьмеричной системе счисления". 1) X mod 8 = Y; 2) abs(X) mod 8 = Y; 3) X div 8 = Y; 4) abs(X) div 8 = Y; 5) X mod 10 = Y; 6) abs(X mod 10) = Y.

2) Дано незавершенное программное кодирование для вычисления частного q и остатка r при делении a на b. var a, b, q, r, k: integer; begin readln(a,b); q:=a div b; r:=a mod b; ... writeln(q, " ", r); end. A begin G k:=-1 B else H q:=q+1 C end или end; I q:=q+k*1
Alla_1993
59
1) Для утверждения "число X оканчивается на цифру Y в восьмеричной системе счисления" верны следующие логические выражения на языке Pascal:

1) \(X \mod 8 = Y\)
2) \(|X| \mod 8 = Y\)
4) \(|X| \div 8 = Y\)
5) \(X \mod 10 = Y\)

Обоснование:

1) В этом выражении мы проверяем, что остаток от деления числа X на 8 равен Y. Если число оканчивается на цифру Y в восьмеричной системе счисления, то остаток от деления на 8 будет равен этой цифре.

2) Здесь мы сначала находим абсолютное значение числа X, а затем проверяем, что остаток от деления его на 8 равен Y.

4) Аналогично предыдущему выражению, только вместо модуля используется операция деления. Мы проверяем, что результат деления абсолютного значения числа X на 8 равен Y.

5) В данном случае мы проверяем, что остаток от деления числа X на 10 равен Y. Число оканчивается на цифру Y в десятичной системе счисления, если такой остаток имеется.

3) В этом выражении мы проверяем, что результат деления числа X на 8 равен Y. Однако, если X оканчивается на цифру Y в восьмеричной системе счисления, то X не делится на 8 целочисленно, поэтому это выражение неверно.

6) В данном случае мы сначала находим остаток от деления числа X на 10 с помощью операции X mod 10, а затем проверяем, что модуль этого остатка равен Y. Однако, это выражение не проверяет окончание числа X на цифру Y в восьмеричной системе счисления, поэтому оно также является неверным.

2) Данное незавершенное программное кодирование для вычисления частного \(q\) и остатка \(r\) при делении \(a\) на \(b\) можно закончить следующим образом:

pascal
var
a, b, q, r, k: integer;
begin
readln(a,b);
q:=a div b;
r:=a mod b;
k:=-1;
if r < 0 then // Проверяем, что остаток от деления отрицателен
begin
q:=q+1; // Увеличиваем частное на 1
r:=r+b; // Увеличиваем остаток на b
end;
writeln(q, " ", r);
end.


Обоснование:

В приведенной программе после вычисления частного \(q\) и остатка \(r\) при делении \(a\) на \(b\) мы вводим переменную \(k\) со значением -1. Затем, с помощью условного оператора if, мы проверяем, что остаток \(r\) от деления отрицателен. Если это условие выполняется, то мы увеличиваем частное \(q\) на 1 и увеличиваем остаток \(r\) на \(b\). Таким образом, получаем правильные значения и для положительного, и для отрицательного остатка при делении. В итоге выводим значения частного и остатка.