Помогите отыскать ошибку. Безотлагательно
Помогите отыскать ошибку. Безотлагательно
Задать свой вопросВо-первых - не имейте моду писать всё в одну строку. Сейчас Вы в этом удостоверились, так как не сможете отыскать ошибку. Изъясняю, как надо:
- if lt;условиеgt; then
- // оператор
Никаких if lt;условиеgt; then // оператор, - пренебрегайте про это навечно.
Это Вам не тернарный оператор lt;условиеgt; ? lt;оператор_при_truegt; : lt;оператор_при_falsegt;.
Во-вторых - Вы засовываете логическую переменную в блок условия. Поясняю:
- if D gt; 0 then
- x1 := ... and x2 := ...
Вы не можете таким образом объявлять переменные. Каждое деянье - в новейшей строке, а также обязано оканчиваться точкой с запятой. Как обязано быть написано верно:
- if D gt; 0 then
- begin
- x1 := ...
- x2 := ...
- end // тут точка с запятой не нужна, поскольку дальше следует блок else
- else
- if D = 0 then
- x := ... // тут тоже запятая не нужна
- else
- write('...');
В-третьих - обезопасьте себя и поставьте порядок операций в поиске корней дискриминанта:
- x1 := (-b + sqrt(D)) / (2*a) // без скобок выполнится деление на 2, а позже умножение на a
Так же стоит сделать и с x := ...
Если ошибка не исчезает - пишите в комментах её описание (ошибки).
-
Вопросы ответы
Статьи
Информатика
Статьи
Разные вопросы.
Математика.
Физика.
Геометрия.
Разные вопросы.
Обществознание.
Математика.
Химия.
Русский язык.
Разные вопросы.