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

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

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

> Решение квадратного ур-я Помогите, необходима помощь
сообщение
Сообщение #1





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

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


Всем здрасьте)
от меня требуется решить квадратное уравнение со следующим условием
1)в действительных числах
2) если корня два то вывести их в порядке возрастания

и главное:
На входе три числа: a,b,c

Выдать
-1 если решений уравнения бесконечно много
0 если решений нет
1 если уравнение стало линейным выдать х
2 если квадратное уравнение с двумя корнями, выдат х1 и х2 по возрастанию
3 если у квадратного ур-я крвтные корни и выдать х

числа -1; 0; 1; 2; 3; являются кодами их нужно вывести вместе с корнями или же без таковых.

мною был написан следующий код

Var
a,b,c,x,x1,d:Real;
Begin
Readln(a,b,c);
If a=0 then
Begin
If b=0 then
If c=0 then
Writeln('-1')
else
Writeln('0')
Else
Begin
x:=c/b;
Writeln('0 ',x:0:2);
End;
End;
d:=sqr(b)-4*a*c;
If d>=0 then
Begin
If d=0 then
begin
x:=-b/(2*a);
Writeln('3 ',x:0:2);
end
else
begin
a:=(sqrt(d)-b)/(2*a);
b:=(-sqrt(d)-b)/(2*a);
If a>b then
begin
x:=a;
x1:=b;
end
else
begin
x:=b;
x1:=a;
end;
Writeln('2 ',x:0:2,' ',x1:0:2);
end;
end
Else
Writeln('0');
Readln
End.

но при вводе 0;0;0 вылетает с ошибкой exitcod=207

не могу понять, в чем дело.
Прошу помочь, зараннее благодарен))
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
сообщение
Сообщение #2


Знаток
****

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

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


Если у тебя FPC - добавь в начале программы строки
uses
HeapTrc, LineInfo; {для отладки}

Это даст вывод в консольном окне номера строки с ошибкой.
Далее - прочти в "user.pdf" описание ошибки с кодом 200.
Совмести мысленно текст строки и описание ошибки.

И в результате медитаций увидишь, что всему виной экономия на объявлении переменных (или неверный способ их использования - можно корни записывать сразу в x и x1, а потом сравнить и при необходимости поменять местами).
        x := (sqrt(d)-b)/(2*a);
x1 := (-sqrt(d)-b)/(2*a);
If x1>x Then
Begin
d := x; \
x := x1; |------> Swap(x, x1);
x1:=d; /
End;
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

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


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

 





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