Top.Mail.Ru
Ответы
Аватар пользователя
6лет
Изменено
Аватар пользователя
Аватар пользователя
Программирование
+1

В чем проблема? (Lazarus). ниже скриншот и полный код

unit Unit1;

{$mode objfpc}{$H+}

interface

uses
Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, StdCtrls;

type

{ TForm1 }

TForm1 = class(TForm)
Button1: TButton;
Edit1: TEdit;
Edit2: TEdit;
Edit3: TEdit;
Label1: TLabel;
Label10: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Label6: TLabel;
Label7: TLabel;
Label8: TLabel;
Label9: TLabel;
procedure Button1Click(Sender: TObject);
private

public

end;

var
Form1: TForm1;

implementation

{$R *.lfm}

{ TForm1 }

procedure TForm1.Button1Click(Sender: TObject);
//Описание переменных:

// a, b, с – стороны треугольника;

// alfa, betta, gamma – углы треугольника;

// S - площадь треугольника;

// r - полупериметр треугольника

//Все переменные вещественного типа.

var a, b, c, alfa, betta, gamma, S,p: real;
begin
//Из полей ввода Edit1, Edit2, Edit3

//считываются введенные строки,

//с помощью функции StrToFloat(х)

//преобразовываются в вещественные числа

//и записываются в переменные а, b, c.

a:=StrToFloat(Edit1.Text);

b:=StrToFloat(Edit2.Text);

c:=StrToFloat(Edit3.Text);

//Вычисление значения полупериметра.

p:=(a+b+c)/2;

//Вычисление значения площади,

//для вычисления применяется функция:

// sqrt(х) – корень квадратный из х.

S:=sqrt(p*(p-a)*(p-b)*(p-c));

//Вычисление значения угла alfa в радианах.

//Для вычисления применяем функции:

// arccos(х) - арккосинус x;

// sqr(х) – возведение х в квадрат.

alfa:=arccos((sqr(b)+sqr(c)-sqr(a))/2/b/c);

//Вычисление значения угла betta в радианах.

//Для вычисления применяем функции:

// arcsin(х) - арксинус x;

betta:=arcsin(b/a*sin(alfa));

//Вычисление значения угла gamma в радианах.

//Математическая постоянная определена

//функцией без аргумента pi.

gamma:=pi-(alfa+betta);

//Перевод радиан в градусы.

alfa:=alfa*180/pi;

betta:=betta*180/pi;

gamma:=gamma*180/pi;

//Для вывода результатов вычислений используем

//операцию слияния строк ≪+≫

//и функцию FloatToStrF(х), которая

//преобразовывает вещественную переменную х

//в строку и выводит ее в указанном формате,

//в нашем случае под переменную отводится

//три позиции, включая точку

//и ноль позиций после точки.

//Величины углов в градусах выводятся на форму

//в соответствующие объекты типа надпись.

Label6.Caption:='alfa='+ FloatToStrF(alfa,ffFixed,3,0);

Label7.Caption:='betta='+ FloatToStrF(betta,ffFixed,3,0);

Label8.Caption:='gamma='+FloatToStrF(gamma,ffFixed,3,0);

//Используем функцию FloatToStrF(х)

//для форматированного вывода, в нашем случае

//под все число отводится пять позиций,

//включая точку, и две позиций после точки.

//Значения площади и периметра

//выводятся на форму.

Label9.Caption:='Периметр P='+FloatToStrF(2*p,ffFixed,5,2);

Label10.Caption:='Площадь S='+FloatToStrF(S,ffFixed,5,2);
end;

end.

По дате
По рейтингу
Аватар пользователя
Новичок
6лет

Добавь Math в uses.