Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Метода(c++)

.pdf
Скачиваний:
39
Добавлен:
04.06.2022
Размер:
1.77 Mб
Скачать

6.В компонент Panel добавить компонент Label и компонент SpinEdit. Подпись для Label – «N=», имя – lblN, имя для SpinEdit – spe. Расположение компонент – см. рис. 14.

7.Для компонента Panel установить значения свойств BevelInner и BevelOuter в bvNone.

8.Перейти в обработчик события ОnClick для компонента rbtnManual и указать код, представленный на рис. 15:

rbtn1->Enabled=False; rbtn2->Enabled=False; rbtn3->Enabled=False; lblN->Enabled=False; sspe->Enabled=False;

Рис. 15. Новый код

Рис. 14. Расположение компонентов на панели

9. Скопировать в буфер обмена только что набранный код; перейти в обработчик события OnClick для компонента rbtnRand и вставить текст, хранящийся в буфере. Выделить вставленный текст, выполнить Search -> Replace; в поле «TextToFind» указать False, в поле «Replace with» указать

True; снять флажок «Prompt on Replace»; в панеле «Scopе» выбрать вариант

«SelectedText» и нажать кнопку «Replace All».

10.Запусить проект, убедиться в его работоспособности и проверить правильность работы функций rbtnManualClick и rbtnRandClick.

11.Перейти в обработчик события OnClick для кнопки «Заполнить таблицу». В обработчике написать код, согласно следующему алгоритму (аналогичные действия уже были выполнены в лабораторной работе №5):

12.По возможности оптимизировать код.

13.Запустить программу и убедиться в ее работоспособности.

14.Получить индивидуальное задание по одномерным массивам.

Упражнение 4. Заполнение двумерного массива с помощью датчика

случайных чисел и вывод результата в компонент StringGrid.

70

1.Открыть проект проект InpTable из папки InpTableCol и сохранить его в папке InpTable2 с именем prTable2, файл модуля формы с именем frmTable2.

2.Добавить компоненты Label и SpinEdit для регулировки количества строк в таблице. Подписи и свойства настроить самостоятельно.

3.Заменить код события OnClick кнопки «Заполнить таблицу» для ситуации, когда выбран вариант «Ручной ввод» на следующий:

unsigned char ColCount; unsigned char RowCount; ColCount = speCount->Value+1;

RowCount = ….;// написать самостоятельно

StrGr->ColCount= ColCount;

StrGr->RowCount= ….;//написать самостоятельно StrGr ->Cells[0][0]="Строка/Столбец";

for (int i=1;i<ColCount;i++) {StrGr ->Cells[i][0]=i;} for (int i=1;i<RowCount;i++) {StrGr ->Cells[0][i]=i;} for (int i=1;i<ColCount;i++)

{

for (int j=1;j<RowCount;j++)

{

StrGr ->Cells[i][0]=i*j;

}

}

StrGr ->Visible = True;

4.Запустить программу, убедиться в ее верной работоспобности для измененного варианта. Если программа работает не верно, самостоятельно исправить ошибку.

4.Самостоятельно изменить код для всех остальных ситуаций.

5.Добавить кнопку «Обнулить строку» и компонент SpinEdit, который будет задавать номер обнуляемой в таблице строки. Перейти в обработчик события OnClick для кнопки «Обнулить строку» и самостоятельно написать соответствующий программный код.

Содержание отчета:

1.Титульный лист

2.Цель работы

3.Краткие теоретические сведения (список используемых операторов, их цель, синтаксис, формат и проч.)

4.Коды модулей С++

5.Копии форм и сведения о свойствах компонентов.

71

6.Копии экрана с примерами работы программ

7.Схемы алгоритмов программ.

8.Выводы по работе.

Контрольные вопросы

1.Для каких целей используется компонент CheckBox?

2.Перечислите свойства компонента CheckBox.

3.В каких случаях рекомендуется использовать компонент RadioButton?

4.Перечислите свойства компонента RadioButton.

5.Какое событие является важнейшим для компонентов CheckBox и RadioButton?

6.Почему в операторе ветвления п. 6 упражнения 1 в условии нет логического выражения?

7.Перечислите цель и свойства компонента Panel.

8.В чем отличие компонента GroupBox от компонента Panel?

9.Для каких целей используется компонент RadioGroup? Перечислите и поясните его свойства.

10.Расскажите о цели, свойствах и событиях компонента StringGrid.

72

Приложение

1. Библиотечные математические функции С++

Требуют подключения заголовочного файла math.h (см п. 7 их упражнения «Работа с компонентом

Memo»).

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

Таблица 5.

Функция

Описание работы функции

 

 

acos

Вычисление арккосинуса

 

 

asin

Вычисление арксинуса

 

 

atan

Вычисление арктангенса

 

 

сbrt

Вычисление кубического корня

 

 

сeil

Округление до ближайшего большего целого числа

 

 

copysign

возвращает величину, абсолютное значение которой равно x, но знак которой соответствует

 

знаку y

 

 

cos

Вычисление косинуса

 

 

exp

Вычисление экспоненты

 

 

exp2

Вычисление 2х

fabs

Вычисление модуля

 

 

floor

Округление до ближайшего меньшего целого числа

 

 

fmax

наибольшее значение среди x и y

 

 

fmin

наименьшее значение среди x и y

 

 

fmod

вычисление остатка от деления нацело (аналог – оператор «%»)

 

 

frexp

разбивает число с плавающей точкой на мантиссу и показатель степени.

 

 

hypot

Вычисление гипотенузы (sqrt(x² + y²))

 

 

llround

округление до ближайшего целого в направлении от нуля

 

 

log

Вычисление натурального логарифма

 

 

log10

Вычисление десятичного логарифма

 

 

Log2

Вычисление логарифма по основанию 2

 

 

lrint

округление до ближайшего целого

 

 

lround

округление до ближайшего целого в направлении от нуля

 

 

modf

извлекает целую и дробную части (с учетом знака) из числа с плавающей точкой

 

 

nearbyint

округление аргумента до целого значения в формате числа с плавающей точкой

 

 

pow

Возводит число, принимаемое в качестве аргумента х, в степень, принимаемую в качестве

 

аргумента y.

 

 

round

округление до целого

 

 

sin

Вычисление синуса

 

 

sqrt

Вычисление квадратного корня

 

 

tan

Вычисление тангенса

 

 

trunc

Округление до ближайшего целого числа в направлении к нулю

 

 

2. Дополнительные свойства для компонентов

Название

Смысл свойства

свойства

 

BiDiMode определяет направление ввода текста, действует в Windows с поддержкой языков с порядком ввода.

Возможные значения

73

 

 

 

 

 

 

 

 

bdLefttoRight

слева на право

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

bdRighttoLeft

справо на лево

 

 

 

 

 

 

 

 

 

 

 

Tag

 

Cистемой не используется. Пользователь может определить и использовать его по своему

 

 

усмотрению, помещая в него необходимую информацию. Например, можно в процессе

 

 

проектирования или программно в процессе выполнения задать некоторое значение Tag

 

 

группе компонентов и затем оперировать с этой группой.

 

 

 

 

 

 

 

 

 

 

Action

 

Значение свойства выбирается во время проектирования из выпадающего списка

 

 

предусмотренных действий в Object Inspector. Этот список формируется в процессе

 

 

проектирования размещением на форме компонента TActionList (вкладка Standart) и

 

 

заданием его свойств.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Align

 

определяет,

остается ли компонент неизменным при изменении размеров содержащей его

 

 

формы, панели, другого компонента, или он изменяется, занимая всю доступную

 

 

площадь, ее верхнюю, нижнюю, левую или правую часть.

 

 

Возможные значения :

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

alNone

 

Компонент остается там, где он размещен во время проектирования.

 

 

 

 

Размеры его не изменяются.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

alTop

 

Компонент занимает всю верхнюю часть контейнера и во время выполнения

 

 

 

 

приложения его ширина изменяется при изменении ширины контейнера.

 

 

 

 

Высота компонента остается неизменной.

 

 

 

 

 

 

 

 

 

 

 

 

 

alBottom

 

Компонент занимает всю нижнюю часть контейнера и во время выполнения

 

 

 

 

приложения его ширина изменяется при изменении ширины контейнера.

 

 

 

 

Высота компонента остается неизменной.

 

 

 

 

 

 

 

 

 

 

 

 

 

alLeft

 

Компонент занимает всю левую часть контейнера и во время выполнения

 

 

 

 

приложения его высота изменяется при изменении высоты контейнера.

 

 

 

 

Ширина компонента остается неизменной.

 

 

 

 

 

 

 

 

 

 

 

 

 

alRight

 

Компонент занимает всю правую часть контейнера и во время выполнения

 

 

 

 

приложения его высота изменяется при изменении высоты контейнера.

 

 

 

 

Ширина компонента остается неизменной.

 

 

 

 

 

 

 

 

 

 

 

 

 

alClient

 

Компонент занимает всю клиентскую область контейнера и во время

 

 

 

 

выполнения приложения его размеры изменяются при изменении размеров

 

 

 

 

контейнера. Если в контейнере часть клиентской области уже занята,

 

 

 

 

компонент занимает всю ее оставшуюся часть.

 

 

 

 

 

 

 

 

 

 

Anchors

 

Определяет привязку данного компонента к родительскому при изменении размеров

 

 

последнего. Свойство представляет собой множество, которое может содержать

 

 

следующие элементы:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

akTop

 

Компонент привязан к верхнему краю родительского

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

akLeft

 

Компонент привязан к левому краю родительского

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

akRight

 

Компонент привязан к правому краю родительского

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

akBottom

 

Компонент привязан к нижнему краю родительского

 

 

 

 

 

 

 

 

 

 

BoundsRect

 

Свойство позволяет получить одновременно координаты пикселей всех четырех углов

 

 

компонента, используя тип TRect. Иной способ получить те же координаты -

 

 

использовать свойства компонента Left, Top, Width, Height и соответствующие

 

 

вычисления.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Constraints

 

Определяет ограничения, налагаемые на размер компонента. Тип TSizeConstraints.

 

 

Возможные значения

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

MaxHeight

 

максимальная высота

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

MinHeight

 

минимальная высота

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

MaxWidth

 

максимальная ширина

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

MinWidth

 

минимальная ширина

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

74

DragCursor

 

отвечает за изображение курсора при перемещении его в области компонента в процессе

 

 

перетаскивания.

 

 

 

 

 

 

 

DragKind

 

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

 

 

Drag&Drop ), или он будет перетаскиваться для встраивания (по технологии Drag& Doc).

 

 

 

DragMode

 

определяет поведение компонента в процессе его перетаскивания.

 

 

Возможные значения:

 

 

 

 

 

 

dmAutomatic

От программиста не требуется обработка каких-либо событий.

 

 

 

 

Компонент готов к перетаскиванию. Пользователю достаточно

 

 

 

 

щелкнуть на его изображении и начать перетаскивать.

 

 

 

 

 

 

 

 

DmManual

 

Компонент не может быть перетащен, пока приложение не вызовет

 

 

 

 

метод BeginDrag

 

 

 

 

 

Parent

 

определяет родительский компонент, т.е. компонет-контейнер, содержащий данный

 

 

компонент. Контейнерами являются оконные компоненты, такие, как формы, панели и

 

 

некоторые другие. Расположенные на них дочерние компоненты могут наследовать часть

 

 

свойств содержащего их контейнера Изменение свойства во время выполнения

 

 

заставляет компонент перемещаться на экране в клиентскую область нового родителя.

 

 

 

ParentColor

 

определяет, наследует ли компонент цвет содержащего его компонента-контейнера.

 

 

 

ParentFont

 

определяет, будет ли для данного компонента использоваться шрифт (свойство Font)

 

 

родительского компонента-контейнера.

 

 

При изменении свойства Font в каком-то компоненте, его свойство ParentFont

 

 

автоматически сбрасывается в False.

 

 

 

ParentShowHint

 

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

 

 

контейнера или формы разрешать или запрещать отображение всплывающей подсказки.

 

 

Если свойство ParentShowHint установлено в True, то разрешение или запрет отображения

 

 

ярлычков определяется свойством ShowHint родительского компонента. Если же свойство

 

 

ParentShowHint установлено в False, то отображение окон подсказки определяется

 

 

свойством ShowHint самого компонента.

 

 

При задании в компоненте значения ShowHint, равного True, его свойство ParentShowHint

 

 

автоматически сбрасывается в False.

 

 

 

PopupMenu

 

обеспечивает появление всплывающего меню компонента

 

 

Объект меню имеет тип TPopupMenu. Если в этом объекте свойство AutoPopup

 

 

установлено в true, то меню будет появляться автоматически. В противном случае надо

 

 

отображать меню с помощью метода Popup класса TPopupMenu.

Компонент Button (кнопка)

Назв

 

 

 

 

 

Смысл

ание

 

 

 

 

 

 

 

 

 

 

 

 

Canc

 

 

Если имеет значение True, событие Click кнопки возникает при нажатии клавиши Esc

el

 

 

 

 

 

 

 

 

 

 

 

 

Moda

 

 

В модальных диалоговых окнах значение этого свойства, не равное mrNone, при

lResult

 

нажатии на кнопку закроет окно и запишет свое значение в свойство ModalResult формы.

 

 

 

 

 

4. Дополнительные сведения о событиях

 

 

 

 

 

 

 

 

Имя события

 

 

Возникает

 

Примечание

 

 

 

 

 

 

 

OnStartDrag

 

Когда

пользователь

начинает

перетаскивать

 

 

 

 

компонент, т. е. нажал над компонентом левую кнопку

 

 

 

 

мыши, и, не отпуская ее, начал смещать указатель

 

 

 

 

мыши

 

 

 

 

 

 

 

 

 

 

 

 

75

OnDragDrop

когда

пользователь

отпускает

перетаскиваемый

 

 

 

 

компонент над другим компонентом.

 

 

 

 

 

 

 

 

 

 

onDragOver

когда перетаскиваемый компонент пересекает границу

 

 

 

 

данного компонента и оказывается над ним.

 

 

 

 

 

 

 

OnEndDrag

при любом окончании процесса переноса, как

может применяться для реакции

 

успешного, так и неудачного (когда компонент

приложения на

перетаскивание

 

отпущен над формой или компонентом, не способном

(например, "выполнено успешно"

 

его принять).

 

 

 

 

или "неудача").

 

 

 

 

 

 

 

 

OnMouseDown

Когда над компонентом была нажата кнопка мыши

 

 

 

 

 

 

 

 

 

 

 

 

 

OnMouseMove

Когда

указатель

мыши

перемещается

над

 

 

 

компонентом

 

 

 

 

 

 

 

 

 

 

 

 

OnMouseUp

Когда пользователь отпустил нажатую кнопку мыши

 

 

 

 

над компонентом

 

 

 

 

 

 

 

 

 

 

 

 

OnMouseLeave

Когда указатель мыши выходит за пределы элемента

 

 

 

 

управления.

 

 

 

 

 

 

 

 

 

 

onKeypress

при нажатии пользователем символьной клавиши.

Не позволяет отследить нажатие

 

Данное событие имеет параметр Key, который

функциональных

клавиш

и

 

содержит символ нажатой клавиши и имеет тип char.

клавиш-комбинаций <Shift>+…,

 

При этом различаются символы верхнего и нижнего

<Ctrl> + … и <Alt>+ ….

 

 

регистров, а также раскладка клавиатуры.

 

 

 

 

 

 

 

OnKeyUp

при отпускании пользователем любой ранее нажатой

позволяет обрабатывать нажатия

 

клавиши

 

 

 

 

всех клавиш

 

 

 

 

 

 

 

OnKeyDown

при нажатии пользователем на какую-либо клавишу

 

 

 

 

 

 

 

 

onMouseDown

при нажатии пользователем любой кнопки мыши в тот

 

 

 

 

момент, когда указатель мыши находится над

 

 

 

 

компонентом.

 

 

 

 

 

 

 

 

 

 

 

 

onMouseUp

Когда пользователь отпускает кнопку мыши над

 

 

 

 

компонентом

 

 

 

 

 

 

 

 

 

 

onMouseMove

наступает при перемещении указателя мыши над

При нажатой левой кнопке мыши

 

компонентом.

 

 

 

 

данное событие не возникает.

 

 

 

 

onPaint

когда приложение получает сообщение Windows о

Изображение может испортиться

 

необходимости

перерисовки

испорченного

от перекрытия окон одного или

 

изображения.

 

 

 

 

нескольких приложений.

 

 

 

 

 

 

 

 

 

 

 

76

СПИСОК ЛИТЕРАТУРЫ

1.Вальпа О. Д. Borland C++ Builder. Экспресс-курс. – СПб.: БХВ-Петербург,

2006. – 224 с.: ил.

2.Культин Н. Б. С++ Builder. – 2-е изд., перераб. и доп. – СПб.: БХВПетербург, 2008. – 464 с.: ил. + CD-ROM – (Самоучитель)

3.Пахомов Б. И. С/С++ и Borland C++ Builder для студента. – СПб.: БХВПетербург, 2006 – 448 с.: ил.

4.Павловская Т. А. C/C++. Процедурное и объектно-ориентированное программирование: Учебник для вузов. Стандарт 3-го поколения. — СПб.:

Питер, 2015. — 496 с.

5.Мещеряков П. С. Прикладная информатика : учебное пособие. / П. С. Мещеряков. — Томск : Эль Контент, 2012. — 132 с

6.https://code-live.ru/tag/cpp-manual/

7.http://www.cyberforum.ru/cpp-beginners/

8.http://www.cyberforum.ru/cpp-builder/

9.Липпман, С. Язык программирования С++. Полное руководство. [Электронный ресурс] / С. Липпман, Ж. Лажойе. – Электрон. дан. — М. :

ДМК Пресс, 2006. – 1105 с. – Режим доступа: http://e.lanbook.com/book/1216

– Загл. с экрана.

77

 

ОГЛАВЛЕНИЕ

Введение...................................................................................................................

3

ЛАБОРАТОРНАЯ РАБОТА №1

......................................................................... 4

ЛАБОРАТОРНАЯ РАБОТА №2

....................................................................... 13

ЛАБОРАТОРНАЯ РАБОТА №3

....................................................................... 19

ЛАБОРАТОРНАЯ РАБОТА №4

........................................................................ 24

ЛАБОРАТОРНАЯ РАБОТА №5

....................................................................... 28

ЛАБОРАТОРНАЯ РАБОТА №6

....................................................................... 34

ЛАБОРАТОРНАЯ РАБОТА №7

....................................................................... 56

Приложение ...........................................................................................................

71

Список литератуы .................................................................................................

75

78

Учебно-методическое пособие

Андреева Ольга Марковна, Григорьев Евгений Борисович, Маркелов Олег Александрович, Хачатурян Алена Борисовна

Лабораторные работы по программированию в среде С++ Builder 6.0

Издание публикуется в авторской редакции

СПбГЭТУ «ЛЭТИ» 197376, Санкт-Петербург, ул. Проф. Попова, 5

79

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