002 — Программа расчета площади круга и объема шара

Разработка простейшей программы расчета площади круга и объема шара как Windows-приложения

В этой теме рассматривается пример создания простейшего приложения, предназначенного для эксплуатации в среде Windows.


Содержание


Условие задачи

Составить программу для вычисления площади круга S и объема шара V на основе заданного радиуса R. Программу реализовать как Windows-приложение.

 

Математическая постановка задачи

Перед началом разработки приложения необходимо осуществить математическую постановку задачи, то есть, определить формулы по которым будет произведен расчет а также входные данные и исходящие результаты.

Площадь круга вычисляется по формуле:

S = π ·

Входящим значением здесь есть радиус окружности R, результатом есть площадь круга – S.
Объем шара вычисляется по формуле:

V = 4/3 · π · R³

Входящим значением здесь есть, опять же, радиус окружности R, результат – объем шара (хотя, как известно, «шара» объема не имеет).
В обеих формулах фигурирует константа π, равная 3,14159.
Таким образом, нарисуем последовательность этапов решения задачи (рисунок 1).

01_02_00_002_01r

Рис. 1. Этапы решения задачи

 

Выполнение

1. Создание приложения типа VCL Form Application.

Запустить систему визуальной разработки приложений Embracadero RAD Studio Delphi 2010 и создаем Windows-приложение. Подробный пример создания приложения по шаблону Windows Form Application описан здесь.

Первоначальный вид формы приложения перед началом проектирования изображен на рисунке 2.

01_02_00_002_02_

Рис. 2. Вид окна программы

 

2. Вкладка Standard панели инструментов Tool Palette.

В данном приложении необходимо использовать несколько компонент, которые перечислены ниже:

  • компонент типа TLabel, представляющий строку текста, которая выводится на форме;
  • компонент типа TButton, представляющий кнопку на форме;
  • компонент типа TEdit, являющийся строкой ввода текста.

Все эти компоненты размещены на панели инструментов Tool Palette на вкладке Standard (см. рис. 3.).

01_02_00_002_03_

Рис. 3. Вкладка Standard на палитре компонент

 

3. Компонент TLabel

3.1. Размещение компонента TLabel на форме

Для этого необходимо кликнуть мышкой на компоненте TLabel (рис. 4), а потом кликнуть в верхнем левом углу формы, как изображено на рис. 5.

01_02_00_002_04_

Рис. 4. Компонент TLabel на палитре инструментов

01_02_00_002_05_Рис. 5. Компонент типа TLabel на главной форме программы

 

3.2. Задание текста в TLabel

Для выполнения каких-либо действий с компонентом TLabel его сначала необходимо выделить с помощью «мышки» или выбором в панели Object Inspector. После этого устанавливаем свойство Caption компонента TLabel в значение «R =» (рис. 6).

01_02_00_002_06_

Рис. 6. Свойство Caption

В результате на форме текст «Label1» изменится на текст «R =«.
Object Inspector дает возможность просматривать много других свойств этого компонента. В нашем случае нас будет интересовать свойство Name, в котором содержится значение названия переменной (объекта). По умолчанию это значение равно «Label1«. Это значит, что во время написания программного кода к свойствам этого компонента можно обращаться с префиксом «Label«. Например, для того чтобы в программе изменить свойство Caption необходимо набрать следующую строку:

Label1.Caption := 'R = ';

Таким же образом выносим на форму компоненты с именами Label2 и Label3 чуть ниже предыдущего компонента. Устанавливаем значения свойства Caption соответственно в «S = » и «V = «.

Форма приложения должна иметь приблизительно следующий вид (рис. 7).

01_02_00_002_07_

Рис. 7. Форма приложения после размещения компонент Label1, Label2, Label3

Перенос и обработка всех других компонент с палитры Tool Palette осуществляется аналогично.

 

4. Компонент TEdit

Добавляем из палитры Tool Palette с вкладки Standard компонент TEdit, представляющий строку ввода. С помощью использования этого компонента будем получать значения радиуса окружности введенного пользователем с клавиатуры. После добавления компонента на форму система Delphi создает компонент-переменную с названием Edit1 (свойство Name).

Очищаем свойство Text компонента.

 

5. Компонент TButton

Добавляем из палитры Tool Palette компонент TButton, представляющий собой обычную кнопку, после нажатия на которой будет вычисляться площадь круга и объем шара. В приложении системой Delphi автоматически будет добавлено компонент-переменную с именем Button1.

Свойство Caption компонента устанавливаем в значение «Вычислить«.

Форма приложения в режиме проектирования будет иметь вид, изображенный на рис. 8.

01_02_00_002_08r

Рис. 8. Форма приложения после добавления компонент TEdit и TButton

 

6. Программирование события клика на кнопке «Вычислить«

Следующим шагом в разрабатываемом приложении есть программирование события в Delphi, которое возникает при нажатии на кнопке Button1. Событие клика мышкой на кнопке называется OnClick.

Delphi 2010 автоматически создает фрагмент программного кода, в котором необходимо вписать собственный код обработки события. Созданный системой код имеет вид:

procedure TForm1.Button1Click(Sender: TObject);
begin

end;

Первоочередным заданием есть определение входных данных, результатов или промежуточных переменных, которые будут использоваться в программе.

Согласно условия задачи в нашей программе опишем три переменные с соответствующим обозначением:

  • R – радиус окружности;
  • S – площадь круга;
  • V – объем шара.

Все переменные должны быть вещественного типа.
Также в программе используется одна константа – число Пи. Обозначим его именем Pi. Следует отметить, что в Delphi есть встроенная функция с именем Pi, но в нашем приложении она не будет задействована. Таким образом, описание переменных и констант перед словом begin будет следующим:

const
  Pi = 3.1415; // Число Пи
var
  R:real; // Радиус окружности
  S:real; // Площадь круга
  V:real; // Объем шара

Между операторами begin и end вписываем следующие строки основного программного кода:

// 1. Чтение значения радиуса окружности из Edit1.Text
R := StrToFloat(Edit1.Text);
// 2. Вычисление площади круга
S := Pi * R * R;
// 3. Вычисление объема шара
V := 4/3 * Pi * R * R * R;
// 4. Вывод результатов с точностью 
//    3 знака после запятой
Label2.Caption:='S='+FloatToStrF(S,ffFixed,8,3);
Label3.Caption:='V='+FloatToStrF(V,ffFixed,8,3);

Объясним некоторые функции (методы), использующиеся в программном коде. Функция StrToFloat осуществляет преобразование строчной величины Edit1.Text в число вещественного типа. Например, после выполнения следующего кода

x := StrToFloat('-3.675');

значение х станет равно -3.675.

В пунктах 2 и 3 происходят обычные вычисления площади круга и объема шара с помощью арифметических операций языка Паскаль.

В пункте 4 осуществляется вывод результатов. Поскольку программа реализована как Windows-приложение, то для вывода результата достаточно заполнить значение свойства Caption в компонентах Label2 (площадь) и Label3 (объем).

Функция FloatToStrF осуществляет обратное преобразование к функции StrToFloat, то есть преобразует число вещественного типа в строку. Например, для преобразования числа 2.87 в строку с точностью 4 знака после запятой нужно написать:

v := 2.87;
str := FloatToStrF(v, ffFixed, 8, 4);

где v – переменная вещественного типа; str – переменная строкового типа; ffFixed – формат преобразования. Константа 8 означает, что используется общая ширина вывода размером в 8 знаков. Константа 4 означает точность после запятой.

Общий листинг процедуры обработки события OnClick компонента Button1 имеет вид.

procedure TForm1.Button1Click(Sender: TObject);
const
  Pi = 3.1415; // Число Пи
var
  R:real; // Радиус окружности
  S:real; // Площадь круга
  V:real; // Объем шара
begin
  // 1. Чтение значения радиуса 
  // окружности из Edit1.Text
  R := StrToFloat(Edit1.Text);
  // 2. Вычисление площади круга
  S := Pi * R * R;
  // 3. Вычисление объема шара
  V := 4/3 * Pi * R * R * R;
  // 4. Вывод результатов с точностью 
  //    3 знака после запятой
  Label2.Caption:='S='+FloatToStrF(S,ffFixed,8,3);
  Label3.Caption:='V='+FloatToStrF(V,ffFixed,8,3);
end;

 

7. Установка названия приложения

Чтобы изменить название приложения вместо непонятного «Form1» нужно в свойстве Caption главной формы установить значение «Расчет площади круга и объема шара«.

 

8. Результат выполнения приложения

После запуска приложения (программы) на исполнение отображается окно с запросом о введении радиуса окружности R. Вводим значение 2,5. Окно с результатом выполнения программы изображено на рисунке 9.

01_02_00_002_09r

Рис. 9. Результат выполнения приложения

 

Итоги

При решении данной задачи было использовано компоненты следующих типов:

  • TLabel — компонент типа «метка», представляющий обычную текстовую строку для вывода на форме;
  • TButton — компонент, представляющий обычную кнопку на форме;
  • TEdit — компонент реализующий строку ввода, предназначенную для получения информации введенной пользователем с клавиатуры.

Для проектирования интерфейса программы использовалась панель инструментов Tool Palette а также инспектор объектов Object Inspector.

Также рассмотрено две дополнительные функции, осуществляющие преобразование строки в число и обратно, а именно:

  • функция StrToFloat, преобразующая строку, отображающую число, в вещественное число (например, ‘3,678’ => 3.678) с учетом региональных настроек Windows;
  • функция FloatToStrF, преобразующая вещественное число в строковой вид соответственно заданному формату (например 2.88 => ‘2,880’) с учетом региональных настроек Windows.


Связанные темы