![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() ![]() |
![]() |
krofik |
![]()
Сообщение
#1
|
Новичок ![]() Группа: Пользователи Сообщений: 14 Пол: Мужской Репутация: ![]() ![]() ![]() |
эх я новичок и почти не чего не знаю, помогите плс. здесь логическая ошибка, но какая!?
program kvadratnoe;
var
a,b,c,x1,x2,d:real;
begin
write('Введите первый коеффициент а: ');
read(a);
write('Введите второй коеффициент b: ');
read(b);
write('Введите свободеый член c: ');
read(c);
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 - 6.11.2010 12:16 |
Sum42 |
![]()
Сообщение
#2
|
![]() голодный( ![]() Группа: Пользователи Сообщений: 14 Пол: Мужской Репутация: ![]() ![]() ![]() |
поправил
program kvadratnoe;
var
a,b,c,x1,x2,d:real;
begin
write('Введите первый коеффициент а: ');
read(a);
write('Введите второй коеффициент b: ');
read(b);
write('Введите свободеый член c: ');
read(c);
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 - 5.11.2010 15:07 |
TarasBer |
![]()
Сообщение
#3
|
![]() Злостный любитель ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 755 Пол: Мужской Репутация: ![]() ![]() ![]() |
Sum42, только вместо 2a надо писать (2*a), а то компилятор не поймёт.
krofik, ты бы внимательно посмотрел, правильно ли переписал формулу из учебника. -------------------- |
Sum42 |
![]()
Сообщение
#4
|
![]() голодный( ![]() Группа: Пользователи Сообщений: 14 Пол: Мужской Репутация: ![]() ![]() ![]() |
Цитата Sum42, только вместо 2a надо писать (2*a), а то компилятор не поймёт. да, конечно, извиняюсь ![]() |
krofik |
![]()
Сообщение
#5
|
Новичок ![]() Группа: Пользователи Сообщений: 14 Пол: Мужской Репутация: ![]() ![]() ![]() |
спасибо больше я бы сам не додумался в книгу за формулой заглянуть) это у меня такая домашка по инфе перепала. так что ещё увидимся всем спасибо! |
krofik |
![]()
Сообщение
#6
|
Новичок ![]() Группа: Пользователи Сообщений: 14 Пол: Мужской Репутация: ![]() ![]() ![]() |
program kvadratnoe;
var
a,b,c,x1,x2,d:real;
begin
write('Введите первый коеффициент а: ');
read(a);
write('Введите второй коеффициент b: ');
read(b);
write('Введите свободеый член c: ');
read(c);
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.
вот так короче окончательный вариант. одноклассники, можете списывать. |
TarasBer |
![]()
Сообщение
#7
|
![]() Злостный любитель ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 755 Пол: Мужской Репутация: ![]() ![]() ![]() |
Ну введи a=2, b=0, c=-2.
Сообщение отредактировано: TarasBer - 7.11.2010 20:41 -------------------- |
krofik |
![]()
Сообщение
#8
|
Новичок ![]() Группа: Пользователи Сообщений: 14 Пол: Мужской Репутация: ![]() ![]() ![]() |
|
Freedom |
![]()
Сообщение
#9
|
![]() Пионер ![]() ![]() Группа: Пользователи Сообщений: 113 Пол: Мужской Реальное имя: Надир Репутация: ![]() ![]() ![]() |
x1=4 х2=-4 а чо!? зачем? ну так не правильно же, должно быть Х1=1 и Х2=-1. Ищите ошибку Сообщение отредактировано: Freedom - 8.11.2010 16:20 -------------------- From ZERO to HERO
|
krofik |
![]()
Сообщение
#10
|
Новичок ![]() Группа: Пользователи Сообщений: 14 Пол: Мужской Репутация: ![]() ![]() ![]() |
|
krofik |
![]()
Сообщение
#11
|
Новичок ![]() Группа: Пользователи Сообщений: 14 Пол: Мужской Репутация: ![]() ![]() ![]() |
Ну введи 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(c);
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 - 8.11.2010 20:12 |
Freedom |
![]()
Сообщение
#12
|
![]() Пионер ![]() ![]() Группа: Пользователи Сообщений: 113 Пол: Мужской Реальное имя: Надир Репутация: ![]() ![]() ![]() |
А если ввести a=2 b=4 c=2 тогда у вас ответ выходит х=-4, хотя должно быть х=-1. Нужно повнимательнее быть, ошибка у вас в моменте когда вы рассматриваете дискриминант=0
-------------------- From ZERO to HERO
|
krofik |
![]()
Сообщение
#13
|
Новичок ![]() Группа: Пользователи Сообщений: 14 Пол: Мужской Репутация: ![]() ![]() ![]() |
А если ввести 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(c);
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.
|
![]() ![]() |
![]() |
Текстовая версия | 20.07.2025 3:34 |