Помогите отыскать ошибку. Безотлагательно

Помогите отыскать ошибку. Безотлагательно

Задать свой вопрос
Timur Ndzana
на фото плохо видно текст, точнее вообще не видно, сможете мне в телеграм скинуть, я помогу
1 ответ

Во-первых - не имейте моду писать всё в одну строку. Сейчас Вы в этом удостоверились, так как не сможете отыскать ошибку. Изъясняю, как надо:

  1. if lt;условиеgt; then
  2. // оператор

Никаких if lt;условиеgt; then // оператор, - пренебрегайте про это навечно.

Это Вам не тернарный оператор lt;условиеgt; ? lt;оператор_при_truegt; : lt;оператор_при_falsegt;.

Во-вторых - Вы засовываете логическую переменную в блок условия. Поясняю:

  1. if D gt; 0 then
  2. x1 := ... and x2 := ...

Вы не можете таким образом объявлять переменные. Каждое деянье - в новейшей строке, а также обязано оканчиваться точкой с запятой. Как обязано быть написано верно:

  1. if D gt; 0 then
  2. begin
  3. x1 := ...
  4. x2 := ...
  5. end // тут точка с запятой не нужна, поскольку дальше следует блок else
  6. else
  7. if D = 0 then
  8. x := ... // тут тоже запятая не нужна
  9. else
  10. write('...');

В-третьих - обезопасьте себя и поставьте порядок операций в поиске корней дискриминанта:

  1. x1 := (-b + sqrt(D)) / (2*a) // без скобок выполнится деление на 2, а позже умножение на a

Так же стоит сделать и с x := ...

Если ошибка не исчезает - пишите в комментах её описание (ошибки).

Пихтилев Михаил
хороший структурированый ответ, молодец
, оставишь ответ?
Имя:*
E-Mail:


Последние вопросы

Добро пожаловать!

Для того чтобы стать полноценным пользователем нашего портала, вам необходимо пройти регистрацию.
Зарегистрироваться
Создайте собственную учетную запить!

Пройти регистрацию
Авторизоваться
Уже зарегистрированны? А ну-ка живо авторизуйтесь!

Войти на сайт