Поиск
Версия для слабовидящих
Календарь
Январь 2019
Пн Вт Ср Чт Пт Сб Вс
 123456
78910111213
14151617181920
21222324252627
28293031  
Полезные ссылки

komobr

 

iuu2

 


30.01.2019

Проект “Квадратное уравнение”.

Проект  «Решение квадратного уравнения»

В этом задании вы создадите программу, в которой будет решаться квадратное уравнение стандартного вида ax2+bx+c=0. Форма проекта должна иметь следующий вид:

  1. В заголовке Формы запишите: «Решение квадратного уравнения».
  2. Разместите на Форме необходимые объекты (Panel(3 объекта), Edit(6), Label(8), Button(2)).
  3. Сохраните Проект.
  4. В разделе описания переменных varнадо перечислить все переменные, которые будут использоваться в программе, и указать тип.

   В нашем случае все переменные одного типа – вещественные числа. Теперь эти переменные будут «видны» всей программе. Описание переменных можно производить и в каждой процедуре, где они используются.

2.1 2.2

  1. Теперь надо записать процедуру вычисления дискриминанта для кнопки «Вычислить»:

a:=StrToFloat (Edit1.Text);

b:= StrToFloat (Edit2.Text);

c:=StrToFloat (Edit3.Text);

D:=b*b-4*a*c;

При решении необходимо использовать ветвление: если    d>0, то выводится сообщение ‘Квадратное уравнение не имеет корней’ (использовать MessageDlg), а в Edit выводится значение дискриминанта.

Если  d>0 ‘Квадратное уравнение  имеет два корня’.

Вычисляются корни по формулам:

x1:= (-b + Sqrt(d))/(2*a);

x2:= (-b – Sqrt(d))/(2*a);

В Edit выводится дискриминант и значения корней.

Если d=0, ‘Квадратное уравнение  имеет один корень’, в Edit дискриминант и  значение по формуле:

x1:= (-b)/(2*a);

  1. Подсказка для  d<0:

if d<0 then  begin

MessageDlg(‘Квадратное уравнение не имеет корней‘,mtWarning, [mbOk, mbCancel],0);

Edit4.Text:=FloatToStr(D);

end;

Программный код.

unit Unit1;

{$mode objfpc}{$H+}

interface

uses

  Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, ExtCtrls,

StdCtrls;

type

{ TForm1 }

  TForm1 = class(TForm)

    Button1: TButton;

    Button3: TButton;

    Edit1: TEdit;

    Edit2: TEdit;

    Edit3: TEdit;

    Edit4: TEdit;

    Edit5: TEdit;

    Edit6: TEdit;

    Label1: TLabel;

    Label10: TLabel;

    Label2: TLabel;

    Label3: TLabel;

    Label4: TLabel;

    Label5: TLabel;

    Label6: TLabel;

    Label7: TLabel;

    Label8: TLabel;

    Label9: TLabel;

    Panel1: TPanel;

    Panel2: TPanel;

    Panel3: TPanel;

procedure Button1Click(Sender: TObject);

procedure Button3Click(Sender: TObject);

private

{ private declarations }

public

{ public declarations }

end;

var

  Form1: TForm1;

a, b, c, D, X1, X2:Real;

implementation

{$R *.lfm}

{ TForm1 }

procedure TForm1.Button1Click(Sender: TObject);

begin

a:=StrToFloat (Edit1.Text);

b:= StrToFloat (Edit2.Text);

c:=StrToFloat (Edit3.Text);

D:=b*b-4*a*c;

ifd<0 thenbegin

//если d<0 выводится сообщение, а иначе вычисляются корни

MessageDlg(‘Квадратное уравнение не имеет корней’,mtWarning, [mbOk, mbCancel],0);

Edit4.Text:=FloatToStr(D);

end;

if d>0 then begin    MessageDlg(‘Квадратноеуравнениеимеетдвакорня‘,mtWarning, [mbOk, mbCancel],0);

X1:= (-b + Sqrt(d))/(2*a);

x2:= (-b – Sqrt(d))/(2*a);

Edit5.Text:=FloatToStr(x1);

Edit6.Text:=FloatToStr(x2);

Edit4.Text:=FloatToStr(D);

end;

if d=0 then begin

MessageDlg(‘Квадратноеуравнениеимеетодинкорень‘,mtWarning, [mbOk, mbCancel],0);

 X1:= (-b)/(2*a); Edit5.Text:=FloatToStr(x1);  Edit4.Text:=FloatToStr(D);

end;

end;

procedure TForm1.Button3Click(Sender: TObject);

begin

 Edit1.Clear;

 Edit2.Clear;

 Edit3.Clear;

 Edit4.Clear;

 Edit5.Clear;

Edit6.Clear;

end;

end.                                 

Скачать проект “Квадратное уравнение”.