Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
LR-INF-01.docx
Скачиваний:
14
Добавлен:
04.10.2021
Размер:
419.12 Кб
Скачать

Тело этой процедуры будет исполняться каждый раз, когда пользователь активизирует элемент интерфейса, ассоциированный с этой процедурой. В данном случае событие – это щелчок мышью на кнопке Завершить.

Обратите внимание, что при описании событийной процедуры используются операции ::, ^, ->. Подробнее их мы обсудим далее. Кратко можно сказать, что:

:: – операция доступа, которая обеспечивает обращение к именованной глобальной области памяти, находящейся вне области видимости. Эта операция применяется при работе с одноимёнными объектами, расположенными во вложенных областях действия имён;

^ – регулируемый указатель, который ссылается на объекты, расположенные в общей регулируемой куче динамической памяти, предоставленной приложению в момент исполнения. Позже, при изучении динамических массивов, мы будем создавать свои объекты (массивы), выделяя для них память и освобождая ее после того, как объект уже не нужен. Память под такие объекты выделяется в так называемой неуправляемой куче и указатели на участки памяти в такой куче обозначаются символом «*». А в среде CLR приложение отличается тем, что его заготовка обеспечивает подключение к приложению специального системного пространства System, содержащего объекты, размещение в памяти, которых надо автоматически регулировать. Режим CLR работает уже с управляемой кучей памяти, в которой размещение объектов и ее освобождение от них происходит под управлением среды. В этой среде употребляются так называемые регулируемые указатели на объекты и для таких указателей принято специальное обозначение: вместо символа «*» применяется символ «^»;

-> операция косвенного выбора компонентов структурированного объекта.

  1. Теперь, когда написан код, связанный с кнопкой Завершить, надо написать код для кнопки Вычислить.

Однако сначала необходимо написать и сохранить в отдельном файле процедуры, которые реализуют вычисление периметра и площади треугольника.

Так как при нажатии на кнопку Вычислить должны вычисляться периметр и площадь треугольника, то код событийной процедуры для кнопки должен содержать операторы ввода исходных данных (координат вершин треугольника), оператор(ы) вычисления периметра и площади треугольника и операторы вывода результатов. Ранее, в лабораторной работе 11 прошлого семестра, для этих целей мы создавали отдельные пользовательские функции. Сейчас для ввода и вывода пока отдельных функций делать не будем, но вычисление периметра и площади треугольника реализуем функцией пользователя PS. Так же, как и раньше, код этой и вспомогательных функций будем записывать в отдельном файле и раздельно компилировать для локализации возможных ошибок. Поэтому, прежде, чем записывать код событийной процедуры для кнопки Вычислить, создадим файл с функцией PS и необходимых вспомогательных функций, разработанных ранее при изучении метода пошаговой детализации (лабораторная работа 11 прошлого семестра).

  1. Для создания такого файла и записи в него необходимых процедур-функций, вычисляющих периметр и площадь треугольника необходимо щелкнуть в панели Обозреватель решений на строку Файлы исходного кода правой кнопкой мышки и в появившемся контекстном меню выполнить команду Добавить, а затем команду Создать элемент.

В открывшемся окне Добавление нового элемента Проект ЛР-1 в поле Имя ввести имя файла, например, Resh, где будут находиться программные коды пользовательских функций, вычисляющие периметр и площадь треугольника. Затем активизировать элемент Файл С++ (.срр) и нажать на кнопку Добавить.

После чего откроется редактор программного кода с вкладкой Resh.cрp.

В редактор кода добавить тексты функций, представленные на рисунке 8.

Рисунок 8.

Откомпилировать созданный файл, выполнив команду Компилировать элемента меню Построение, и после устранения возможных ошибок добиться успешной компиляции.

  1. Теперь можно можно написать программный код, который будет выполняться при нажатии кнопки Вычислить, то есть событийную процедуру button1_Click. Чтобы отобразить форму, щелкнуть в окне Обозреватель решений на пиктогрампе Form1.h или на вкладке Form1[Конструктор].

    Дважды щелкнуть мышью на кнопке Вычислить.

    Через некоторое время появится окно Редактор кода, и рядом с процедурой события, связанной с кнопкой button2, появится заготовка процедуры события, ассоциированная с кнопкой button1.

Хотя текст этой кнопки был изменен на Вычислить, ее имя в программе осталось button1. (Имя и текст элемента интерфейса могут быть различными для удобства программирования.) Каждый объект может иметь несколько связанных с ним процедур – по одной для каждого распознаваемого события.

Дополним событийную процедуру программным кодом: операторами ввода зачений координат вершин треугольника из текствых полей, оператором вызова функции PS(x1,y1,x2,y2,x3,y3,p); и операторами отображения в текстовых полях соответствующих результатов.

Рисунок 9

Для ввода и вывода данных в текстовое поле используется свойство Text объектов textBox1textBox6 с именами txtx1, txty1,txtx2,txty2,txtx3,txty3, записываемое через операцию косвенного выбора (->). Так как значения, заданные в объектах textBox, имеют строковый тип данных String, то при чтении данных из текстовых полей в переменные числовых типов, необходимо их явное преобразование методами класса Convert, например, метод Convert::ToDouble(х) преобразует тип записанного в скобках объекта х в числовой тип Double.

Также и для вывода числовых данных в текстовые поля нужно их явное преобразование в строковый тип:

txtPttr -> Text = p.ToString();

  1. Не забудьте также записать прототип функции PS() в начало файла Form1.h, сразу после автоматически сгенерированной препроцессорной директивы #pragma once, (это директива для контроля за тем, чтобы конкретный исходный файл при компиляции подключался строго один раз).

  2. Сохранить введенный программный код, выполнив команду Сохранить все элемента главного меню Файл.

Команда Сохранить все сохраняет все файлы, входящие в проект – собственно файл проекта, файл формы, все модули кода и все связанные с приложением компоненты. Если это первое сохранение проекта, то, возможно, появится диалоговое окно Сохранить проект запрашивающее имя и место для сохранения проекта. (Если ваша копия VS настроена так, чтобы запрашивать место сохранения проекта при его создании, то сейчас диалогового окна Сохранить проект вы не увидите – VS просто сохранит все изменения.) Если необходимо сохранить только элемент, с которым в настоящий момент работаете (форму, модуль кода или что-либо еще), то используется команда Сохранить, также находящаяся в меню Файл. Если необходимо сохранить текущий элемент с другим именем, то используется команда Сохранить как.

Соседние файлы в предмете Информатика