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

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

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

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 21.11.2013, 22:57   #1
CHeGIVaRO
Новичок
Джуниор
 
Регистрация: 20.11.2013
Сообщений: 6
По умолчанию Помогите доделать программу для решения квадратных уравнений на Delphi

Вот мой код, он он практически не работает. Знаю код позорб но я только учусь.Внизу прикреплён исходник.
Код:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ExtCtrls, StdCtrls;

type
  TForm1 = class(TForm)
    Edit1: TEdit;
    Edit2: TEdit;
    Edit3: TEdit;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Button1: TButton;
    Panel1: TPanel;
    Panel2: TPanel;
    Panel3: TPanel;
    Label4: TLabel;
    Label5: TLabel;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  a,b,c,x1,x2,d:real;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
a:= StrToFloat (Edit1.Text);
b:= StrToFloat (Edit2.Text);
c:= StrToFloat (Edit3.Text);

d:= b*b-4*a*c;
if d<0 then
Panel1.Caption:='Уравнение не имеет корней'
else
begin
x1:= (-b + Sqrt(d))/(2*a);
x2:= (-b - Sqrt(d))/(2*a);
if d>0 then begin

Panel1.Caption:= 'Уравнение имеет 2 корня';
Panel2.Caption:= FloatToStr (x1);
Panel3.Caption:= FloatToStr (x2);

end;
end;
 end;
end.
Вложения
Тип файла: rar 5.rar (4.9 Кб, 8 просмотров)
CHeGIVaRO вне форума Ответить с цитированием
Старый 21.11.2013, 23:16   #2
type_Oleg
Старожил
 
Аватар для type_Oleg
 
Регистрация: 02.03.2008
Сообщений: 2,499
По умолчанию

У вас не предусмотрен случай, когда 1 корень, то есть 2 одинаковых корня.
Если этот случай не надо как то объявлять, то лучше так
Код:
var
  Form1: TForm1;
implementation
{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var a,b,c,x1,x2,d:real;
begin
 a:= StrToFloat (Edit1.Text);
 b:= StrToFloat (Edit2.Text);
 c:= StrToFloat (Edit3.Text);
 d:= b*b-4*a*c;
 if d<0 then
  begin
   Panel1.Caption:='Корни комплексные' ;
   Exit;
  end;
 x1:= (-b + Sqrt(d))/(2*a);
 x2:= (-b - Sqrt(d))/(2*a);
 Panel1.Caption:='Корни действительные' ;
 Panel2.Caption:= FloatToStr (x1);
 Panel3.Caption:= FloatToStr (x2);
end;
end.

Последний раз редактировалось type_Oleg; 21.11.2013 в 23:22.
type_Oleg вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Нужно составить программу в С++ для решения системы уравнений Anton1609 Помощь студентам 0 01.10.2011 15:54
макрос для решения квадратных уравнений (перемещено из раздела Excel) sashkkk Помощь студентам 3 22.09.2010 23:06
Qu 1.0 - программа для решения квадратных уравнений DM_bite Софт 5 20.03.2010 22:37
программ решения квадратных уравнений (C++) Ready Помощь студентам 7 09.06.2009 18:00
помогите пожалуйста! нужна программа для решения уравнений. MatrixN2 Помощь студентам 1 06.03.2009 12:29