Вопрос задан 29.07.2023 в 11:12. Предмет Информатика. Спрашивает Брицъкий Владислав.

Дана последовательность из N вещественных чисел. Первое число в последовательности нечетное. Найти

сумму всех идущих подряд в начале последовательности нечетных чисел. Условный оператор не использовать.Qbasic
0 0
Перейти к ответам

Ответы на вопрос

Внимание! Ответы на вопросы дают живые люди. Они могут содержать ошибочную информацию, заблуждения, а также ответы могут быть сгенерированы нейросетями. Будьте внимательны. Если вы уверены, что ответ неверный, нажмите кнопку "Пожаловаться" под ответом.
Отвечает Радченко Никита.
О четности или нечетности вещественного числа можно говорить лишь если оно не имеет дробной части. В этом случае оно приводится к целому числу. Я не знаю, зачем дано абсолютно глупое требование не использовать условный оператор, но выполнить его можно. Надо умножать число на абсолютную величину остатка от его деления на 2. Если число четное, остаток будет нулевым, нечетное - единичным. Поэтому результатом умножения будет или само нечетное число, или ноль. И можно все подряд складывать.

CLS
DIM n AS INTEGER
INPUT "n=", n
DIM i AS INTEGER, k AS INTEGER, x AS SINGLE, s AS SINGLE, i AS INTEGER
s = 0
FOR i = 1 TO n
   INPUT "->", x
   s = s + x * (ABS(INT(x)) MOD 2)
NEXT i
PRINT "s = ", s


0 0
Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.

Для нахождения суммы всех идущих подряд в начале последовательности нечетных чисел без использования условного оператора, можно воспользоваться циклом и проверкой на нечетность числа. В языке QBasic это может выглядеть следующим образом:

qbasic
DECLARE SUB FindSumOfFirstOddNumbers (N AS INTEGER, Numbers() AS SINGLE) DIM Numbers(100) ' Задаем массив для хранения вещественных чисел. Максимальный размер массива - 100. INPUT "Введите количество чисел в последовательности (N): ", N INPUT "Введите первое число: ", Numbers(1) IF Numbers(1) MOD 2 = 0 THEN PRINT "Первое число должно быть нечетным!" ELSE FOR i = 2 TO N INPUT "Введите следующее число: ", Numbers(i) IF Numbers(i) MOD 2 = 0 THEN EXIT FOR ' Если число четное, прерываем ввод последовательности END IF NEXT i CALL FindSumOfFirstOddNumbers(N, Numbers) END IF SUB FindSumOfFirstOddNumbers (N AS INTEGER, Numbers() AS SINGLE) DIM sum AS SINGLE sum = Numbers(1) ' Инициализируем сумму значением первого нечетного числа FOR i = 2 TO N IF Numbers(i) MOD 2 = 0 THEN EXIT FOR ' Если число четное, прерываем подсчет суммы END IF sum = sum + Numbers(i) ' Добавляем текущее нечетное число к сумме NEXT i PRINT "Сумма первых " + STR(i - 1) + " нечетных чисел: "; sum END SUB

Обратите внимание, что в коде предполагается, что пользователь будет вводить числа в правильном порядке (сначала нечетные, затем четные). Если вам необходимо реализовать проверку на правильность ввода, то придется добавить дополнительные проверки.

0 0

Похожие вопросы

Топ вопросов за вчера в категории Информатика

Последние заданные вопросы в категории Информатика

Задать вопрос