Действия над числами с использованием меню
Переключатель должен принадлежать порядковому типу данных. Использовать вещественные и строковые типы в качестве переключателя не допускается. Разместите на форме экземпляры компонентов: главное меню MainMenu, три метки Label, два окна ввода Edit, панель Panel. Значение выражения-селектора последовательно сравнивается с константами из списков констант. После запуска программы в окне изображаются… Читать ещё >
Действия над числами с использованием меню (реферат, курсовая, диплом, контрольная)
Цель работы — создать программу, выполняющую различные действия над числами.
- 1. После запуска программы в окне изображаются два поля для ввода и панель для вывода результата.
- 2. При выборе пункта меню появляется результат, соответствующий команде.
Рис. 44. Окно разработанной программы до ввода данных
Рис. 45. Окно разработанной программы после ввода данных 3 * * * * *
3. Для выхода из программы необходимо щелкнуть мышью на закрывающей кнопке в строке заголовка.
Описание плана разработки программы
- 1. Откройте новый проект.
- 2. Разместите на форме экземпляры компонентов: главное меню MainMenu, три метки Label, два окна ввода Edit, панель Panel.
- 3. Выполните действия, перечисленные в табл. 20.
- 4. Сохраните проект, запустите и протестируйте его.
Таблица 20
Выделенный объект. | Вкладка окна Object Inspector. | Имя свойства / имя события. | Действие. |
Forml. | Properties. | Caption. | Установка имени формы «Сложение чисел. Меню». |
Label 1. | Properties. | Caption. | Ввод текста надписи: Первое число. |
Label2. | Properties. | Caption. | Ввод текста надписи: Второе число. |
Label3. | Properties. | Caption. | Ввод текста надписи: Результат. |
Panell. | Properties. | Caption. | Очистить свойство. |
Forml. MainMenul. | Properties. | Caption. | Ввести текст пункта меню — Сложить, и нажать Enter. Система присвоит ему имя N1. |
N1: Tmenultem. | Events (выбрать в строке меню на форме пункт Сложить). | OnClick. | Ехес ('+'); |
Forml. MainMenul. | Properties. | Caption. | Ввести текст пункта меню — Вычесть, и нажать Enter. Система присвоит ему имя N2. |
N2: Tmenultem. | Events (выбрать в строке меню на форме пункт Вычесть). | OnClick. | Ехес ('-'); |
Forml. MainMenul. | Properties. | Caption. | Ввести текст пункта меню — Умножить, и нажать Enter. Система присвоит ему имя N3. |
N3: Tmenultem. | Events (выбрать в строке меню на форме пункт Умножить). | OnClick. | Ехес ('*'); |
Forml. MainMenul. | Properties. | Caption. | Ввести текст пункта меню — Разделить, и нажать Enter. Система присвоит ему имя N4. |
N2: Tmenultem. | Events (выбрать в строке меню на форме пункт Разделить). | OnClick. | Ехес ('/'); |
Для каждого пункта меню следует написать процедуру обработки события. Вначале необходимо написать отдельную процедуру, которая будет вызываться из всех четырех пунктов меню В качестве параметра будет один из символов операции: «+», «-», «*», «/».
Чтобы избежать возникновения исключительной ситуации «Деление на ноль», необходимо добавить в оператор выбора проверку второго числа при делении. Если оно равно нулю, то на панель выводится слово «Ошибка».
Фрагмент программы
procedure Exec (ch: char);
label ml;
var
А, В, C: real; ch: char;
S: string; begin
A := StrToFloat (Forml.Editl.Text);
В := StrToFloat (Forml.Edit2.Text); case ch of ' + ':
С := A + B;
С := A — B;
С := A * B;
if В 0 then
С := A / В else begin
S := 'Error'; goto ml end;
end;
S := FloatToStr (C: 10: 3); ml:
Forml.Panell.Caption := S; end;
Обработчики пунктов меню будут следующими: procedure TForml. NlClick (Sender: TObject);
begin
Exec ('+'); end;
procedure TForml. N2Click (Sender: TObject); begin
Exec ('-'); end;
procedure TForml. N3Click (Sender: TObject); begin
Exec ('*'); end;
procedure TForml. N4Click (Sender: TObject); begin
Exec ('/'); end;
В программе использовался оператор ветвления case, который является альтернативой оператору if, если необходимо сделать выбор из конечного числа имеющихся вариантов. Он состоит из выражения, называемого переключателем (селектор), и альтернативных операторов, каждому из которых предшествует свой список допустимых значений переключателя:
case of
: begin end;
: begin соператор 2> end;
: begin end;
else begin
соператор N+l> end
end;
Переключатель (селектор) — выражение, значение которого определяет дальнейший ход выполнения программы (т. е. последовательность инструкций, которая будет выполнена). Список N — список констант. Если константы представляют собой диапазон чисел, то вместо списка можно указать первую и последнюю константу диапазона, разделив их двумя точками.
Выполняется инструкция case следующим образом:
- 1. Сначала вычисляется значение переключателя (который может быть задан выражением).
- 2. Значение выражения-селектора последовательно сравнивается с константами из списков констант.
- 3. Если значение выражения-селектора совпадает с константой из списка, то выполняется соответствующая этому списку группа инструкций. На этом выполнение инструкции case завершается.
- 4. Если значение выражения-селектора не совпадает ни с одной константой из всех списков, то выполняется последовательность инструкций, следующая за словом else.
- 5. Синтаксис инструкции позволяет не писать else и соответствующую последовательность инструкций. Если часть else отсутствует, если значение выражения-селектора не совпадает ни с одной константой из всех списков, то управление передается следующему за case оператору программы.
Переключатель должен принадлежать порядковому типу данных. Использовать вещественные и строковые типы в качестве переключателя не допускается.