Автор работы: Пользователь скрыл имя, 13 Января 2013 в 12:29, лабораторная работа
Порядок выполнения работы:
1. Выполнить примеры
2. Изучить свойства и события используемых компонентов.
3. Оформить отчет о проделанной работе. В отчет включить рисунки главной формы редактора, фрагменты написанных кодов с комментариями, примеры работы программы, описания основных свойств и событий используемых компонентов.
Программно можно отображать на экране монитора сложные кривые, например, в виде графика функций. Рассмотрим пример такой программы.
Создайте новое приложение с именем Function и поместите на его форму:
• пять компонентов кнопок Button;
• компонент Image.
Лабораторная работа № 14
Программно можно отображать на экране монитора сложные кривые, например, в виде графика функций. Рассмотрим пример такой программы.
Создайте новое приложение с именем Function и поместите на его форму:
Задайте свойство Caption для кнопок от первой до пятой, присваивающие им соответственно названия: Рисовать, +, —, Очистить и Функция. Размер пятой кнопки увеличьте по горизонтали примерно в два раза. Компонент Image растяните и разместите на оставшейся части формы. Свойство Caption формы заполните названием Function. Разместите все компоненты на форме в соответствии с рисунком.
Окно формы программы Function
Теперь сохраните модуль проекта
в файле с названием Ufunction.
int n; // Номер функции
float m; // Масштаб
описывающие переменные номера функций и масштаба.
После оператора #include "Ufunction.h" в файле Ufunction.cpp впишите строку:
#include <math.h>
которая предназначена для подключения к проекту библиотеки математических функций, что позволит нам использовать их в программе, в том числе и тригонометрические функции.
Далее впишем в программу обработчики события OnClick для всех кнопок. Начнем с четвертой кнопки, отвечающей за очистку экрана. Для нее обработчик события OnClick должен выглядеть:
void __fastcall TForm1::Button4Click(TObject *Sender)
{
Image1->Canvas->FillRect(Rect(
}
Программная строка обработчика содержит метод FillRect.
Для обработчика события OnClick кнопки рисования введем строки программного кода:
#define PI 3.14159
float X,Y; // Переменные функции
int PX, PY; // Координаты пикселов
Form1->Button4Click(0);
Image1->Canvas->MoveTo(0,
for(PX=0; PX<=Image1->Width;PX++)
{
X=PX*4*PI/Image1->Width;
switch(n) // Вычисление функций
{
case 1: Y=m*sin(X); break;
case 2: Y=m*X*sin(X*X); break;
case 3: Y=m*cos(X)*sin(X); break;
default: break;
}
PY=Image1->Height-(Y+1)*
Image1->Canvas->LineTo(PX,PY);
}
Первая из этих строк описывает константу PI, принимающую значение числа Пифагора. Далее следует описание переменных X, Y, РХ И PY, служащих переменными функции и координатами точек рисунка. После этого следует вызов функции обработчика события OnClik кнопки очистки экрана, созданной нами ранее и предназначенной для очистки канвы компонента Image (то есть рисунка на экране). Далее вписана строка установки пера для рисования в левую среднюю точку экрана. После этой строки в программе присутствует оператор для организации цикла вычисления значения переменной Y для множества значений точек РХ экрана от 0 до максимальной величины ширины экрана в пикселах. Переменная X вычисляется в самом цикле. Одновременно масштабируется ее размер по вертикали экрана.
Оператор switch служит для сравнения номера выбранной функции и вычисления для нее значения переменной Y.
Функции могут быть произвольными. В дальнейшем при необходимости можно будет изменять и расширять список этих функций. Далее в программе вычисляется значение координат РУ и рисуется фрагмент линии функции.
В обработчик события OnClick кнопки + (плюс) вставьте строки удвоения коэффициента функции и вызова обработчика перерисовки графика функции, который принадлежит кнопке рисования Button1:
m=m*2;
Form1->Button1Click(0) ;
В обработчик события OnClick кнопки — (минус) вставьте строки уменьшения вдвое коэффициента функции и тот же обработчик перерисовки графика функции:
m=m/2;
Form1->Button1Click(0) ;
Наконец, для кнопки выбора функции Button5 впишите обработчик события OnClick, состоящий из следующих строк:
n++;
if (n>3) n=1;
switch(n) // Выбор функций
{
case 1: Button5->Caption="Y=m*sin(X)"; break;
case 2: Button5->Caption="Y=m*X*sin(X*
case 3: Button5->Caption="Y=m*cos(X)*
default: break;
}
Здесь будет происходить автоматическ
Для завершения программы необходимо
задать начальные значения для переменных
масштаба и номера функции. Это делается
записью программных строк
__fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner)
{
m=0.05; n=1;
Form1->Button4Click(0) ;
}
Теперь запустите приложение и проверьте его работу. Результат работы программы при выводе на экран функции Y=m*x*sin(x*x) представлен на рисунке:
Результат работы программы
В этой программе мы использовали не только методы, но и некоторые функции, например sin(X) и cos(x). Среда разработки Borland C++Builder 6 имеет огромное количество встроенных библиотек с готовыми к применению функциями, что позволяет писать мощные и элегантные программы. Для знакомства с функциями можно прибегнуть к встроенной справочной системе среды разработки, вызвав ее нажатием клавиши <F1> или <Ctii>+<Fl>, когда курсор редактора находится на самой функции. Аналогично можно поступать при знакомстве с другими методами, не рассмотренными здесь.
Кроме того, среда разработки имеет встроенный суфлер кода, который автоматически выводит на экран список доступных методов, свойств и функций объектов при вводе символа "->", "." или "(" после записи имени объекта.
Полезной является комбинация клавиш <Ctrl>+<Space>, вызывающая список доступных функций и методов для объекта, на котором расположен курсор редактора.
Комбинация клавиш <Ctrl>+<J> открывает окно с перечнем функций-заготовок, которые выбираются программистом с помощью стрелок курсора и вставляются в программу после нажатия клавиши <Enter>.
Этими инструментами среды разработки удобно пользоваться для вызова встроенной справочной системы, ускорения ввода кода программы и исключения ошибок в записи программных строк.