IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

 
 Ответить  Открыть новую тему 
> Решение неравенств, ... любых, квадратных или нет...
сообщение
Сообщение #1


Новичок
*

Группа: Пользователи
Сообщений: 23
Пол: Мужской

Репутация: -  0  +


Здравствуйте.
Хотел задать вопрос:
Есть следующе (стандартное уравнение):
ax^2+bx+c>=0
т.е. ур-е стандартного квадртаного уравнения.
Моя задача такова:
найти решения неравенства,
и просто их вывести.
Написал я следующую фенечку smile.gif:
Код

program neravenstvo;
var
   a, b, c, d, x1, x2, z: real;
begin
     write('Введите a: ');
     readln(a);
     write('Введите b: ');
     readln(b);
     write('Введите c: ');
     readln(c);
     d:=sqr(b)-4*a*c;
     if d<0 then
        begin
             writeln('хех... решений нетУ :(');
        end
       else if d>0 then
            begin
                 x1:=(-b+sqrt(d))/2*a;
                 x2:=(-b-sqrt(d))/2*a;
                 writeln;
                 writeln('Возрадуемся же... у меня 2 решения :)');
                 writeln('x1 = ',x1:2:5,' x2 = ',x2:2:5);
                 writeln;
            end
              else if d=0 then
                   begin
                   x1:=-b/(2*a);
                   writeln;
                   writeln('Решение одно');
                   writeln('x = ',x1:2:5);
                   writeln;
                   end;
          readln;
end.


Ну так вот, после показания этого ответа преподавателю,
она сказала, что все хорошо, но надо прописать еще кучу случаев, когда
выражение может получиться, а когда и вовсе нет.
То есть например к каждому случаю разобрать когда a>0
a=0 b<0 и т.п.
Ведь неравенство может быть и квадратным, а может и наоборот, ведь все зависит
от введенных человеком данных.
Вот я и хотел спросить, уважаемые господа,
какие случаи вообще могут быть?
Возможно, об этом можно почитать?
Я уже скачал 2 презентации, но обе они про квадратные уравнения,
а "смеси", к сожалению, нет нигде sad.gif((
Говорят, что возможных случаев около 14 или 20.
Если кто сможет помочь, отвалю бАлшое спасибо smile.gif))
Серега.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Пионер
**

Группа: Пользователи
Сообщений: 136
Пол: Мужской
Реальное имя: Александр

Репутация: -  -2  +


Позволь...
Ты говоришь:
Цитата

Есть следующе (стандартное уравнение):
ax^2+bx+c>=0

Это не уравнение, это неравенство!
Потом ты просишь:
Цитата

найти решения неравенства

А выкладываешь программу, которая все же находит КОРНИ УРАВНЕНИЯ, а не РЕШЕНИЕ НЕРАВЕНСТВА! Так что решаем то - уравнение или неравенство?


--------------------
Старайтесь восполнять пробелы в области незнания! ;-D
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Гуру
*****

Группа: Пользователи
Сообщений: 1 117
Пол: Мужской
Реальное имя: Богдан

Репутация: -  11  +


Вот все возможные случаи, и почему-то их всего лишь 6 yes2.gif ,а не 14 blink.gif
if (a=0) and (b<>0) then линейное уровнение(x:= -c/b)
if (b=0) and (a=0) and (c<>0) then нету решений
if (b=0) and (a=0) and (c=0) then бесконечное число решений
D>0 (d - дискременант) - решаем кваратное уровнение(2 ответа)
D=0 (1 ответ)
D<0 нету решений

Уровнение вида a*x*x+b*x+c=0
Вроде все назвал...

Решение для уровнения

Сообщение отредактировано: Bokul -


--------------------
Лао-Цзы :
Знать много и не выставлять себя знающим есть нравственная высота. Знать мало и выставлять себя знающим есть болезнь. Только понимая эту болезнь, мы можем избавиться от нее.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Perl. Just code it!
******

Группа: Пользователи
Сообщений: 4 100
Пол: Мужской
Реальное имя: Андрей

Репутация: -  44  +


И зачем нужны эти проверки ? Скажи своему преподу чтобы освежил он в памяти математи за начальный курс средней школы ...

uses crt;
var
a,b,c,D,x1,x2 : single;

begin

write('a = '); readln(a);
write('b = '); readln(b);
write('c = '); readln©;

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

if D > 0 then begin

x1 := (-b + sqrt(D)) / (2 * a);
x2 := (-b - sqrt(D)) / (2 * a);

writeln('x1 = ', x1:3:1);
writeln('x2 = ', x2:3:1);
end
else if D = 0 then begin
x1 := -b / (2 * a);
writeln('x1 = ',x1:3:1);
end
else writeln('D < 0');
end.


--------------------
perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Новичок
*

Группа: Пользователи
Сообщений: 23
Пол: Мужской

Репутация: -  0  +


Нет, на самом деле проверки нужны, и обязательно.
Да, ошибся, это неравенство, но, если моя память не спит с другим,
то неравенства такого рода решаются методом приравнивания их к нулю smile.gif
Всем спасибо, очень долго работал,
проверяйте, критикуйте smile.gif
Код

program neravenstvo;

var
   a, b, c, d, x1, x2, z: real;
begin
     write('‚ўҐ¤ЁвҐ a: ');
     readln(a);
     write('‚ўҐ¤ЁвҐ b: ');
     readln(b);
     write('‚ўҐ¤ЁвҐ c: ');
     readln(c);

     if a<>0 then
       begin
         if (b=0) AND (c=0) then
           begin
             if (a<0) then writeln('x<=0')
             else writeln('x>=0')
           end
         else if (b=0) AND (c<>0) then
           begin
             if ((a<0) AND (c<0)) OR ((a>0) AND (c>0)) then
               begin
                 writeln('ЌҐв аҐиҐ­Ё©')
               end
             else if (a<0) AND (c>0) then writeln('x^2<=', ((c/a)*(-1)):0:3)
             else if (a>0) AND (c<0) then writeln('x1=', ((c/a)*(-1)):0:3, ' x2=', (c/a):0:3)
           end
         else if (b<>0) AND (c=0) then
           begin
             if (a>0) AND (b>0) then writeln('x1>=0 Ё x2>=-', (b/a):0:3)
             else if (a>0) AND (b<0) then writeln('x1>=0 Ё x2>=', ((b/a)*(-1)):0:3)
             else if (a<0) AND (b>0) then writeln('x1>=0 Ё x2<=', ((b/a)*(-1)):0:3)
             else if (a<0) AND (b<0) then writeln('x1>=0 Ё x2<=-', (b/a):0:3)
           end
         else if (b<>0) AND (c<>0) then
           begin
             d:=sqr(b)-4*a*c;
             if (d<0) then writeln('“а ў­Ґ­ЁҐ ­Ґ Ё¬ҐҐв аҐиҐ­Ё©, в Є Є Є D<0')
             else if (d>0) then
                  begin
                  x1:=((-b)+sqrt(d))/(2*a);
                  x2:=((-b)-sqrt(d))/(2*a);
                  writeln('“а ў­Ґ­ЁҐ Ё¬ҐҐв 2 Є®а­п: x1=', x1:0:3, ' Ё x2=',x2:0:3)
                  end
             else if (d=0) then writeln('“а ў­Ґ­ЁҐ Ё¬ҐҐв ®¤Ё­ Є®аҐ­м: x=', ((-b)/(2*a)):0:3)
           end


       end
     else if a=0 then
       begin
         if (b<>0) AND (c<>0) then
           begin
             if (b>0) AND (c>0) then writeln('x>=-', (c/b):0:3)
             else if (b>0) AND (c<0) then writeln('x>=', ((c/b)*(-1)):0:3)
             else if (b<0) AND (c>0) then writeln('x<=', ((c/b)*(-1)):0:3)
             else if (b<0) AND (c<0) then writeln('x<=-', (c/b):0:3)
           end
         else if (b<>0) AND (c=0) then writeln('x>=0')
         else if (b=0) AND (c<>0) then writeln('Ћвбгвбвўгов a Ё b')
         else if (b=0) AND (c=0) then writeln('‚л ­Ґ ўўҐ«Ё §­ зҐ­Ёп ўбҐе ЇҐаҐ¬Ґ­­ле!')
       end;

     readln;
end.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 11.09.2025 8:17
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name