Форум программистов, компьютерный форум, киберфорум
Lazarus
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 23.01.2019
Сообщений: 28

Решение квадратных уравнений: SIGFPE при отрицательном свободном члене

27.01.2019, 16:56. Показов 1362. Ответов 23

Студворк — интернет-сервис помощи студентам
Программа должна решать квадратные уравнения. При свободном члене больше 0 все работает нормально, но если сделать его отрицательным, то выдает ошибку SIGFPE.
Например при таких уравнениях: x^3-12x^2+44x-48(корни 2, 4, 6); x^3-10x^2+31x-30(корни 2, 3, 5)
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
for i:= trunc(-d) to trunc(d) do
       begin
       memo1.Lines.Add(FloatToStr(i)+'  ');
       if i<>0 then
          if ((d-d/i*i)=0) and ((a*i*i*i+b*i*i+c*i+d)=0) then
          begin
               z:= -i;
               memo1.Lines.Add(FloatToStr(i)+' <- i     ');
               break
          end;
       end;
       k:=a;
       l:=b - k*z;
       m:=c-l*z;
       memo1.lines.add(FloatToStr(k)+'x^2'+FloatToStr(l)+'x'+FloatToStr(m));
       d := l*l-4*k*m;
       memo1.Lines.add(FloatToStr(d));
       if sqr(sqrt(d))=d then
       begin
            x1:=(-l+sqrt(d))/(2*k);
            x2:=(-l-sqrt(d))/(2*k);
       end;
       Memo1.Lines.Add('Корни уравнения:'+FloatToStr(x1)+'; '+FloatToStr(x2)+'; '+FloatToStr(i));
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
27.01.2019, 16:56
Ответы с готовыми решениями:

Решение квадратных уравнений при отрицательном дискриминанте (в комплексных числах)
uses crt; var a,b,c,d: integer; x1,x2: real; Begin clrscr; writeln('ax^2+bx+c=0'); write('Введите a,b,c:...

Решение квадратных уравнений
Нужно написать программу решения набора квадратных уравнений через структуры.

Решение квадратных уравнений
я в 1с полный ноль помогите написать прогу которая выводит решение квадратных уравнений Ax2 + Bx + C = 0, где A, B и C — заданные...

23
0 / 0 / 0
Регистрация: 23.01.2019
Сообщений: 28
27.01.2019, 19:10  [ТС]
Студворк — интернет-сервис помощи студентам
Спасибо большое за пояснение. Да, действительно я еще учусь в школе и до изучения высшей математики нам еще как Луны пешком) Еще раз огромное спасибо.
0
Модератор
Эксперт по электронике
 Аватар для ФедосеевПавел
8674 / 4511 / 1670
Регистрация: 01.02.2015
Сообщений: 13,942
Записей в блоге: 13
27.01.2019, 19:52
https://ru.wikipedia.org/wiki/Мнимая_единица
https://ru.wikipedia.org/wiki/Комплексное_число

В общем, учитель математики, знает, но не рассказывает, что из отрицательного числа можно извлечь квадратный корень. Можете порасспрашивать его.

Добавлено через 4 минуты
В практическом отношении - вы можете изучить материал, но в программе пропускать вывод комплексных корней, выводить:

Уравнение имеет один действительный корень
x1 = -1,65062919143939

Добавлено через 37 минут
Возможно, есть смысл согласовать алгоритм с преподавателем.
Всё-таки, решение по формуле Виета, требует знаний сильно сверх (или более поздней) школьной программы.
Если ограничится только целочисленными коэффициентами, то можно воспользоваться уже методом перебора делителей свободного коэффициента и все вычисления проводить на целых числах - как вы и пробовали делать в исходном коде.

Это лучше обсудить с преподавателем.
0
0 / 0 / 0
Регистрация: 23.01.2019
Сообщений: 28
27.01.2019, 19:53  [ТС]
Цитата Сообщение от ФедосеевПавел Посмотреть сообщение
Возможно, есть смысл согласовать алгоритм с преподавателем.
Всё-таки, решение по формуле Виета, требует знаний сильно сверх (или более поздней) школьной программы.
Если ограничится только целочисленными коэффициентами, то можно воспользоваться уже методом перебора делителей свободного коэффициента и все вычисления проводить на целых числах - как вы и пробовали делать в исходном коде.
Это лучше обсудить с преподавателем.
Спасибо, так и сделаю
0
Модератор
Эксперт по электронике
 Аватар для ФедосеевПавел
8674 / 4511 / 1670
Регистрация: 01.02.2015
Сообщений: 13,942
Записей в блоге: 13
27.01.2019, 20:02
Что-то типа
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
program test;
 
  function f(a, b, c, d, x: integer): integer;
  begin
    f := ((a * x + b) * x + c) * x + d;
  end;
 
var
  a, b, c, d: integer;
  x: integer;
begin
  a := 1;
  b := -12;
  c := 44;
  d := -48;
 
  for x := 1 to abs(d) do
    if d mod x = 0 then
    begin
      if f(a, b, c, d, x) = 0 then
        writeln('x=', x)
      else if f(a, b, c, d, -x) = 0 then
        writeln('x=', -x);
    end;
end.
Добавлено через 1 минуту
Это проверка целочисленных делителей свободного члена на равенство корню уравнения.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
27.01.2019, 20:02

Решение квадратных уравнений
задание написать рогу решения квадратного уравнения вида ax*x+b*x+c=0 в прге как бы ввод коэффицентов a,b,c доложен быть вне функции ...

Решение квадратных уравнений
Требуется написать программу, которая решает введённое из файла квадратное уравнение ax^2+bx+c и добавляет в конец этого же файла корни...

Решение квадратных уравнений
Решил попробовать создать программу для решения квадратных уравнений, но не получилось, можете объяснить ошибки? &lt;html&gt; ...

Решение квадратных уравнений
Создать программу, которая будет решать квадратное уравнение

Решение квадратных уравнений
не очень понятно, что делать с этими квадратными уравнениями. и если К не 1,2 или 3, то решений нет?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
24
Ответ Создать тему
Новые блоги и статьи
Нейтральные знания ..., ... чистая наука. Пока что-то проходит модерацию на Хабре, стоит развить мысль ...
Hrethgir 20.07.2026
К таким радикальным взглядам я конечно в той публикации не приходил, но чтобы скоротать вечер, решил углубиться немного. 1. Почему показания термометра заряжены целью? Цель заложена в самом. . .
Установка нескольких штампов электронной подписи в строго определенных местах файла docx
ВладимирСамохин 19.07.2026
(В!) Работа с Электронной подписью - это неотъемлемая часть современного документооборота. Но что делать, если нужно поставить несколько штампов электронной подписи в строго определенных местах. . .
сукцессия 35. Научная статья о проделанной работе
anaschu 19.07.2026
Написал в формате латекс и пдф
Вангую, что это не пройдёт модерацию, и на неделе я запущу свой сервер.
Hrethgir 19.07.2026
Эта публикация сейчас в песочнице и ждёт приглашения. https:/ / habr. com/ ru/ sandbox/ 295048/ По ссылке 403. Не очень информативно такую ссылку постить. Запись от Usaga размещена Сегодня в 06:46 . . .
сукцессия 33. открытые вопросы от клауде
anaschu 19.07.2026
"Что накопилось за эту часть А — тринадцать правок, из которых шесть пришли из ваших вопросов и каждая оказалась реальной ошибкой, а не калибровкой: односторонний симбиоз, отсутствующий листопад,. . .
32 сукцессия
anaschu 19.07.2026
сукцессия 28‑мерное ядро стабилизировано Коллеги, фиксирую разбор инженерных правок и их изоморфную проекцию на экономику, меметику и половой отбор. Модель теперь не «подкручивает» сходимость —. . .
сукцессия 31: модель микоризы - это модель ещё нескольких явлений, социальных и экономических
anaschu 18.07.2026
Теория «Всего»: апдейт v1. 1. 2 — 28‑мерное ядро стабилизировано Коллеги, фиксирую разбор инженерных правок и их изоморфную проекцию на экономику, меметику и половой отбор. Модель теперь не. . .
сукцессия 30. Массив проверяющих друг друга моделей
anaschu 18.07.2026
Архитектура сети взаимопроверяющих моделей микоризной сукцессии (v2. 0) Развитие тензорного ОДУ-ядра и создание кросс-платформенного калибровочного полигона Уважаемые коллеги! В продолжение. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru