Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторна робота №9 17.09.docx
Скачиваний:
2
Добавлен:
13.11.2019
Размер:
402.83 Кб
Скачать

20. Запустите созданную программу и исследуйте ее работу.

Поэкспериментируйте с многострочным полем редактирования Memo1, вводя и корректируя в нем любой текст. Обратите внимание на то, что в этом окне можно выполнять такие же действия с текстом, как и в текстовом редакторе: выделять фрагмент текста, копировать, переносить или изымать этот фрагмент. Вытрите текст с помощью команды главного меню "Очистить поле вывода". Еще раз введите текст и вытрите его с помощью контекстного меню (для вызова контекстного меню формы нужно щелкнуть правой клавишей мыши на свободном месте формы). Закончите работу программы, щелкнув на команде меню "Конец".

21. Запрограммируйте команду "Протабулировать".

Свойство Lines объекта типа Memo есть комплексным, то есть также есть объектом со своими свойствами и методами. Результат работы этой программы - это таблица, которая состоит из нескольких строк. Чтобы прибавить в поле Memo1 новую строку таблицы, надо изменить значения комплексного свойства Lines (строки) с помощью его метода Append (вставить) с одним аргументом - символьной строкой: Memo1->Lines->Append (строка символов). Выполните команду "Протабулировать" из главного меню, щелкнув на ней один раз. Появится заготовка функции, которую заполните так:

void_fastcall TForm1::N3Click(TObject *Sender)

{

float x, y;

float а = StrToFloat(Edit1 -> Text); // Получаем числовое значение левой границы

float b = StrToFloat(Edit2 -> Text); // и правой границы

float h = StrToFloat(Edit3 -> Text); // Получаем числовое значение шага

Memo1 ->Lines->Append("X\tY"); // В объект Memo1

//вставляем строку с подписями столбцов //аргумента X и значения функции Y через //табулятор \t.

//Начинаем табулировать с левой границы,

// пока аргумент x не превысит правую //границу //с определенным допуском:

for (x = a; x < b + h / 2; x += h)

{

y = sin(x); // Вычисляем значение функции

if (CheckBox1 -> Checked) // Если стоит флажок "На экран"

// Формируем и вставляем в поле Memo1 символьные строки из аргумента

// и значения функции

Memo1 -> Lines -> Append(FloatToStrF(x, ffFixed, 2, 2) + '\t' +FloatToStrF( y, ffFixed, 2, 2));

}

22. Выполните программу и поэкспериментируйте с разными значениями левой, правой границы и шага аргумента. Закройте окно программы "Табулирование функции".

23. Сохраните созданную программу в своей папке.

24. Создайте exe-файл вашей программы.

25. Закройте C++ Builder, запустите созданную программу и выполните вычисления для разных начальных данных.

26. Продемонстрируйте созданную форму преподавателю. Закончите работу.

Задания

1. Прибавьте к контекстному меню команду "Конец" и запрограммируйте ее.

2. Создайте еще одно контекстное меню с командами "Снять все флажки", "Установить все флажки", "Установить инверсионно" и запрограммируйте его. Такое меню может появляться после щелканья правой кнопкой мыши на произвольном месте панели с флажками. Не забудьте "привязать" это меню (PopupMenu2) к панели с флажками.

3. Модифицируйте реализацию программы, предусмотрев возможность табулирования функции и ее производной. Выбор варианта табулирования (с производной или без нее) осуществите с помощью дополнительного флажка.

Подсказка. Выполните такие действия:

  • вставьте в форму объект типа CheckBox (флажок), свойству Caption просвойте значение «Производная»;

  • измените программный код команды «Протабулировать».

4. Определите количество элементов массива больших, чем 0,5, и меньших, чем 1.

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

Подсказка. В теле функции Button1Click, что описывает программный код кнопки "Протабулировать", воспользуйтесь командами:

max = sin(a) + 1; // В начале функции:

...

if (max < у) max = у;// В цикле табулирования:

6. Измените функции команды "Протабулировать" так, чтобы для включенного флажка "В массив" вывод результатов выполнялся в одномерный массив.

7. Вставьте в форму объект Chart из закладки Aditional для построения графика функции: