Главная
Решение задач.
Справочные данные.
Формулы.
Программирование.
Как в Windows?
Разное.
Утилиты Windows.
Несправности принтеров.
BIOS по алфавиту.
Тесты.
Карта сайта.

Калькулятор площадей и объемов (Delphi).

unit Unit1;
interface
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,   Dialogs, StdCtrls;
type
  TForm1 = class(TForm)
    ComboBox1: TComboBox;
    ComboBox2: TComboBox;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    Edit1: TEdit;
    Edit2: TEdit;
    Edit3: TEdit;
    Edit4: TEdit;
    Label5: TLabel;
    Button1: TButton;
    Button2: TButton;
    procedure ComboBox1Click(Sender: TObject);
    procedure ComboBox2Click(Sender: TObject);
    procedure FormActivate(Sender: TObject);
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
var
  Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.FormActivate(Sender: TObject);
begin
//Начальное состояние устанавливаемое при запуске программы.===
Edit4.Visible:=false;
form1.Label1.Caption:='Сторона a:';
form1.Label2.Caption:='Сторона b:';
form1.Label3.Caption:='Сторона c:';
form1.Label4.Caption:='';
form1.Label5.Caption:='Ответ';
form1.Edit1.Text:='';
form1.Edit2.Text:='';
form1.Edit3.Text:='';
form1.Edit4.Text:='';
end;
procedure TForm1.ComboBox1Click(Sender: TObject);
begin
  Form1.ComboBox2.Clear;
  form1.Label1.Caption:='';
  form1.Label2.Caption:='';
  form1.Label3.Caption:='';
  form1.Label4.Caption:='';
  Edit2.Visible:=false;
  Edit3.Visible:=false;
  Edit4.Visible:=false;
//Заполнение выпадающего списка ComboBox2.===
  if(form1.ComboBox1.ItemIndex=1) then begin
    form1.ComboBox2.Items.Add('Шар');
    form1.ComboBox2.Items.Add('Параллелепипед');
    form1.ComboBox2.Items.Add('Цилиндр');
    form1.ComboBox2.Items.Add('Конус');
    form1.ComboBox2.Text:='Шар';
    form1.Label1.Caption:='Радиус:';
  end;
  if((form1.ComboBox1.ItemIndex=-1)OR(form1.ComboBox1.ItemIndex=0)) then begin
    form1.ComboBox2.Items.Add('Треугольник');
    form1.ComboBox2.Items.Add('Прямоугольник');
    form1.ComboBox2.Items.Add('Трапеция');
    form1.ComboBox2.Items.Add('Круг');
    form1.ComboBox2.Text:='Треугольник';
    Edit2.Visible:=true;
    Edit3.Visible:=true;
    form1.Label1.Caption:='Сторона a:';
    form1.Label2.Caption:='Сторона b:';
    form1.Label3.Caption:='Сторона c:';
 end;
end;
procedure TForm1.ComboBox2Click(Sender: TObject);
begin
  Edit2.Visible:=false;
  Edit3.Visible:=false;
  Edit4.Visible:=false;
  form1.Label1.Caption:='';
  form1.Label2.Caption:='';
  form1.Label3.Caption:='';
  form1.Label4.Caption:='';
//площади.===
  if((form1.ComboBox1.ItemIndex=-1)OR(form1.ComboBox1.ItemIndex=0)) then begin
    if((form1.ComboBox2.ItemIndex=-1)OR(form1.ComboBox2.ItemIndex=0)) then begin
//Треугольник.===
      form1.Label1.Caption:='Сторона a:';
      form1.Label2.Caption:='Сторона b:';
      form1.Label3.Caption:='Сторона c:';
      Edit2.Visible:=true;
      Edit3.Visible:=true;
    end;
    if(form1.ComboBox2.ItemIndex=1) then begin
//Прямоугольник.===
      form1.Label1.Caption:='Длина:';
      form1.Label2.Caption:='Высота:';
      Edit2.Visible:=true;
    end;
    if(form1.ComboBox2.ItemIndex=2) then begin
//Трапеция.===
      form1.Label1.Caption:='Верхняя сторона:';
      form1.Label2.Caption:='Нижняя сторона:';
      form1.Label3.Caption:='Высота:';
      Edit2.Visible:=true;
      Edit3.Visible:=true;
    end;
    if(form1.ComboBox2.ItemIndex=3) then begin
//Круг.===
      form1.Label1.Caption:='Радиус:';
    end;
  end;
//Расчет объемов.===
  if(form1.ComboBox1.ItemIndex=1) then begin
    if((form1.ComboBox2.ItemIndex=-1)OR(form1.ComboBox2.ItemIndex=0)) then begin
//Шар.===
      form1.Label1.Caption:='Радиус:';
    end;
    if(form1.ComboBox2.ItemIndex=1) then begin
//Паралелепипед.===
      form1.Label1.Caption:='Ширина:';
      form1.Label2.Caption:='Высота:';
      form1.Label3.Caption:='Длинна:';
      Edit2.Visible:=true;
      Edit3.Visible:=true;
    end;
    if(form1.ComboBox2.ItemIndex=2) then begin
//Цилиндр.===
      form1.Label1.Caption:='Радиус:';
      form1.Label2.Caption:='Высота:';
      Edit2.Visible:=true;
    end;
    if(form1.ComboBox2.ItemIndex=3) then begin
//Конус.===
      form1.Label1.Caption:='Радиус:';
      form1.Label2.Caption:='Высота:';
      Edit2.Visible:=true;
    end;
  end;
end;
procedure TForm1.Button1Click(Sender: TObject);
var a,b,c,p,s,v:real;
begin
//Расчет площади.===
  if((form1.ComboBox1.ItemIndex=-1)OR(form1.ComboBox1.ItemIndex=0)) then begin
    if((form1.ComboBox2.ItemIndex=-1)OR(form1.ComboBox2.ItemIndex=0)) then begin
//Треугольник.===
        a:=StrToFloat(Edit1.Text);
        b:=StrToFloat(Edit2.Text);
        c:=StrToFloat(Edit3.Text);
        p:=(a+b+c)/2;
        s:=(p*(p-a)*(p-b)*(p-c));
        if s>0 then begin
          s:=sqrt(s);
          label5.Caption:='Площадь треугольника равна: '+FloatToStr(s);
        end else label5.Caption:='Треугольник с заданными параметрами не существует.';
    end;
    if(form1.ComboBox2.ItemIndex=1) then begin
//Прямоугольник.===
        a:=StrToFloat(Edit1.Text);
        b:=StrToFloat(Edit2.Text);
        s:=a*b;
        label5.Caption:='Площадь прямоугольника равна: '+FloatToStr(s);
    end;
    if(form1.ComboBox2.ItemIndex=2) then begin
//Трапеция.===
        a:=StrToFloat(Edit1.Text);
        b:=StrToFloat(Edit2.Text);
        c:=StrToFloat(Edit3.Text);
        s:=(a+b)*c/2;
        label5.Caption:='Площадь трапеции равна: '+FloatToStr(s);
    end;
    if(form1.ComboBox2.ItemIndex=3) then begin
//Круг.===
        a:=StrToFloat(Edit1.Text);
        s:=a*a*pi;
        label5.Caption:='Площадь круга равна: '+FloatToStr(s);
    end;
  end;
//Расчет объема.===
  if(form1.ComboBox1.ItemIndex=1) then begin
    if((form1.ComboBox2.ItemIndex=-1)OR(form1.ComboBox2.ItemIndex=0)) then begin
//Шар.===
        a:=StrToFloat(Edit1.Text);
        s:=a*a*a*pi*4/3;
        label5.Caption:='Объем круга равен: '+FloatToStr(s);
    end;
    if(form1.ComboBox2.ItemIndex=1) then begin
//Паралелепипед.===
        a:=StrToFloat(Edit1.Text);
        b:=StrToFloat(Edit2.Text);
        c:=StrToFloat(Edit3.Text);
        s:=a*b*c;
        label5.Caption:='Объем паралелепипеда равен: '+FloatToStr(s);
    end;
    if(form1.ComboBox2.ItemIndex=2) then begin
//Цилиндр.===
        a:=StrToFloat(Edit1.Text);
        b:=StrToFloat(Edit2.Text);
        s:=a*a*b*pi;
        label5.Caption:='Объем цилиндра равен: '+FloatToStr(s);
    end;
    if(form1.ComboBox2.ItemIndex=3) then begin
//Конус.===
        a:=StrToFloat(Edit1.Text);
        b:=StrToFloat(Edit2.Text);
        s:=a*a*b*pi/3;
        label5.Caption:='Объем цилиндра равен: '+FloatToStr(s);
    end;
  end;
end;
end.
Скачать исходник.


Web программирование   Pascal&Delphi   Бeйсик

Copyright © 2008-2011 Gruzincev Anton , St. Gorno-Altaysk, Russia, helpw@mail.ru