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

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

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

> квадратное уравнение с некомплексными корнями: не, всё тактривиальнокаккажецанапервыйвзгляд
сообщение
Сообщение #1


Гость






Здорово чуваки!
Вобщем такой трабл. Инфа в инсте. Прогу на Паскале надо написать. Корни квадратного уравнения (некомплексные). И вроде всё элементарно:
uses crt;
var
i:integer;
a,b,c,d,x1,x2,p1,p2,t,y,u:real;
r:real;
begin
clrscr;
write('a= ');
read(a);
write('b= ');
read(b);
write('c= ');
read©;
If (a=0) then
begin
If (b=0) then
begin
If (c=0) then
writeln('infinitnoye mnojestvo')
else
writeln('korney net');
end
else begin
x1:=-c/b;
writeln('koren ',x1:4:4);
p1:=a*x1*x1+b*x1 + c;
writeln('proverca: ax1^2+bx1+c= ',p1);
end;
end
else
begin
d:=(sqr(b)-4*a*c);
t:=sqrt(D);
If (d<0) then
writeln('real korney net')
else
begin
writeln;
writeln;
x1:=(- b - t ) / (2*a);
x2:=(- b + t ) / (2*a);
writeln('koren1= ',x1);
writeln('koren2= ',x2);
p1:=a*x1*x1 + b*x1 + c;
writeln('proverca1: ax1^2+bx1+c= ',p1);
p2:=a*x2*x2 + b*x2 + c;
writeln('proverca2: ax2^2+bx2+c= ',p2);
end;
end;
readln;
readln;
end.


<прога одногрупников>
Но препод при*лся. Вводит в качестве b число порядка (10^4)-10^6; вместо с - порядка (10^-4)-(10^-6); ну и а порядка 10^1. В результате конечно при подстановке получившихся корней в исходное уравнение конечно же выражение становится неравным нулю. Ну так вот он заставляет нас посчитать погрешность.

М
Тегами пользуйся ...



Сообщение отредактировано: volvo -
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
сообщение
Сообщение #2


Гость






koSTIK, вообще-то сравнивать 2 числа вещественного типа через "=" не принято... Вот эта программа уже не будет вылетать при вводе таких значений, какие ты привел (твоя - вылетала):

{$n+}
uses crt;
const
eps = 10E-9;

var
i:integer;
a,b,c,d,x1,x2,p1,p2,t,y,u:double;
r:real;
begin
clrscr;
write('a= '); readln( a );
write('b= '); readln( b );
write('c= '); readln( c );

if abs(a) < eps then begin
if abs(b) < eps then begin
if abs© < eps then
writeln('infinitnoye mnojestvo')
else
writeln('korney net');
end
else begin
x1:=-c/b;
writeln('koren ',x1:4:4);
p1:=a*x1*x1+b*x1 + c;
writeln('proverca: ax1^2+bx1+c= ',p1);
end;
end
else begin
d:=(sqr(b)-4*a*c);
t:=sqrt(D);
If (d<0) then writeln('real korney net')
else begin
writeln;
writeln;
x1:=(- b - t ) / (2*a);
x2:=(- b + t ) / (2*a);
writeln('koren1= ',x1);
writeln('koren2= ',x2);
p1:=a*x1*x1 + b*x1 + c;
writeln('proverca1: ax1^2+bx1+c= ',p1);
p2:=a*x2*x2 + b*x2 + c;
writeln('proverca2: ax2^2+bx2+c= ',p2);
end;
end;
readln;
readln;
end.


P.S.
Цитата
он заставляет нас посчитать погрешность

Погрешность чего?
 К началу страницы 
+ Ответить 

Сообщений в этой теме


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

 





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