Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Почему в QBasic пишет "деление на ноль" и как это исправить ?

Тимур Матюнин Ученик (39), закрыт 14 лет назад
CLS
FOR X = 0 TO 5 STEP .2
LET Y = SIN(X ^ 2) * COS(X) * COS(X) / (X - 1)
I = X - 1
IF I = 0 THEN PRINT "H.P." ELSE
IF Y < 0 THEN K = K + 1
NEXT X
PRINT "K="; K
END
Лучший ответ
Станислав Абрашов Знаток (342) 14 лет назад
При x = 1 при вычислении Y происходит деление на ноль.
Для твоей задачи решение:
CLS
FOR X = 0 TO 5 STEP .2
I = X - 1
Y=0
IF I <> 0 THEN Y = SIN(X ^ 2) * COS(X) * COS(X) / (X - 1)
IF Y < 0 THEN K = K + 1
NEXT X
PRINT "K="; K
END
Остальные ответы
Krab Вark Оракул (56968) 14 лет назад
Потому что когда X станет равным 1, будет деление на 0. Это ясно видно.
Не Скажу Мыслитель (7090) 14 лет назад
cos(x)/(x-1) != cos(x/(x-1)) это раз
второе при x=1
Loony Искусственный Интеллект (674784) 14 лет назад
Во- первых, LET уже давно писать не надо. Во-вторых (и самое главное)
I = X - 1
IF I = 0 THEN PRINT "H.P." ELSE должно стоять перед
LET Y = SIN(X ^ 2) * COS(X) * COS(X) / (X - 1) иначе как раз при Х=1 и получается деление на ноль. Еще до проверки оператором IF
Похожие вопросы