Другие языки программирования и технологии

Помогите найти ошибку qbasic

помогите найти ошибку, qbasic CLS MAX=-10^10: MIN=10^10 DEF FNT(X)= A*B+SIN(X)^2-SQR(X) PRINT TAB (25); “ LAB.RABOTA 1” PRINT TAB (25); “ BALCUN LIYA” PRINT TAB (25); “11-TPM-2” REM READ A.B DATA 5,13 FOR X=1 TO 2 STEP 0.1 F$ “|##.##|##.##|” PRINT USING F$; X,Y INPUT X,Y M= 70/(MAX-MIN) S= 70-M*MAX X=1 IF X<=2 THEN Y= A*B+SIN(X)^2-SQR(X) END IF PRINT “X=”; X, “Y=”; Y IF Y>MAX THEN MAX=Y XMIN=X END IF NEXT X PRINT MAX, XMAX PRINT MIN,XMIN END SLEEP 10 FOR X=1 TO 2 STEP 0.1 Y=FNT(X) Y= A*B+SIN(X)^2-SQR(X) PRINT NAB (S+M*Y); “*” NEXT X END
Знаешь, перед тем как написать исправленный код, надо понять, что хотел написать ты.
Приведение только задания считается действительно наглым, приведение только неправильного решения неизвестно чего - непонятным, а вот задание плюс вариант решения с ошибками - как раз то, что полагается. Я, например, не понял, что ты хотел написать. Нужно условие задачи.
Хотя, конечно, QBASIC - преданья старины глубокой, время начала разработки MS-DOS...
Сергей Сметанкин
Сергей Сметанкин
97 114
Лучший ответ
Во-первых, непонятно, зачем ты определил функцию FNT(X)= A*B+SIN(X)^2-SQR(X), если в программе ты все равно пишешь Y= A*B+SIN(X)^2-SQR(X). Тогда уж можно или написать Y= FNT(X), или выкинуть DEF FNT(X).

Во-вторых, я не уверен, что в определении функции могут присутствовать неизвестные переменные А и В, так что возможно, что как раз нужно выкинуть оператор DEF FNT(X), он лишний.

В-третьих, что это за кусок кода
SLEEP 10
FOR X=1 TO 2 STEP 0.1
Y=FNT(X)
Y= A*B+SIN(X)^2-SQR(X)
PRINT NAB (S+M*Y); “*”
NEXT X
END
После оператора END не должно быть ничего.
А если у тебя два разных варианта окончания, тогда должна быть метка, и переход на эту метку по условию.

В-четвертых, что это за повтор?
Y=FNT(X)
Y= A*B+SIN(X)^2-SQR(X)
Как я уже написал, строку Y=FNT(X) можно выкинуть вместе с определением функции DEF FNT(X).

Да, и в-пятых, Mr.Walter тоже прав - ты задаешь Х = 1 внутри цикла по Х, поэтому цикл никогда не кончится.
Ну давай уж говорить прямо: идея в теле цикла по Х ему присваивать значение 1 - это надо быть плохим парнем, чтобы такое насоветовать. Что я могу посоветовать - убрать строку X=1 в теле цикла (а то это уже фигня какая-то получается, а не цикл :) )

а если честно - я вообще нифига не понял, что ты хочешь этой программой показать: то у тебя Х будет стабилен от 1 до 2 с шагом 0.1, то у тебя внезапно хзоткуда появляется ввод Х.. . ты сам разберись с переменными, а то у тебя фигня получилась