Форум программистов, компьютерный форум, киберфорум
Pascal ABC
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 0
Регистрация: 21.06.2014
Сообщений: 11

Программа неправильно решает уравнение

21.06.2014, 22:29. Показов 852. Ответов 0
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Она решает уравнение вида x ^ 3 + ax ^ 2 + bx + c = 0 но дает непонятную ответ может исправить чтобы все давало правельно и если можно переделать ее на 4 коэффициента
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
uses MyCub;
 
var
  a, b, c:double;
  f:byte;
begin
  repeat
    writeln('Vvedite 1 dlya resh. uravn ili 0 dlya vihoda');
    readln(f);
    if f=1 then
    begin
      writeln('Vvedite A, B, C');
      readln(a, b, c);
      SolveCub(a, b, c);
    end;
  until(f<>1);
end.
Добавлено через 4 минуты
модуль к программе

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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
unit MyCub;
 
interface
 
procedure SolveCub(a, b, c:real);
 
implementation
 
function sgn(x:real):integer;
begin
  if x>0 then sgn:=1;
  if x<0 then sgn:=-1;
  if x=0 then sgn:=0;
end;
 
procedure SolveCub(a, b, c:real);
var
  q, p:real;       //коеф. приведен. уравнения
  d:real;          //дискриминант прив. уравн.
  x1, x2, x3:real; //корни уравн
  y1, y2:real;     //вспогательные переменные для вычисления дейст. и мнимой части
  Re, Im:real;     //действит. и мнимая часть комплекного корня
  F:real;          //аргумент угла
begin
  p:=(3*b-a*a)/3;
  q:=(2*a*a*a-9*a*b+27*c)/27;
  d:=(q*q)/4+(p*p*p)/27;
  y1:=0; y2:=0; F:=0;
  if d>0 then
  begin
    y1:=sgn(-q/2+Sqrt(d))*exp(ln(abs(-q/2+Sqrt(d)))/3);
    y2:=sgn(-q/2-Sqrt(d))*exp(ln(abs(-q/2-Sqrt(d)))/3);
    
    x1:=y1+y2-a/3;
    Re:=-(y1+y2)/2-a/3;
    Im:=(y1-y2)*Sqrt(3)/2;
    
    writeln('x1 = ', x1:6:5); 
    writeln('x2 = ', Re:6:5,' + i*', Im:6:5);
    writeln('x2 = ', Re:6:5,' - i*', Im:6:5);
  end;
  
  if d<0 then
  begin
    if q<0 then F:=Arctan(-2*Sqrt(-d)/q);
    if q>0 then F:=Arctan(-2*Sqrt(-d)/q)+Pi;
    if q=0 then F:=Pi/2;
    
    x1:=2*Sqrt(-p/3)*Cos(F/3)-a/3;
    x2:=2*Sqrt(-p/3)*Cos((F+2*Pi)/3)-a/3;
    x3:=2*Sqrt(-p/3)*Cos((F+4*Pi)/3)-a/3;
    if q=0 then x3:=-a/3;
    
    writeln('x1 = ', x1:6:5);
    writeln('x2 = ', x2:6:5);
    writeln('x3 = ', x3:6:5);
  end;
  
  if d=0 then
  begin
    y1:=sgn(-q/2)*exp(ln(abs(-q/2))/3);
    
    x1:=2*y1-a/3;
    x2:=-y1-a/3;
    x3:=-y1-a/3;
    
    writeln('x1 = ', x1:6:5);
    writeln('x2 = ', x2:6:5);
    writeln('x3 = ', x3:6:5);
  end;
end;
 
end.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
21.06.2014, 22:29
Ответы с готовыми решениями:

Разработать программу, которая решает квадратное уравнение. a, b и c вводятся с клавиатуры
Разработать программу, которая решает квадратное уравнение. a, b и c вводятся с клавиатуры

Написать программу на основе класса QDialog, которая решает квадратное уравнение
Помогите написать программу на основе класса QDialog, которая решает квадратное уравнение вида 𝑎 ⋅ 𝑥^2 + 𝑏...

Программа решает уравнение неправильно
var a,b,x:real; begin readln(a,b,x); if a = 0 then if b = 0 then write ('любое число') else write ('нет решений') else if b...

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
21.06.2014, 22:29
Помогаю со студенческими работами здесь

Написать программу, которая решает уравнение
с While...Do Написать программу которая решает уравнение kx+b=0.Пользователь выбирает сколько уравнений решать и вводит числа k и b.

Какую задачу решает программа
Какую задачу решает программа const nn=100; Var a:array (1..nn,1..nn); i,j,n:integer; begin readln(n); for i:=1 to n do for...

Решает ли эта программа данную задачу
Есть задача: Методом Эйлера и методом Рунге-Кутта с точностью 0,001 решить дифференциальное уравнение вида y'=f(x,y) на интервале ...

Сформулировать условие задачи, которую решает программа
сформулировать условие задачи, которую решает данная программа. Type LinMass = array of Integer; Var A : LinMass; N, i, j : Integer; ...

Сформулировать условие задачи, которую решает данная программа
Сформулировать условие задачи, которую решает данная программа. Var n: integer; mi, ma: 0..9; Begin ...


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

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Новые блоги и статьи
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Символьное дифференцирование
igorrr37 13.02.2026
/ * Программа принимает математическое выражение в виде строки и выдаёт его производную в виде строки и вычисляет значение производной при заданном х Логарифм записывается как: (x-2)log(x^2+2) -. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru