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

komobr

 

iuu2

 


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

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

В этом задании вы создадите программу, в которой будет решаться квадратное уравнение стандартного вида 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.                                 

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

Оставить комментарий