Задача №5 - Решаем квадратное уравнение
|
|
Задача о решении квадратного уравнения: \(a\cdot x^{2}+b\cdot x+c=0\) относится к числу элементарных задач с точки зрения математики. Да и в программировании тоже. Эта задача предлагается студентам почти всегда и решений в интернете куча. Здесь же эта задача предлагается с некоторыми ограничениями и дополнительными условиями. Итак, постановка задачи: Вводятся действительные коэффициенты a,b,c квадратного уравнения \(a\cdot x^{2}+b\cdot x+c=0\). Требуется написать программу, которая находит все решения квадратного уравнения или выдает сообщение, что решения нет. Дополнительные условия: программа должна быть защищена от ввода не правильных исходных данных. Ну и теперь самое важное: задача конкурсная. Победителем будет считаться тот, кто напишет самую короткую программу (по числу символов в коде). При этом символы сообщений типа - "уравнение не имеет решений" или "Введите коэффициенты" не считаются. Будут оцениваться первые пять мест - за первое место 5 баллов, за второе - 4 балла, за третье - 3, за четвертое - 2, за пятое - 1. Выкладывая код решения и ссылку на онлайн-код также подсчитывайте самостоятельно количество символов кода и записывает его в вашем ответе так: Число символов кода: ****.
|
|
|
Код var D,a,b,c,x1,x2:real; begin writeln('vvedite coeficienti (a,b,c): '); {$I-}readln(a,b,c);{$I+} if IOresult=0 then begin D:=b*b-4*a*c; if D>=0 then begin if D=0 then begin x1:=-b/(2*a) ; write(x1); end else begin x1:=(-b+sqrt(D))/(2*a); x2:=(-b-sqrt(D))/(2*a); write(x1,' ',x2); end; end else write('Net reshenij'); end else write('Nekorrektnij vvid'); readln; readln; end. Число символов кода: 279
|
|
|
Код var D,a,b,c:real; begin writeln('vvedite coeficienti (a,b,c): '); {$I-}readln(a,b,c);{$I+} if IOresult=0 then begin D:=b*b-4*a*c; if D>=0 then begin if D=0 then begin write(-b/(2*a)); end else begin write((-b+sqrt(D))/(2*a),' ',(-b-sqrt(D))/(2*a)); end; end else write('Net reshenij'); end else write('Nekorrektnij vvid'); readln; readln; end. Число символов кода: 252
|
|
|
Код var a,b,c,d,x1,x2:real; begin writeln('Введите a,b,c'); read(a,b,c); d:=b*b-4*a*c; if d>=0 then begin write('x1=',(-b+sqrt(d))/(2*a),' x2=',(-b-sqrt(d))/(2*a)); end else write('Корней нет'); end.
Число символов кода: 164
AlenaKit♥
№ 4 | Автор: AlenaKit |
2014-10-18, 16:21 | Изменено: AlenaKit - Сб, 2014-10-18, 22:54
|
Репутация: [ + 12 ]
|
|
|
Код var a,b,c,D,x,y:real; S:string; m:integer; function f(var z:real):boolean; begin ReadLn(S); Val(S, z, m); f:=(m=0); end; begin while not f(a) do writeln('Неверный ввод a'); while not f(b) do writeln('Неверный ввод b'); while not f(c) do writeln('Неверный ввод c'); If a=0 then Begin Writeln('Уравнение вырождается в линейное'); Exit; ENd; D:=b*b-4*a*c; if D<0 then Writeln('Решений нет') else begin x:=(-b+sqrt(D))/(2*a); y:=(-b-sqrt(D))/(2*a); Write('x1=',x,'x2=',y); end; end. Число символов кода: 346
El_Magnifico with <3
№ 5 | Автор: El_MAgnifico |
2014-10-28, 15:29 | Изменено: El_MAgnifico - Вт, 2014-10-28, 15:30
|
Репутация: [ + 8 ]
|
|
|
Код var a,b,c,d:real; begin write('Введите a,b,c'); read(a,b,c); d:=b*b-4*a*c; if d>=0 then begin write('x1=',(-b+sqrt(d))/(2*a),' x2=',(-b-sqrt(d))/(2*a)); end else write('Корней нет'); end. Число символов кода: 145.
№ 6 | Автор: Бонясик |
2014-11-15, 21:40 | Изменено: Бонясик - Сб, 2014-11-15, 23:38
|
Репутация: [ + 0 ]
|
|
|
Код var a,b,c,d:real; p:string; q:integer; function f(var z:real):boolean; begin ReadLn(p); Val(p, z, q); f:=(q=0); end; begin while not f(a) do writeln('Неверный ввод a'); while not f(b) do writeln('Неверный ввод b'); while not f(c) do writeln('Неверный ввод c'); d:=b*b-4*a*c; if d>=0 then begin write('x1=',(-b+sqrt(d))/(2*a),' x2=',(-b-sqrt(d))/(2*a)); end else write('Корней нет'); end. Число символов кода: 284
|
|
|
Код var a,b,c,d:real; s:string; o:integer; function n(var z:real):boolean; begin ReadLn(s); Val(s,z,o); n:=(o=0); end; begin if not(n(a)and n(b)and n(c))then write('Неверный ввод')else begin d:=b*b-4*a*c; if d>=0 then write((-b+sqrt(d))/(2*a),(-b-sqrt(d))/(2*a)) else write('Корней нет'); end; end.
Число символов кода: 244
AlenaKit♥
№ 8 | Автор: AlenaKit |
2014-11-23, 17:30 | Изменено: AlenaKit - Вт, 2014-11-25, 23:47
|
Репутация: [ + 12 ]
|
|
AlenaKit♥
№ 8 | Автор: AlenaKit |
2014-11-23, 17:30 | Изменено: AlenaKit - Вт, 2014-11-25, 23:47
|
Репутация: [ + 12 ]
|
|
|
Код var a,b,c,D:real; begin writeln('введите a,b,c'); readln(a,b,c); d:=b*b-4*a*c; if d>=0 then writeln('x1=',(-b+sqrt(d))/(2*a),'x2=',(-b-sqrt(d))/(2*a),'d=',d) else writeln ('нету корней'); end. Число символов кода:149
№ 9 | Автор: Forzorezor |
2014-11-26, 20:51 | Изменено: Forzorezor - Ср, 2014-11-26, 21:03
|
Репутация: [ + 4 ]
|
|
|
Код var a,b,c,d:real; p:string; q:integer; function f(var z:real):boolean; begin ReadLn(p); Val(p, z, q); f:=(q=0); end; begin while not f(a) do writeln(); while not f(b) do writeln(); while not f(c) do writeln(); begin d:=b*b-4*a*c; if d>=0 then write((-b+sqrt(d))/(2*a),' ',(-b-sqrt(d))/(2*a)) else write('Корней нет'); end; end.
Число символов кода: 298
|
|
|
Код var a,b,c,D:real; label M1; Begin M1: writeln('Введите коэф. уравнения а,b,c: ');readln(a,b,c); D:=b*b-4*a*c; if D<0 then goto M1 else writeln('Первый корень: ',(-b+sqrt(d))/(2*a),', Второй корень: ',(-b-sqrt(d))/(2*a),', D=',D) end. Число символов кода: 144
|
|
|