Разделы инструкций

В сети

Пользователей: 83
Из них просматривают:
Аналоги: 27. Даташиты: 7. Инструкции: 6. Новости: 17. Остальное: 8. Ошибки: 5. Торрент: 2. Форум: 10. Чат: 1.
Участников: 4
Гостей: 79

KT315 , Google , wolf170571 , Яндекс , далее...
Рекорд 2375 человек онлайн установлен 26.12.2015.

Партнёры


Партнёры

Новые объявления

Оглавление

Пример программы Function

Помимо простых фигур программно можно отображать на экране монитора сложные кривые, например, в виде графика функций. Рассмотрим очередной пример программы, осуществляющий именно такие операции. Создайте новое приложение и поместите на его форму пять компонентов кнопок Button и один компонент Image. Задайте свойство Caption для кнопок от первой до пятой, присваивающие им соответственно названия: Рисовать, +, —, Очистить и Функция. Размер пятой кнопки увеличьте по горизонтали примерно в два раза. Компонент Image растяните и разместите на оставшейся части формы. Свойство Caption формы заполните названием Function. Разместите все компоненты на форме в соответствии с рис. 23.3.

 

Окно формы программы Function

Рис. 23.3. Окно формы программы Function

 


Теперь сохраните модуль проекта в файле с названием Ufunction.cpp, а сам проект в файле с названием Function.bpr. Вставьте в файл описаний Ufunction.h после строки   public:  // user declarations следующие программные строки:

 

int n;   // Номер функции
float m; // Масштаб

 

описывающие переменные номера функций и масштаба.


После оператора #inciude "ufunction.h" в файле Ufunction.cpp впишите строку:

 

#include  <math.h>


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


Далее впишем в программу обработчики события OnClick для всех кнопок. Начнем с четвертой кнопки, отвечающей за очистку экрана. Для нее обработчик события OnClick должен выглядеть в соответствии с листингом 23.7.

 

Листинг 23.7. Обработчик события OnClick

void __fastcall TForm1:: Button4Click(TObject *Sender)
{
Image1->Canvas->FillRect(Rect (0,0,Image1->Width, Image1->Height));
}

 

 

Программная строка обработчика содержит знакомый нам метод FillRect.
Для обработчика события OnClick кнопки рисования введем строки программного кода (листинг 23.8).


Листинг 23.8. Обработчик события OnClick кнопки рисования

#define  PI  3.14159
float X, Y;      // Переменные функции
int  PX,   PY;   //  Координаты пикселов
Form1->Button4Click(0);
Image1->Canvas->MoveTo(0,Image1->Height/2);
for(PX=0;   PX<=Image1->Width;   РХ++)
{
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->Height/2;
Image1->Canvas->LineTo (PX, PY) ;
}
 

Первая из этих строк описывает константу PI, принимающую значение числа Пифагора. Далее следует описание переменных Х, Y, PX и PY, служащих переменными функции и координатами точек рисунка. После этого следует вызов функции обработчика события OnClik кнопки очистки экрана, созданной нами ранее и предназначенной для очистки канвы компонента Image (то есть рисунка на экране). Далее вписана строка установки пера для рисования в левую среднюю точку экрана. После этой строки в программе присутствует оператор для организации цикла вычисления значения переменной y для множества значений точек РХ экрана от 0 до максимальной величины ширины экрана в пикселах. Переменная Х вычисляется в самом цикле. Одновременно масштабируется ее размер по вертикали экрана.

 

Оператор switch служит для сравнения номера выбранной функции и вычисления для нее значения переменной Y.
Функции могут быть произвольными. В дальнейшем при необходимости можно будет изменять и расширять список этих функций. Далее в программе вычисляется значение координат PY и рисуется фрагмент линии функции.
В обработчик события OnClick кнопки + (плюс) вставьте строки удвоения коэффициента функции и вызова обработчика перерисовки графика функции, который принадлежит кнопке рисования Button1:

m=m*2;
Forml->ButtonlClick(0);

 

В обработчик события OnClick кнопки — (минус) вставьте строки уменьшения вдвое коэффициента функции и тот же обработчик перерисовки графика функции:

m=m/2;
Forml->ButtonlClick(0);

 

Наконец, для кнопки выбора функции Button5 впишите обработчик события OnClick, состоящий из строк, приведенных в листинге 23.9.

 

Листинг 23.9. Обработчик события OnClick кнопки выбора функции

n++; if(n>3) n=l;
switch(n) // Выбор функций
{
case 1: Button5->Caption="Y=m*sin(X)"; break;
case 2: Button5->Caption="Y=m*X*sin(X*X)"; break;
case 3: Button5->Caption="Y=m*cos(X)*sin(X)"; break;
default: break;
}

 

Здесь будет происходить автоматический инкремент номера функции и присвоение ему начального значения при превышении максимального значения п>3. В зависимости от номера функции свойство Caption кнопки Buttons будет менять свое значение на строку с записью самой математической функции.
Для завершения программы необходимо задать начальные значения для переменных масштаба и номера функции. Это делается записью программных строк инициализации переменных m и п в теле функции формирования формы. Здесь же необходимо вписать вызов обработчика события OnClick для кнопки очистки экрана. В конечном виде функция формирования формы должна иметь запись, соответствующую листингу 23.10.

 

Листинг 23.10. Функция формирования формы

__fastcall TForm1: :TForm1 (TComponent* Owner)
{
m=0.05;   n=l;
Forml->Button4Click(0);
}

 

Теперь запустите приложение и проверьте его работу. Результат работы программы при выводе на экран функции Y=m*x*sin(x*x) представлен на рис. 23.4.

 

Результат работы программы

Рис. 23.4. Результат работы программы


В этой программе мы использовали не только методы, но и некоторые функции, например sin(x) и cos(x). Среда разработки Borland C++Builder 6 имеет огромное количество встроенных библиотек с готовыми к применению функциями, что позволяет писать мощные и элегантные программы. Для знакомства с функциями можно прибегнуть к встроенной справочной системе среды разработки, вызвав ее нажатием клавиши <F1> или <Ctrl>+<Fl>, когда курсор редактора находится на самой функции. Аналогично можно поступать при знакомстве с другими методами, не рассмотренными здесь.

 

Кроме того, среда разработки имеет встроенный суфлер кода, который автоматически выводит на экран список доступных методов, свойств и функций объектов при вводе символа "->", "." или "(" после записи имени объекта.
Полезной является комбинация клавиш <Ctrl>+<Space>, вызывающая список доступных функций и методов для объекта, на котором расположен курсор редактора.
Комбинация клавиш <Ctrl>+<J> открывает окно с перечнем функций-заготовок, которые выбираются программистом с помощью стрелок курсора и вставляются в программу после нажатия клавиши <Enter>.
Этими замечательными инструментами среды разработки удобно пользоваться для вызова встроенной справочной системы, ускорения ввода кода программы и исключения ошибок в записи программных строк

 

4
<< Меню >>  
Комментарии принадлежат их авторам. Мы не несем ответственности за их содержание.
Отправитель Нити

Разное

При пайке деталей над горловиной кинескопа накройте ее куском материи.

Интересно

Выходные каскады УНЧ бывают разных типов и не всегда есть возможность осуществить первое включение без оконечного каскада. В этом случае возможна замена низкоомных токоизмерительных резисторов на номиналы 5-10 Ом.

Похожие инструкции