Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 26.04.2014, 17:38   #1
adrenalin142
Пользователь
 
Регистрация: 26.04.2014
Сообщений: 20
По умолчанию Программа для вычисления корней квадратного уравнения(Pascal)

Здравствуйте, форумчане. Помогите пожалуйста разобраться в чем проблема.

Задание:
Вычислить корни квадратного уравнения (a*x^2)+(b*x)+c=0, если (d^2)-4*a*c>=0, то корни действительные; следовательно, необходимо вычислять
e=(-b)/(2*a)
f= (sqrt(d)/(2*a)
x1=e+f
x2=e-f
если d<0, то корни мнимые
e=(-b)/(2*a)
f= (sqrt(abs(d))/(2*a)
x1=e+f
x2=e-f


Вот мои наброски но они не работают:
Код:
program Project2;

uses
  SysUtils,Windows;

var
  a,b,c:integer;
  x1,x2,d,e,f:Real;

begin
  SetConsoleCP(1251);
  SetConsoleOutPutCP(1251);
  write('Введите a = '); readln(a);
  write('Введите b = '); readln(b);
  write('Введите c = '); readln(c);
  d:=sqr(b)-4*a*c;
  if (d>=0)
  then begin
  e:= (-b/(2*a));
  f:= (Sqrt(d)/(2*a));
  x1:= (e+f);
  x2:= (e-f);
  writeln('x1= ',x1:6:2);
  Writeln('x2= ',x2:6:2);
end
else begin
  e:= (-b/(2*a));
  f:= (Sqrt(Abs(d))/(2*a));
  x1:= (e+f);
  x2:= (e-f);
  writeln('x1= ',x1:6:2);
  Writeln('x2= ',x2:6:2);
end;
Readln;
end.
ЗЫ: программу нужно сделать в Делфи в Console application.
adrenalin142 вне форума Ответить с цитированием
Старый 26.04.2014, 18:39   #2
type_Oleg
Старожил
 
Аватар для type_Oleg
 
Регистрация: 02.03.2008
Сообщений: 2,504
По умолчанию

Код написан мягко говоря, очень нерационально.
Но все работает, только не пишет от том, какие корни - действительные или мнимые.

И еще. a,b,c - могут быть только целые ?

PS А где {$APPTYPE CONSOLE} ? Перед uses должно быть.


PPS Кстати, сейчас понял, что сам алгоритм неточный. При d<0 корни не мнимые, а комплексные. Там будет и действительная часть (-e)и мнимая (+-f) части. Как вы отобразите комплексные числа?

Последний раз редактировалось type_Oleg; 26.04.2014 в 18:52.
type_Oleg вне форума Ответить с цитированием
Старый 26.04.2014, 19:31   #3
adrenalin142
Пользователь
 
Регистрация: 26.04.2014
Сообщений: 20
По умолчанию

Немного подредактировал, вроде заработало.

Код:
program Project2;

{$APPTYPE CONSOLE}
uses
  SysUtils,Windows;

var
  a,b,c:integer;
  x1,x2,d,e,f:Real;

begin
  SetConsoleCP(1251);
  SetConsoleOutPutCP(1251);
  writeln('Введите a = '); readln(a);
  writeln('Введите b = '); readln(b);
  writeln('Введите c = '); readln(c);
  d:=sqr(b)-4*a*c;
  if (d>=0)
  then begin
  e:= (-b/(2*a));
  f:= (Sqrt(d)/(2*a));
  x1:= (e+f);
  x2:= (e-f);
  writeln('x1= ',x1:6:2);
  Writeln('x2= ',x2:6:2);
end
else begin
e:= (-b/(2*a));
f:= (Sqrt(Abs(d))/(2*a));
x1:= (e+f);
x2:= (e-f);
writeln('x1= ', e:6:2, ' + ', f:6:2, 'i');
Writeln('x2= ', e:6:2, ' - ', f:6:2, 'i');
end;
Readln;
end.
ЗЫ: по заданию не требуют написать мнимые или нет, но можно дописать так:
Код:
program Project2;

{$APPTYPE CONSOLE}
uses
  SysUtils,Windows;

var
  a,b,c:integer;
  x1,x2,d,e,f:Real;

begin
  SetConsoleCP(1251);
  SetConsoleOutPutCP(1251);
  writeln('Введите a = '); readln(a);
  writeln('Введите b = '); readln(b);
  writeln('Введите c = '); readln(c);
  d:=sqr(b)-4*a*c;
  if (d>=0)
  then begin
  e:= (-b/(2*a));
  f:= (Sqrt(d)/(2*a));
  x1:= (e+f);
  x2:= (e-f);
  Writeln('Корни действительные');
  writeln('x1= ',x1:6:2);
  Writeln('x2= ',x2:6:2);
end
else begin
e:= (-b/(2*a));
f:= (Sqrt(Abs(d))/(2*a));
x1:= (e+f);
x2:= (e-f);
Writeln('корни мнимые');
writeln('x1= ', e:6:2, ' + ', f:6:2, 'i');
Writeln('x2= ', e:6:2, ' - ', f:6:2, 'i');
end;
Readln;
end.

Последний раз редактировалось adrenalin142; 26.04.2014 в 19:59.
adrenalin142 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Задача на вычисление корней квадратного уравнения millepetrozza Общие вопросы C/C++ 3 23.09.2012 10:56
Ассемблер for Windows. Нахождение корней квадратного уравнения Маришка_Курносова Помощь студентам 2 10.11.2010 14:08
С++ borland. вычисления корней квадратного уравне-ния Жужа Помощь студентам 20 21.10.2009 14:12
Вычисления корней квадратного уравнения Наталья111 Общие вопросы Delphi 4 25.12.2008 11:06
Помогите разработать программу для вычисления корней алгебраического уравнения вида f(x)=0 BIS88 Помощь студентам 2 16.11.2008 08:11