66 / 66 / 29
Регистрация: 13.02.2011
Сообщений: 392
1

Нахождение корней квадратного уравнения

22.02.2011, 10:49. Показов 8656. Ответов 32
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Всем привет))) вроде легкая задача на нахождение корней в квадратном уравнении ahttps://www.cyberforum.ru/cgi-bin/latex.cgi?{x}^{2}+bx+c=0... Решил-то вроде я ее прaвильно, но тестирующий комплекс вывел Time limit Exceeded... вот код программы... Нужно 1 сек, а у меня 1,498 сек.. Что можно сделать в моем случае?
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
program ur;
var
a,b,c,d,x,x1,x2:real;
begin
assign(input,'input.txt');
reset(input);
assign(output,'output.txt');
rewrite(output);
read(a,b,c);
if (a=0) and (b=0) and (c=0) then writeln(-1);
d:=sqr(b)-4*a*c;
if d<0 then writeln(0);
if d=0 then
begin
writeln(1);
x:=(-b)/(2*a);
writeln(x);
end;
if d>0 then
begin
writeln(2);
x1:=((-b)+sqrt(d))/(2*a);
writeln(x1);
x2:=((-b)-sqrt(d))/(2*a);
writeln(x2);
end;
close(input);
close(output);
end.
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
22.02.2011, 10:49
Ответы с готовыми решениями:

Вычисление корней квадратного уравнения
Ну то есть, вот например есть программа, которая вычисляет корни квадратного уравнения: Program...

Определение количества корней квадратного уравнения
Составить программу определения количества корней квадратного уравнения, а также вычисление их...

Программа вычисления корней квадратного уравнения
Сделал программу по вычислению корней квадратного уравнения,когда ввожу числа a,b,c и жму ввод...

Вычисление корней квадратного уравнения (Ошибка 207)
Доброго времени суток, уважаемые форумчане! Недавно начал изучать паскаль. Как говорится, с нуля....

32
134 / 47 / 11
Регистрация: 27.05.2008
Сообщений: 246
22.02.2011, 11:14 2
Pascal
1
read(a,b,c);
разве читать надо не из файла? а то программа ждет ввода - вот и вылетает за границы допустимого времени.

ну и запись осуществлять в файл.
0
66 / 66 / 29
Регистрация: 13.02.2011
Сообщений: 392
22.02.2011, 11:21  [ТС] 3
Pascal
1
2
3
4
assign(input,'input.txt');
reset(input);
assign(output,'output.txt');
rewrite(output);
так а это я зачем написал))) я всегда и все программы пишу таким образом, и большинство программ удовлетворяли тестирующую систему... вы мне скажите, как рациональнее реализовать решение, чтобы времени программа затрачивала меньше! с остальным-то у меня проблем нет!
0
54 / 54 / 23
Регистрация: 02.02.2011
Сообщений: 436
22.02.2011, 11:23 4
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

Попробуй вот так:
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
var
   a,b,c,x1,x2:real;
 
begin
   assign(input,'input.txt');
   reset(input);
   assign(output,'output.txt');
   rewrite(output);
   read(a,b,c);
   if (a=0) and (b=0) then write(c) else
   begin
      c:=sqr(b)-4*a*c;
      if c<0 then write('Решений нет') else
      begin
         x1:=(-b+sqrt(c))/(2*a);
         x2:=(-b-sqrt(c))/(2*a);
         writeln(x1);
         if x1<>x2 then writeln(x2);
      end;
   end;
end.
1
66 / 66 / 29
Регистрация: 13.02.2011
Сообщений: 392
22.02.2011, 11:25  [ТС] 5
Wanee, большое вам спасибо)))
0
54 / 54 / 23
Регистрация: 02.02.2011
Сообщений: 436
22.02.2011, 11:25 6
Просто_Юлия, ты не прова. У вас записано
Pascal
1
2
3
4
assign(input,'input.txt');
reset(input);
assign(output,'output.txt');
rewrite(output);
чтение и запись всегда будет происходить из файлов
0
66 / 66 / 29
Регистрация: 13.02.2011
Сообщений: 392
22.02.2011, 11:25  [ТС] 7
Wanee, Большое вам спасибо)))
0
54 / 54 / 23
Регистрация: 02.02.2011
Сообщений: 436
22.02.2011, 11:29 8
riv94, обращайся если что
0
66 / 66 / 29
Регистрация: 13.02.2011
Сообщений: 392
22.02.2011, 11:41  [ТС] 9
Wanee, ваше решение мне помогло... но не намного, на 0,003 секунды... я маленько изменил программу, т.к. она чуть не соответствовала моим условиям... вот ее вариант:
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
program ur;
var
a,b,c,x,x1,x2:real;
begin
assign(input,'input.txt');
reset(input);
assign(output,'output.txt');
rewrite(output);
read(a,b,c);
if (a=0) and (b=0) and (c=0) then writeln(-1);
if (a=0) and (b=0) then begin writeln(1); writeln(c); end else begin
c:=sqr(b)-4*a*c;
if c<0 then writeln(0) else begin
writeln(2);
x1:=((-b)+sqrt(c))/(2*a);
writeln(x1);
x2:=((-b)-sqrt(c))/(2*a);
writeln(x2);
end;
end;
close(input);
close(output);
end.
УСЛОВИЯ ЗАДАЧИ
Квадратное уравнение
(Время: 1 сек. Память: 16 Мб Сложность: 28%)

Сложно найти человека, который любит решать однообразные задачки по математике. В последнее время школьникам стало легче, ведь с появлением компьютеров почти в каждой квартире стало существенно проще проверять себя.

Но программы, в которых решение уравнений является стандартной функцией, установлены не везде. Напишите программу, которая сможет решить уравнение

ax2 + bx + c = 0
при заданных коэффициентах a, b и c.

Входные данные


Единственная строка входного файла INPUT.TXT содержит три целых числа a, b и c, каждое из которых не превосходит по модулю 30000. Числа разделяются пробелами.

Выходные данные

На первой строке выходного файла OUTPUT.TXT выведите число корней заданного уравнения. Затем выведите сами корни по одному на строке с ошибкой, не превосходящей 10-4. Если для заданных коэффициентов корней бесконечно много, на единственной строке выходного файла выведите -1.
http://acmp.ru/?main=task&id_task=411 на этой страничке все подробно и с примерами)))
0
Почетный модератор
64299 / 47594 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
22.02.2011, 11:47 10
riv94, Нормальные люди сначала пишут условие задачи, а потом свой код и проблемы. У Вас же все наоборот. В следующий раз сразу пишите на форум гадалок и экстрасенсов...
0
66 / 66 / 29
Регистрация: 13.02.2011
Сообщений: 392
22.02.2011, 11:49  [ТС] 11
Puporev, впредь буду знать... просто я думал вроде легкая задача... помогите!
0
Почетный модератор
64299 / 47594 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
22.02.2011, 11:56 12
Условие задачи тупое. А если нет корней, что выводить?
0
66 / 66 / 29
Регистрация: 13.02.2011
Сообщений: 392
22.02.2011, 11:59  [ТС] 13
если корней нет, то вывести 0
0
Почетный модератор
64299 / 47594 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
22.02.2011, 12:03 14
Эту тему посмотрите, я там решение нормальное давал.
https://www.cyberforum.ru/pasc... page2.html
0
66 / 66 / 29
Регистрация: 13.02.2011
Сообщений: 392
22.02.2011, 12:08  [ТС] 15
ладно
0
54 / 54 / 23
Регистрация: 02.02.2011
Сообщений: 436
22.02.2011, 12:17 16
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
{$R-,Q-,S-,V-,N-,E-,M 16777216}
 
 
var
   a,b,c:integer;
   d,x1,x2:real;
 
begin
   assign(input,'input.txt');
   reset(input);
   assign(output,'output.txt');
   rewrite(output);
   read(a,b,c);
   if (a=0) and (b=0) then write(c) else
   begin
      d:=sqrt(sqr(b)-(a*c shl 2));
      if d<0 then write('Решений нет') else
      begin
         x1:=(-b+d)/(a shl 1);
         x2:=(-b-d)/(a shl 1);
         writeln(x1);
         if x1<>x2 then writeln(x2);
      end;
   end;
end.
0
Почетный модератор
64299 / 47594 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
22.02.2011, 12:48 17
Цитата Сообщение от Wanee Посмотреть сообщение
if (a=0) and (b=0) then write(c)
В смысле если С любое, то его и выводим?
1
54 / 54 / 23
Регистрация: 02.02.2011
Сообщений: 436
22.02.2011, 13:19 18
Небольшая ошибка, спасибо

Добавлено через 2 минуты
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
{$R-,Q-,S-,V-,N-,E-,M 16777216}
 
var
   a,b,c:integer;
   d,x1,x2:real;
 
begin
   assign(input,'input.txt');
   reset(input);
   assign(output,'output.txt');
   rewrite(output);
   read(a,b,c);
   if (a=0) and (b=0) then write('Решений нет') else
   begin
      d:=sqrt(sqr(b)-(a*c shl 2));
      if d<0 then write('Нет корней') else
      begin
         x1:=(-b+d)/(a shl 1);
         x2:=(-b-d)/(a shl 1);
         writeln(x1);
         if x1<>x2 then writeln(x2);
      end;
   end;
end.
Добавлено через 21 минуту
Вот так все случай рассмотрены:
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
{$R-,Q-,S-,V-,N-,E-,M 16777216}
 
var
   a,b,c:integer;
   d,x1,x2:real;
 
begin
   assign(input,'input.txt');
   reset(input);
   assign(output,'output.txt');
   rewrite(output);
   read(a,b,c);
   if (a=0) and (b=0) then write('Решений нет') else
   begin
      if b=0 then writeln(-c/b);
      if a=0 then
      begin
         d:=-c/a;
         if d<0 then write('Решений нет') else
         begin
            writeln(d);
            writeln(-d);
         end;
      end;
      if (a<>0) and (b<>0) then
      begin
         d:=sqrt(sqr(b)-(a*c shl 2));
         if d<0 then write('Нет корней') else
         begin
            x1:=(-b+d)/(a shl 1);
            x2:=(-b-d)/(a shl 1);
            writeln(x1);
            if x1<>x2 then writeln(x2);
         end;
      end;
   end;
end.
1
134 / 47 / 11
Регистрация: 27.05.2008
Сообщений: 246
22.02.2011, 13:32 19
Цитата Сообщение от Wanee Посмотреть сообщение
Просто_Юлия, ты не прова. У вас записано

Pascal
1
2
3
4
assign(input,'input.txt');
reset(input);
assign(output,'output.txt');
rewrite(output);
чтение и запись всегда будет происходить из файлов
вот не уверена, что все компиляторы так поступают. имхо, все же лучше явно...
хотя если эта конкретная тестирующая система поддерживает...
0
54 / 54 / 23
Регистрация: 02.02.2011
Сообщений: 436
22.02.2011, 13:37 20
Должны все
0
22.02.2011, 13:37
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
22.02.2011, 13:37
Помогаю со студенческими работами здесь

Программа для нахождения корней квадратного уравнения, ошибка
Здравствуйте, Уважаемые форумчане! Вообщем у меня проблема... program my; var a, b, c :...

Вычисление корней квадратного уравнения по данным значениям его коэффициентов
задача на ветвление. составьте программу вычисления корней квадратного уравнения по данным...

Составить программу для нахождения действительных корней квадратного уравнения
помогите пожалуста! Нужно составить програму для нахождения действительных корней квадратного...

Определение корней квадратного уравнения с ненулевым коэффициентом перед степенью X^2
оставить алгоритм определения корней квадратного уравнения с ненулевым коэффициентом перед степенью...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru