- •Теоретичні відомості
- •Хід роботи
- •Лабораторная работа n 3
- •Задача про обмен валюты
- •Теоретические сведения
- •Ход работы
- •Откажитесь от возможности изменять размеры окна программы, придав свойству формы BoderStyle значение bsDialog.
- •Вставьте в форму два объекта типа RadioButton (переключатели), как показано на рисунке 1.
- •Запрограммируйте кнопку «Конец».
- •Запрограммируйте кнопку «Вычислить».
- •Создайте exe файл вашей программы.
- •Продемонстрируйте созданную форму преподавателю. Задания
- •Лабораторная работа n 4
- •Программирование циклов.
- •Объекты: Memo, MainMenu, PopurMenu, CheckBox, GroupBox
- •Задача табулирования функции
- •Теоретические сведения
- •Ход работы
- •Замените Caption формы с “Form1” на «Табулирование функции».
- •Табулирование функции
- •Табулирование функции
- •20. Запустите созданную программу и исследуйте ее работу.
- •Задания
- •Табулирование функции
- •Английский язик - тестирование
- •После размещения рисунков!!!
- •Теоретические сведения
- •Ход работы
- •2.Замените заголовок (Caption) формы с "Forml" на "Английский язык — тестирование".
- •3.Откажитесь от всех системных кнопок формы, задав значение False во всех позициях свойства Bordericons: biSystemMenu, biMinimize, biMaximize и biHelp.
- •4.Расположите на форме объекты так, как показан на рис. 1.
- •5. Дважды щелкните на первом таймере и запрограммируйте мигание сообщения "Обязательно нажмите на кнопку "Готово" после размещения рисунков!!!" так:
- •6. Введите описание глобальных переменных программы:
- •7. Вставьте рисунки factory.Bmp, shipping.Bmp и finance.Bmp с папки
- •8. Запрограммируйте конструктор формы tForm1::tForm1 и функцию Result() сообщения результатов теста:
- •10. Аналогично запрограммируйте соответствующие события для перетягивания двух других рисунков.
- •11. Создайте функцию lmageInShape для проверки расположения рисунка (объекта Image) в середине некоторой геометрической фигуры (объекта Shape).
- •13. Запрограммируйте второй таймер, который обеспечивает индикацию времени выполнения от 100 до 0% со скоростью, обратно пропорциональной к числу в cSpinEdit1.
- •Сохраните программу и проект в рабочей папке.
- •Запустите программу. Перетягивайте мышью рисунки в середину соответствующих фигур. Закончите работу. Задания
- •Лабораторная работа n 6 объектно-ориентированное программирование в
- •Создания собственных классов. Наследование и виртуальные функции. Интерпретатор математических выражений.
- •Теоретические сведения
- •Ход работы
- •6. Введите математические выражения в поля Edit1 и Edit2 и очистите поля результатов Edit3 и Edit4. Запрограммируйте кнопку „Выход".
- •7. Задайте начальную точность вычислений, которая равна двум десятичным знакам.
- •8. Запрограммируйте кнопку „Вычислить” так:
- •9. Запрограммируйте функцию, которая будет выполняться после изменения числа в поле ComboBox1.
- •Задания
- •2. Вычислите значение функции от двух переменных f(X,y).
10. Аналогично запрограммируйте соответствующие события для перетягивания двух других рисунков.
11. Создайте функцию lmageInShape для проверки расположения рисунка (объекта Image) в середине некоторой геометрической фигуры (объекта Shape).
bool lmageInShape(TImage* I,TShape* S)
{
if ((I -> Left> = S -> Left) &&
(I -> Left+ I -> Width <= S -> Left + S -> Width) &&
(I -> Top >= S -> Top) &&
(I -> Top + I -> Height <= S -> Top + S -> Height)) return true; // Рисунок в середине фигуры
else
return false; // Рисунок вне фигуры
}
l2. Запрограммируйте кнопку "Готово", которая проверяет правильность расположения рисунков внутри фигур:
void__fastcall TForm1::BitBtn1Click(TObject *Sender)
{ // Если: первый рисунок во второй фигуре
if (ImageInShape(Image1, Shape2) &&
// второй рисунок в третьей фигуре lmageInShape(Image2, Shape3) &&
// третий рисунок в первой фигуре ImageInShape(Image3, Shape1))
Result(right);
else
Result(wrong);
}
13. Запрограммируйте второй таймер, который обеспечивает индикацию времени выполнения от 100 до 0% со скоростью, обратно пропорциональной к числу в cSpinEdit1.
В случае, когда пользователь не успел расположить рисунки в прямоугольниках и нажать на кнопку "Готово" в отведенное время, подается звук "ДИНГ" и открывается информационное окно с сообщением "Попробуйте еще раз!".
void_fastcall TForm1::Timer2Timer(TObject *Sender)
{
// Задаем скорость движения индикатора:
Timer2 -> Interval = CSpinEdit1 -> Value * 50;
// Работает индикатор времени:
ProgressBar1 -> Position = ProgressBar1 -> Position - 1;
// Если время исчерпано "Попробуйте еще раз!"
if (ProgressBar1 -> Position = = 0)
Result(more);
}
Сохраните программу и проект в рабочей папке.
Скопируйте музыкальные файлы ding.wav и tada.wav в свою рабочую папку из папки C:\WINDOWS\MEDIA.
Запустите программу. Перетягивайте мышью рисунки в середину соответствующих фигур. Закончите работу. Задания
Обеспечьте возможность перетягивания рисунков лишь левой клавишей мыши (см. п. 9).
Увеличьте вдвое частоту мигания текста "Обязательно нажмите на кнопку "Готово" после размещения рисунков!!!".
Замените в программе индикатор состояния типа ProgressBar на индикатор типа Gauge.
4. Подберите самую удачную скорость движения индикатора времени и сделайте объект SpinEdit1 недоступным для внесения изменений.
5. Изымите объект SpinEdit1 и задайте самую удачную скорость движения индикатора времени непосредственно в проекте.
Лабораторная работа n 6 объектно-ориентированное программирование в
C++ BUILDER
Создания собственных классов. Наследование и виртуальные функции. Интерпретатор математических выражений.
Цель работы. Научиться создавать и использовать собственные классы, потомки, виртуальные функции, программно реализовывать древовидные графы.
Разработать интерпретатор для вычисления значения математических выражений, заданных как строки символов. В выражениях ограничиться операциями добавления и умножения, которые применяются к операндам чисел и переменных.