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

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

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

 
 Ответить  Открыть новую тему 
> Вычисление дискриминанта
сообщение
Сообщение #1


Новичок
*

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

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


эх я новичок и почти не чего не знаю, помогите плс. здесь логическая ошибка, но какая!?
program kvadratnoe;
var
a,b,c,x1,x2,d:real;
begin
write('Введите первый коеффициент а: ');
read(a);
write('Введите второй коеффициент b: ');
read(b);
write('Введите свободеый член c: ');
read©;
d:=sqr(a)-4*a*c;
if d>0 then
begin
x1:=(-b+sqrt(d))/a;
x2:=(-b-sqrt(d))/a;
writeln('Дискриминант больше нуля');
writeln('x1= ',x1);
writeln('x2= ',x2);
end
else
begin
if d=0 then
begin
writeln('Дискриминант равен нулю');
x1:=(-b+sqrt(d))/2;
writeln('x= ',x1);
end
else
begin
writeln('Дискриминант меньше нуля, уравнение корней не имеет.');
end;
end;
end.


Сообщение отредактировано: Lapp -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


голодный(
*

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

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


поправил

program kvadratnoe;
var
a,b,c,x1,x2,d:real;
begin
write('Введите первый коеффициент а: ');
read(a);
write('Введите второй коеффициент b: ');
read(b);
write('Введите свободеый член c: ');
read©;
d:=b*b-4*a*c;
if d>0 then
begin
x1:=(-b+sqrt(d))/2a;
x2:=(-b-sqrt(d))/2a;
writeln('Дискриминант больше нуля');
writeln('x1= ',x1);
writeln('x2= ',x2);
end
else
begin
if d=0 then
begin
writeln('Дискриминант равен нулю');
x1:=(-b)/2a;
writeln('x= ',x1);
end
else
begin
writeln('Дискриминант меньше нуля, уравнение корней не имеет.');
end;
end;
end.


не так пишешь формулу дискриминанта, и корней квадратного уравнения
--------------------------------
да и задание не мешает писать)

Сообщение отредактировано: Sum42 -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Злостный любитель
*****

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

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


Sum42, только вместо 2a надо писать (2*a), а то компилятор не поймёт.
krofik, ты бы внимательно посмотрел, правильно ли переписал формулу из учебника.


--------------------
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


голодный(
*

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

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


Цитата
Sum42, только вместо 2a надо писать (2*a), а то компилятор не поймёт.

да, конечно, извиняюсь smile.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Новичок
*

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

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



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


Новичок
*

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

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



program kvadratnoe;
var
a,b,c,x1,x2,d:real;
begin
write('Введите первый коеффициент а: ');
read(a);
write('Введите второй коеффициент b: ');
read(b);
write('Введите свободеый член c: ');
read©;
d:=sqr(b)-4*a*c;
if d>0 then
begin
x1:=(-b+sqrt(d))/2*a;
x2:=(-b-sqrt(d))/2*a;
writeln('Дискриминант больше нуля');
writeln('x1= ',x1);
writeln('x2= ',x2);
end
else
begin
if d=0 then
begin
writeln('Дискриминант равен нулю');
x1:=(-b)/2*a;
writeln('x= ',x1);
end
else
begin
writeln('Дискриминант меньше нуля, уравнение корней не имеет.');
end;
end;
end.


вот так короче окончательный вариант.
одноклассники, можете списывать.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #7


Злостный любитель
*****

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

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


Ну введи a=2, b=0, c=-2.



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


--------------------
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #8


Новичок
*

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

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


Цитата(TarasBer @ 7.11.2010 19:40) *

Ну введи a=2, b=0, c=-2.

x1=4
х2=-4
а чо!? зачем?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #9


Пионер
**

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

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


Цитата(krofik @ 8.11.2010 17:08) *

x1=4
х2=-4
а чо!? зачем?


ну так не правильно же, должно быть Х1=1 и Х2=-1. Ищите ошибку

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


--------------------
From ZERO to HERO
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #10


Новичок
*

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

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


Цитата(Freedom @ 8.11.2010 15:20) *

ну так не правильно же, должно быть Х1=1 и Х2=-1. Ищите ошибку

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


Новичок
*

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

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


Цитата(TarasBer @ 7.11.2010 19:40) *

Ну введи a=2, b=0, c=-2.

все ошибка была найдена в строке x:=(-b+sqrt(d))/(2*a); не хватало вторых скобок для 2*а.
окончательный вариант ещё чуть более укороченный

program kvadratnoe;
var
a,b,c,x1,x2,d:real;
begin
write('Введите первый коеффициент а: ');
read(a);
write('Введите второй коеффициент b: ');
read(b);
write('Введите свободеый член c: ');
read©;
d:=sqr(b)-4*a*c;
writeln('Дискриминант=',d);
if d>0 then
begin
x1:=(-b+sqrt(d))/(2*a);
x2:=(-b-sqrt(d))/(2*a);
writeln('Дискриминант больше нуля');
writeln('x1= ',x1);
writeln('x2= ',x2);
end
else
begin
if d=0 then
begin
writeln('Дискриминант равен нулю');
x1:=(-b)/2*a;
writeln('x= ',x1);
end
else writeln('Дискриминант меньше нуля, уравнение корней не имеет.');
end;
end.


Сообщение отредактировано: krofik -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #12


Пионер
**

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

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


А если ввести a=2 b=4 c=2 тогда у вас ответ выходит х=-4, хотя должно быть х=-1. Нужно повнимательнее быть, ошибка у вас в моменте когда вы рассматриваете дискриминант=0


--------------------
From ZERO to HERO
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #13


Новичок
*

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

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


Цитата(Freedom @ 8.11.2010 19:33) *

А если ввести a=2 b=4 c=2 тогда у вас ответ выходит х=-4, хотя должно быть х=-1. Нужно повнимательнее быть, ошибка у вас в моменте когда вы рассматриваете дискриминант=0

хух сколько же можно делать в одной программе столько одинаковых ошибок. вот такперь так в строке x1:=(-b)/(2*a); на 2*а ставим скобки и все снова работает.
окончательно:

program kvadratnoe;
var
a,b,c,x1,x2,d:real;
begin
write('Введите первый коеффициент а: ');
read(a);
write('Введите второй коеффициент b: ');
read(b);
write('Введите свободеый член c: ');
read©;
d:=sqr(b)-4*a*c;
writeln('Дискриминант=',d);
if d>0 then
begin
x1:=(-b+sqrt(d))/(2*a);
x2:=(-b-sqrt(d))/(2*a);
writeln('Дискриминант больше нуля');
writeln('x1= ',x1);
writeln('x2= ',x2);
end
else
begin
if d=0 then
begin
writeln('Дискриминант равен нулю');
x1:=(-b)/(2*a);
writeln('x= ',x1);
end
else writeln('Дискриминант меньше нуля, уравнение корней не имеет.');
end;
end.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

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

 





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