Почему в QBasic пишет "деление на ноль" и как это исправить ?
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
По дате
По рейтингу
При 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
Во- первых, 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
cos(x)/(x-1) != cos(x/(x-1)) это раз
второе при x=1