Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 27.04.2009, 14:40   #1
StakanpORTvejna
Пользователь
 
Регистрация: 31.08.2007
Сообщений: 37
По умолчанию Алгоритм решения квадратного неравенства?

Помнит кто со школы как решать такие неравенства?В нете только нашёл для вида F(х)>0."
Если дискриминант больше нуля, то x от минус бесконечности до меньшего корня, при котором неравенство равно нулю.
Если дискриминант равен нулю, то х любое, кроме корня при котором обнуляется неравенство.
Если дискриминант меньше нуля, то неравенство неверно при любом х."

А как для F(х)<0 F(х)=>0 F(х)>=0??
StakanpORTvejna вне форума Ответить с цитированием
Старый 27.04.2009, 14:54   #2
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Оно?
Код:
Для F(x)<0:
D > 0,  x = (x1,x2)
D = 0,  x != x12
D < 0,  решений нет
-------------------
F(x) >=0:
D > 0,  x = [x1,x2]
D = 0,  x - любое
D < 0,  решений нет
-------------------
А что такое
Цитата:
F(х)=>0
F(x) стремится к 0?
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 27.04.2009, 14:58   #3
StakanpORTvejna
Пользователь
 
Регистрация: 31.08.2007
Сообщений: 37
По умолчанию

Цитата:
Сообщение от Sazary Посмотреть сообщение
Оно?
Код:
Для F(x)<0:
D > 0,  x = (x1,x2)
D = 0,  x != x12
D < 0,  решений нет
-------------------
F(x) >=0:
D > 0,  x = [x1,x2]
D = 0,  x - любое
D < 0,  решений нет
-------------------
А что такое

F(x) стремится к 0?
ой.F<=0
StakanpORTvejna вне форума Ответить с цитированием
Старый 27.04.2009, 15:03   #4
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Цитата:
ой.F<=0
Ну тогда по аналогии:
Код:
D > 0,  x=(-беск.; x1] и [x2; +беск.)
D = 0, x = x12
D < 0, решений нет
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 27.04.2009, 18:59   #5
Gongled
Пользователь
 
Регистрация: 17.02.2009
Сообщений: 78
По умолчанию

На мой взгляд, для решения квадратного неравенства стоит воспользоваться методом интервалов.
Пишу глупости.
Gongled вне форума Ответить с цитированием
Старый 27.04.2009, 19:08   #6
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Цитата:
Сообщение от Gongled
На мой взгляд, для решения квадратного неравенства стоит воспользоваться методом интервалов.
На Паскале?
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 27.04.2009, 19:24   #7
Gongled
Пользователь
 
Регистрация: 17.02.2009
Сообщений: 78
По умолчанию

Цитата:
Сообщение от Sazary Посмотреть сообщение
На Паскале?
Ну, это, конечно, будет трудновато реализовать.
С другой стороны, квадратные неравенства могут быть разными.

Примеры:
sqr(x) + 5*x + 6 >= 0;
Ответом будет являться отрезок [-3; -2];

-sqr(x) - 5*x - 6 >= 0;
Ответом будет объединение двух промежутков [-беск.; -3] + [-2; +беск.];
А не
Цитата:
D > 0, x = [x1,x2]
Как предлагалось выше.

Пусть алгоритм будет не таким громоздким, но опираться на этот метод всё-таки стоит.

P.S. Прошу прощения, если я что-то не понял.
Пишу глупости.
Gongled вне форума Ответить с цитированием
Старый 28.04.2009, 15:59   #8
StakanpORTvejna
Пользователь
 
Регистрация: 31.08.2007
Сообщений: 37
По умолчанию

Действительно..А что сделать когда А меньше 0...То ничего не выводится..Я делаю в дельфи)
Код:
if ComboBox1.Text='>' then  begin


 Label5.Caption:=FloatToStr(a)+'*X^2'+zn +FloatToStr(b)+'*x'+zn1+FloatToStr(c)+' > 0';


D:=sqr(b)-4*a*c;

 if D>0 then
   begin x1:=(-b+sqrt(D))/(2*a);x2:=(-b-sqrt(D))/(2*a);
  if x1>x2 then begin Label6.Caption:='Неравенство верно x<'+ FloatToStrF(x2,ffFixed,0,3)+ '  или при x>'+FloatToStrF(x1,ffFixed,0,3);

  end;
   end
   else if x1<x2 then begin Label6.Caption:='Неравенство верно при x<'+ FloatToStrF(x1,ffFixed,0,3)+ '  или при x>'+FloatToStrF(x2,ffFixed,0,3);

   end
   Else if D=0 then begin
x1:=(-b)/(2*a);
Label6.Caption:='Неравенство верное при любом х кроме x = '+FloatToStrF(x1,ffFixed,0,3);end
else if D<0 then Label6.Caption:='Дискрименант меньше 0,решений нет';

end;
StakanpORTvejna вне форума Ответить с цитированием
Старый 28.04.2009, 16:37   #9
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

StakanpORTvejna, Под данному куску сложно восстановить программу (чтобы проверить). Всякие zn, zn1 неизвестных типов и прочее.

В общем, написал вот.
На форме:
3 TEdit (для a,b и c).
1 TComboBox (для знака). Заполнен знаками (один на строку) '>','>=','<','<=','='
2 TLabel (1-й - для вывода исходного неравенства, 2-й - для результата)
1 TButton (собственно, для расчета)

Вот обработчик кнопки:
Код:
procedure TForm1.Button1Click(Sender: TObject);
var D : real;
a,b,c : real;
x1, x2 : real;
zn : TCaption;
begin
 a := StrToFloat(Edit1.Text);
 b := StrToFloat(Edit2.Text);
 c := StrToFloat(Edit3.Text);
 zn := Combobox1.Text;
 if a<0 then
  begin
  a := -a;
  b := -b;
  c := -c;
  if zn='>' then zn := '<'
  else if zn='<' then zn := '>'
  else if zn='>=' then zn := '<='
  else if zn='<=' then zn := '>=';
  end;

 Label1.Caption := FloatToStrF(a,ffFixed,0,3)+'x^2 + '+FloatToStrF(b,ffFixed,0,3)+'x + '+ FloatToStrF(c,ffFixed,0,3)+' '+zn+' 0';

 D := sqr(b)-4*a*c;
 if D<0 then
  begin
  Label2.Caption := 'Решений нет';
  exit;
  end
 else if D=0 then
  begin
  x1 := -b/(2*a);

 if zn='>' then Label2.Caption := 'x = ('+FloatToStrF(x1,ffFixed,0,3)+'; +беск.)'
 else if zn='<' then Label2.Caption := 'Решений нет'
 else if zn='>=' then Label2.Caption := 'x = ['+FloatToStrF(x1,ffFixed,0,3)+'; +беск.)'
 else if zn='<=' then Label2.Caption := 'x = '+FloatToStrF(x1,ffFixed,0,3)
 else if zn='=' then Label2.Caption := 'x = '+FloatToStrF(x1,ffFixed,0,3);

  end //else if

 else if D>0 then
  begin
 x1 := (-b-sqrt(D))/(2*a);
 x2 := (-b+sqrt(D))/(2*a);
 if zn='>' then Label2.Caption := 'x = (-беск.;'+FloatToStrF(x1,ffFixed,0,3)+') V ('+FloatToStrF(x2,ffFixed,0,3)+';беск.)'
 else if zn='<' then Label2.Caption := 'x = ('+FloatToStrF(x1,ffFixed,0,3)+';'+FloatToStrF(x2,ffFixed,0,3)+')'
 else if zn='>=' then Label2.Caption := 'x = (-беск.;'+FloatToStrF(x1,ffFixed,0,3)+'] V ['+FloatToStrF(x2,ffFixed,0,3)+';беск.)'
 else if zn='<=' then Label2.Caption := 'x = ['+FloatToStrF(x1,ffFixed,0,3)+';'+FloatToStrF(x2,ffFixed,0,3)+']'
 else if zn='=' then Label2.Caption := 'x = {'+FloatToStrF(x1,ffFixed,0,3)+'; '+FloatToStrF(x2,ffFixed,0,3)+'}';


  end; //else if


end;
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Алгоритм решения судоку Alistan Общие вопросы C/C++ 5 27.04.2011 16:00
Общий алгоритм решения графических задач на ДЕЛФИ! sting Помощь студентам 8 06.06.2009 21:31
составить алгоритм решения, реализующий перевод из 10 системы счисления в троичную Машута Паскаль, Turbo Pascal, PascalABC.NET 2 09.12.2008 18:20
Подскажите алгоритм решения Blad47 Паскаль, Turbo Pascal, PascalABC.NET 1 10.11.2008 19:50
составить программу решения би квадратного уровнения. __k1ll3r__ Паскаль, Turbo Pascal, PascalABC.NET 2 19.02.2008 16:26