Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Образовательный студенческий форум _ Информатика / Программирование _ Помогите понять что не правильно

Автор: Елена 555 14.12.2009, 15:51

построить алгоритм и написать программу вычисления значения функции на языке Qbasic

X=(EXP(-X1)-EXP(-X2))/2 И Z=(A*SQRT(X1)-B*SQRT(X2))/C ,ГДЕ

X1=(B+SQRT(ABS(B^2-4*A*C))/(2*A);
X2=(B-SQRT(ABS(B^2-4*A*C))/(2*A)
программа

REM вычисление значения функции
INPUT "A,B,C";A,B,C
IF A=0 THEN PRINT функция не определена
ELSE
X1=(B+SQRT(ABS(B^2-4*A*C))/(2*A)
X2=(B-SQRT(ABS(B^2-4*A*C))/(2*A)
X=(EXP(-X1)-EXP(-X2))/2
PRINT "X=";X
END IF
IF C=0 THEN PRINT функция не определена
ELSE
Z=(A*SQRT(X1)-B*SQRT(X2))/C
PRINT "Z=";Z
END IF
END





Автор: tig81 14.12.2009, 16:40

А какую ошибку выдает?

Автор: Елена 555 14.12.2009, 16:50

Пишет ELSE без IF
END без IF
индекс вне диапозона

Что я уже только не пыталась переделывать все равно так пишет.

Автор: Vago 14.12.2009, 19:51

1. Текстовые константы всегда в кавычки берутся. В том числе и те, которые в операторах PRINT.

2. В выражениях для X1 и X2 закрывающей скобки не хватает. (Кстати, там перед B "минуса" случайно нет по условию?..)

3. Тела блоков THEN / ELSE нужно с новой строчки начинать:

Код

...
IF A=0 THEN
PRINT "функция не определена"
ELSE
X1=(B+SQRT(ABS(B^2-4*A*C)))/(2*A)
...

Автор: Елена 555 14.12.2009, 20:44

Цитата
1. Текстовые константы всегда в кавычки берутся. В том числе и те, которые в операторах PRINT.

Т.е. EXP нужно брать в кавычки или я не правильно поняла?
Цитата
2. В выражениях для X1 и X2 закрывающей скобки не хватает. (Кстати, там перед B "минуса" случайно нет по условию?..)

Да,простите,пропустила,а минуса там нет,условие такое как я написала.

Автор: Vago 14.12.2009, 21:05

Цитата(Елена 555 @ 14.12.2009, 22:44) *

Т.е. EXP нужно брать в кавычки или я не правильно поняла?

Неправильно smile.gif Я имел в виду текст "функция не определена" в операторах PRINT.

Автор: Елена 555 15.12.2009, 9:41

Цитата
X1=(B+SQRT(ABS(B^2-4*A*C))/(2*A)

Все равно пишет "Индекс вне диапозона".А что это означает???

Автор: Vago 15.12.2009, 10:14

Какие значения A, B и C Вы вводите?

Автор: Елена 555 15.12.2009, 10:22

Ввела А=2,В=4,С=3,оно мне посчитало X=0?Z=0
Когда ввожу другие значения,выдает мне "Индекс вне диапозона"

Автор: Vago 15.12.2009, 10:48

Поменяйте везде SQRT на SQR Совсем забыл, что это - Бейсик, а не Фортран... smile.gif

X1 и/или X2 могут получиться отрицательными. Какую-то проверку перед вычислением Z добавьте...

Автор: Елена 555 15.12.2009, 11:06

Спасибо большое получилось,посчитало.

Русская версия Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)