- •Информатика
- •Программирование в среде Delphi
- •Лабораторная работа № 2
- •Создание программы вычисления площади треугольника.
- •Обобщенная схема процесса обработки информации.
- •Вид проекта.
- •Структура главной формы.
- •Свойства формы и некоторые особенности ее поведения.
- •Свойства и особенности «работы» строк ввода/редактирования.
- •Свойства и функциональные характеристики командных кнопок.
- •Создание формы, вставка «пассивных» компонент и элементов управления.
- •Создание программ обработки событий и решения задачи.
- •Начнем с создания обработчика события «Открытие формы» – «OnCreate».
- •Создание программы для решения основной задачи (обработчика события OnClick кнопки «Вычислить» («But_exe»)).
- •Обеспечение перехода к расчетам по новому участку.
- •Обеспечение работы кнопки «Завершить».
-
Создание программы для решения основной задачи (обработчика события OnClick кнопки «Вычислить» («But_exe»)).
Алгоритм решения задачи (вычисление площади) мы не приводим, но для сложных задач настоятельно рекомендуем составлять алгоритмы с использованием блок‑схем или текстовой формы.
Для создания программы – выделите кнопку «Вычислить» и откройте заготовку события OnClick. Текст процедуры должен иметь следующий вид:
procedure TForm1.But_exeClick(Sender: TObject);
begin
a:=StrToInt(Edit1.Text);
b:=StrToInt(Edit2.Text);
c:=StrToInt(Edit3.Text);
{Вычисление площади треугольника}
P:=(a+b+c)/2;
S:=Sqrt(P*(P-a)*(P-b)*(P-c));
S:=S/10000; {перевод в ГА}
S:= Round(S*100+0.5)/100;
ShowMessage('Площадь треугольника равна'+#13+FloatToStr(S)+' га.');
end;
Первые три оператора (a:= StrToInt(Edit1.Text);….) используются для перезаписи данных из окошек ввода/редактирования в соответствующие переменные. Причем выполняется преобразование типов: текстовое представление чисел, введенных в окошки Edit… преобразуются в целые числа.
При вычислениях используются стандартные функции: SQRT(X); и Round(X). Первая вычисляет квадратный корень из числа Х, а вторая – округляет значение числа Х до целого.
Результат решения задачи выводится в специальное окно сообщений, которое создается стандартной (библиотечной) процедурой ShowMessage(ST), где ST – переменная или константа строкового типа (текст сообщения). Для перевода значения переменной S в строковый тип используется стандартная функция FloatToStr(S).
Запустите программу и введите значения сторон: 1000, 2000, 2000. Перевод курсора на следующее окошко ввода можно выполнить клавишей TAB, а на предыдущее – комбинацией клавиш: Shift – TAB. Нажмите кн. «Вычислить».
Результат вычисления – виден в окне:

Закройте это окно, установите курсор (мышкой) в окошко «Сторона С», сотрите значение 2000 и введите 3000. Нажмите кн. «Вычислить». В результате мы получим значение площади равное нулю. Данный результат – некорректен, т. к. треугольник – не существует. В следующей работе мы добавим операторы специальной проверки корректного задания исходных данных, чтобы не допустить подобных результатов.
Кроме таких ошибок, мы не застрахованы от случайного ввода текстовых символов вместо цифр. Перейдите в окошко «Сторона С» и введите 200а0 (намеренно допустим ошибку в указании числа). Нажмите кн. «Вычислить». Система выведет на экран следующее сообщение:

Самостоятельно постарайтесь разобраться в его тексте. Нажмите ОК.
Введите еще раз команду Run, чтобы продолжить работу программы и Вы получите сообщение:

В этом сообщении в более краткой форме обозначена причина ошибки. Нажмите ОК и кн. «Завершить». Завершите работу программы и вернитесь в конструктор.
На этих «контрольных» примерах мы убедились, что в нашей программе не хватает элементов, связанных с проверкой корректности исходных данных, что приводит либо к неправильному выводу результатов, либо некорректному завершению работы программы.. В следующей работе мы эти вопросы постараемся решить.
