Новые сообщения · Правила  
  • Страница 1 из 1
  • 1
Форум ПРОГРАММИСТОВ » КУРС ОПР - ПАСКАЛЬ » Задачи студентам » Задача №5 - Решаем квадратное уравнение
Задача №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. Выкладывая код решения и ссылку на онлайн-код также подсчитывайте самостоятельно количество символов кода и записывает его в вашем ответе так: Число символов кода: ****.
1 | Автор: admin | 2014-09-23, 21:37   |  Репутация: [ + 21 ]
Код
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
 
2 | Автор: ira_butenko97 | 2014-09-28, 15:11   |  Репутация: [ + 4 ]
2 | Автор: ira_butenko97 | 2014-09-28, 15:11   |  Репутация: [ + 4 ]
Код
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
3 | Автор: ira_butenko97 | 2014-10-05, 18:36   |  Репутация: [ + 4 ]
Код
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
7 | Автор: torres | 2014-11-16, 11:26   |  Репутация: [ + 0 ]
Код
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


10 | Автор: Awesome | 2014-11-26, 21:19   |  Репутация: [ + 2 ]

Код
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
11 | Автор: Bun_Frith | 2014-11-26, 23:20   |  Репутация: [ + 4 ]
Форум ПРОГРАММИСТОВ » КУРС ОПР - ПАСКАЛЬ » Задачи студентам » Задача №5 - Решаем квадратное уравнение
  • Страница 1 из 1
  • 1
Поиск: