Ваш браузер устарел. Рекомендуем обновить его до последней версии.





 


 



Delphi

 

 


Урок 13     Генератор квадратных уравнений. Калькулятор квадратных уравнений

В первой части урока представлено описание построения программы генерирующей квадратные уравнения. Воспользуемся теоремой Виета, которая позволяет по заданным корням определять коэффициенты p и q приведенного квадратного уравнения x2 + px + q = 0. Корни квадратного уравнения x1 и x2 будет задавать генератор случайных чисел. Затем программа будет формировать по теореме Виета приведенное квадратное уравнение.

На стартовой форме Form1 вашего приложения разместите компоненты Button1, Label1 и Label2. Теперь можно приступать к написанию функции обработки Button1Click. Не забудьте в разделе var предварительно зарезервировать переменные целого типа x1, x2, p, q. Это корни квадратного уравнения и коэффициенты приведенного квадратного уравнения.

 

unit Unit1;

interface

uses
        Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
        Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls;

type
        TForm1 = class(TForm)
        Button1: TButton;
        Label1: TLabel;
        Label2: TLabel;
        procedure Button1Click(Sender: TObject);
    private
        { Private declarations }
    public
        { Public declarations }
    end;

var
        Form1: TForm1;
        x1, x2, p, q: integer; // переменные целого типа
implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);

    begin

        randomize(); // инициализация генератора псевдослучайных чисел
        x1 := random(20); // случайный первый корень
        x2 := random(20); // случайный второй корень
        p := -(x1 + x2); // вычисление по теореме Виета
        q := x1*x2; // вычисление по теореме Виета

        // вывод уравнения на экран
        Label1.Caption := 'x2 ' + IntToStr(p) + 'x + ' + IntToStr(q) + ' = 0';
        // вывод корней уравнения на экран
        Label2.Caption := 'x1 = ' + IntToStr(x1) + '      x2 = ' + IntToStr(x2);

    end;

end.



Вторую часть урока посвятим программе, которая будет решать квадратные уравнения вида ax
2 + bx + c = 0. Откройте новый проект. На стартовой форме Form1 разместите компоненты Button1, Label1, Label2, Edit1, Edit2 и Edit3. В разделе var зарезервируйте вещественные переменные a, b, c, x1, x2, d. Функцию обработки Button1Click наполните программным кодом.

 

unit Unit1;

interface

uses
    Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
    Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls;

type
    TForm1 = class(TForm)
    Button1: TButton;
    Edit1: TEdit;
    Edit2: TEdit;
    Edit3: TEdit;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    Label5: TLabel;
    Label6: TLabel;
    Label7: 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 //блок ЕСЛИ
    begin
        x1 := (-b + sqrt(d))/(2*a); //вычисление 1-го корня
        x2 := (-b - sqrt(d))/(2*a); //вычисление 2-го корня
        //вывод корней квадратного уравнения на экран
        Label1.Caption := 'x1 = ' + FloatToStr(x1);
        Label2.Caption := 'x2 = ' + FloatToStr(x2);
        Label7.Caption := 'Дискриминант = ' + FloatToStr(d);
    end

    else
    begin
        Label1.Caption := 'Дискриминант = ' + FloatToStr(d);
        Label2.Caption := 'Корней нет!'; //вывод сообщения

        Label7.Caption := '';

    end;

end;

end.


Flag Counter
Яндекс.Метрика
200stran.ru: показано число посетителей за сегодня, онлайн, из каждой страны и за всё время
Besucherzahler russain brides
счетчик посещений

Выбери лучшее!

allbest