- •Теоретичні відомості
- •Хід роботи
- •Лабораторная работа 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).
Ход работы
1. Загрузите C++ Builder.
2. Замените Caption формы с "Forml" на "Вычисление выражения".
3. Откажитесь от системных кнопок формы, задав значение False во всех позициях свойства Borderlcons: biSystemMenu, biMinimize, biMaximize и biHelp.
Работу с программой будем завершать нажатием на кнопку "Выход".
4. Расположите на форме объекты так, как показано на рис. 3.
5.Введите описания классов и функций, которые будут использоваться в этой задаче.
Для этого откройте окно текста программы, и после строки
TForm1 *Form1; // Эта строка уже есть в программе
вставьте программный код описания классов Telement, Number, Plus, Mult и текст функции формирования дерева form (см. „Теоретические сведения и анализ задачи" этой лабораторной). Сохраните проект и текст программы.
Вычисление
выражения
Выражение x
f(x)
Результаты
вычислений X=
f(x)=
Точность десятичных
знаков
Вычисление
выражения
Выражение x
f(x)
Результаты
вычислений X=
f(x)=
Точность десятичных
знаков
Выход
Выход
Вычислить
2
38,00
5,00
X*x+2*x+3
2+3
Вычислить
2
Edit4
Edit3
Edit2
Edit1
Рис.3.Форма «Вычисление выражения». Рис.4 . Пример работы программы.
6. Введите математические выражения в поля Edit1 и Edit2 и очистите поля результатов Edit3 и Edit4. Запрограммируйте кнопку „Выход".
Обратите внимание на то, что в выражениях допускаются лишь операции “+”, “*”, действительные числа и переменная x, задана маленькой латинской буквой. В выражении для x не используйте переменную x. Для набора символа десятичной точки в действительных числах используйте символ, предусмотренный операционной системой компьютера. Тестовый пример и результаты вычислений показаны на рис. 4.
7. Задайте начальную точность вычислений, которая равна двум десятичным знакам.
Для этого свойство Text объекта ComboBox1 задайте числом „2" без кавычки.
8. Запрограммируйте кнопку „Вычислить” так:
void_ fastcall TForm1::Button1Click(TObject *Sender)
{
int dec = StrToInt(ComboBox1 -> Text); // Знаков после десятичной. точки
Telement* x = form(Edit1 -> Text); // x - указатель на вершину
// дерева, построенного за выражением в поле Edit1
// Результат вычисления x записываем как строку символов в поле Edit3 Edit3 -> Text = FloatToStr(x -> rezult(), ffFixed, 25, dec);
// fx - указатель на вершину дерева,
// построенного за выражением в Edit2
Telement* fx = form(Edit2 -> Text);
// Результат вычисления f(x) записываем как строку символов в Edit4
Edit4 -> Text = FloatToStr(fx -> rezult(), ffFixed, 25, dec);
}
9. Запрограммируйте функцию, которая будет выполняться после изменения числа в поле ComboBox1.
Для этого запрограммируйте событие Change объекта ComboBox1 так, чтобы выполнялись действия для кнопки «Вычислить» (функция Button1Click);
vold fastcall TForm1::ComboBox1Change(TObject *Sender)
{
Button1Click(Button1);
//Допустима также запись:Button1Click(ComboBox1);Button1Click(Null);
}
Замечание 1. Фактическим параметром функции Button1Click может быть указатель на любой визуальный объект формы, ведь в описании этой функции формальным параметром есть указатель на базовый тип TObject среды визуального программирования C++ Builder (см. п.8). Таким аргументом может быть также нуль-указатель NULL. В более сложных программах этот параметр можно использовать для передачи определенной информации в функцию.
Замечание 2. Повторные вызовы функции Button1Click() после каждого выполнения события ComboBox1Change каждый раз будут приводить к созданию деревьев математических выражений для x и f(x). Ведь указатели на эти деревья есть локальными переменными функции Button1Click(). Поэтому построенные деревья будут уничтожаться после завершения работы этой функции путем неявного вызова деструкторов объектов x и fx: x -> Telement(); fx -> ~Telement().