Вопрос:

2. В написанной программе для решения задачи: "Написать * программу, которая определяет количество нечётных целых чисел, кратных 3. Программа получает на вход числа, количество которых неизвестно, ввод чисел заканчивается числом 0 (0 — признак окончания ввода).", была допущена ошибка. Укажите номер строки с ошибкой и представьте её правильное написание.

Смотреть решения всех заданий с листа

Ответ:

Задание 2. Ошибка в программе

В представленной программе была допущена ошибка в строке 8.

Объяснение:

  • Условие `if (a mod 2 <> 0) and (a mod 3 = 0)` должно проверять, является ли число a нечётным И кратным 3.
  • Оператор `mod` используется для получения остатка от деления.
  • Проверка на нечётность: `a mod 2 <> 0` (остаток от деления на 2 не равен 0).
  • Проверка на кратность 3: `a mod 3 = 0` (остаток от деления на 3 равен 0).
  • Логическая операция «И» в данном случае — это `and`.
  • В строке 8, вместо присваивания `k := k + a;`, должно быть условие `then k := k + a;`.

Правильное написание строки 8:

if (a mod 2 <> 0) and (a mod 3 = 0) then k := k + a;

Полный исправленный код:

var
  a: integer;
begin
  var k := 0;
  read(a);
  while a <> 0 do
  begin
    if (a mod 2 <> 0) and (a mod 3 = 0) then k := k + a;
    read(a);
  end;
  print(k);
end.

Ответ: Ошибка в строке 8. Правильное написание: if (a mod 2 <> 0) and (a mod 3 = 0) then k := k + a;

ГДЗ по фото 📸