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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 20.12.2007, 16:11   #1
Gambit90
 
Регистрация: 20.12.2007
Сообщений: 5
По умолчанию Помогите исправить ошибки в программе

Собственно, нужно решить квадратное уравнение a2x-bax-c=0(a в степени 2x минус ba(a в степени x) минус c равно 0) в среде Delphi и отладить программу

Код:
unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    Button1: TButton;
    Button2: TButton;
    Button3: TButton;
    Edit1: TEdit;
    Edit2: TEdit;
    Edit3: TEdit;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    Label5: TLabel;
    Label6: TLabel;
    Label7: TLabel;
    Label8: TLabel;
    Label9: TLabel;
    Label10: TLabel;
    Label11: TLabel;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
a,b,c,y,x1,x2,:Real;
implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
y:=StrToFloat(Edit1.text);
b:=StrToFloat(Edit2.text);
c:=StrToFloat(edit3.text);

end;

procedure TForm1.Button2Click(Sender: TObject);
begin
var d,Log,:real;
begin
                label7.Caption:='';
                label10.Caption:='';
                label11.Caption:='';
  if (y>0) then begin
            d:=b*b-4*y*c;
            if d>=0 then
                      begin
                          y1:=(-b-sqrt(d))/(2*y);
                          y2:=(-b+sqrt(d))/(2*y);
                label9.Caption:='уравнение имеет два корня';
                label10.Caption:=floatToStr(x1);
                label11.Caption:=floatToStr(x2);
                      end
          then
          begin
               x1,2:=Loga y
                label9.Caption:='уравнение имеет два корня' ;
                label10.Caption:=floatToStr(x1);
                label11.Caption:=floatToStr(x2);
          end end
     else if (b:=0) else
                      begin
      else
          if (c:=0) then
                    begin
                    y*y:=c
                    then
                    begin
                     x:=Loga c/2
                     label9.Caption:='уравнение имеет один корень';
                         label10.Caption:=floatToStr(x1);
                          label11.Caption:=floatToStr(x2);
                          end

          end;

end;

end.
Gambit90 вне форума Ответить с цитированием
Старый 20.12.2007, 16:24   #2
kommunist
C# developer
Форумчанин
 
Аватар для kommunist
 
Регистрация: 03.10.2007
Сообщений: 393
По умолчанию

Вот решает квадратное уравнение
Код:
uses

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


type
 TForml = class(TForm)
 Editl: TEdit;
 Edit2: TEdit;
 Edit3: TEdit;
 Label1: TLabe1;
 Label2: TLabe1;
 Label3: TLabe1;
 Label4: TLabe1;
 Button1: TButton;
 Label5: TLabel;
 procedure ButtonlClick(Sender: TObject);

 private

{ Private declarations } 

public

{ Public declarations } 

end;
var
Form1: TForm1;


implementation


{$R *.dfm}

// решает квадратное уравнение

procedure SqRoot(a,b,c : real; var xl, x2 : real; var ok : boolean); 

{ a,b,c — коэффициенты уравнения x1,x2 — корни уравнения
ok = True — решение есть ok = False — решения нет } 

var
  d : real; // дискриминант begin
  d:= Sqr(b) - 4*a*c; if d < 0 then
  ok := False // уравнение не имеет решения 
  else
begin
  ok := True;
  xl := (-b + Sqrt(d)) / (2*a); x2 := (b + Sqrt(d)) / (2*a) ; 

end;
end;

procedure TForml.ButtonlClick(Sender: TObject); 
var
 k1,k2: real; // корни уравнения
 rez: boolean; // True —решение есть, False —решения нет 
 mes:  string; // сообщение 
begin
 SqRoot(StrToFloat(Editl.Text), StrToFloat(Edit2.Text) ,
 StrToFloat(Edit3.Text) , k1,k2,rez);

if rez then
 mes := 'Корни уравнения' + #13 + 'x1='+FloatToStrF(kl,ffGeneral, 4,2)+#13 + 'x2='+FloatToStrF(k2,ffGeneral,4,2) + #13 
else
 mes := 'Уравнение не имеет решения'; 
 labels.Caption := mes;
end;
end.
I like WPF
kommunist вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ошибки в программе(visual c+++) JOFRIF Visual C++ 6 23.08.2008 16:20
помогите исправить ошибки kermit Помощь студентам 1 21.06.2008 10:44
Помогите исправить незначительные ошибки HAMMAN Помощь студентам 1 10.06.2008 19:07
помогите исправить ошибки в программе... VDK23 Помощь студентам 1 17.04.2008 13:05
Помогите исправить ошибки ...С++ Настенька Помощь студентам 1 25.03.2007 23:30