Автор: Пользователь скрыл имя, 19 Февраля 2013 в 11:33, практическая работа
Цель работы. Создать форму для решения задачи табулирования функции. Создать главное меню (объект типа MainMenu), содержащее команды: выйти из программы, табулировать функцию, очистить поля вывода результатов, а также контекстное меню (PopupMenu) с командой для очистки поля вывода. Результаты табулирования вывести в многострочное поле редактирования (объект типа Memo). Предусмотреть возможность вывода результатов на экран, в файл, в массив. Направление вывода задать с помощью трёх флажков (объектов типа CheckBox), расположенных на панели группы объектов (типа GroupBox) (см. рис. 9).
Memol.Lines.Add (‘ X F(X)');
{Получаем
числовое значение левой
Val(Edit1.Text, a, cod);
{Получаем
числовое значение правой
Val(Edit2.Text, b, cod);
{Получаем числовое значение шага}
Val(Edit3.Text, h, cod);
х:=а; {Табулируем функцию}
while x<=b+h/2 do {пока аргумент х не превысит }
begin {правую границу с определенным запасом}
y:=sin(x)+l; {Вычисляем значения функции}
{Формируем символьные строки из значений }
Str(x.:8:2,str1); { аргумента и функции}
Str(y:8:3,str2);
if CheckBox1.Checked then
{Вставляем строку в поле Memol}
Memol .Lmes.Add(sfrl+str2);
x:=x+h; {Увеличиваем аргумент на величину шага}
end
end;
22. Выполните программу и поупражняйтесь с разными значениями левой, правой границы и шага аргумента. Закройте окно программы «Табулирование функции».
23. Сохраните созданную программу в своей папке.
24. Создайте ехе-файл программы.
25. Закройте Delphi, запустите созданную программу и выполните вычисления для различных входных данных.
26. Продемонстрируйте созданную форму преподавателю. Закончите работу.
Задание.
Задача 3.1. Определите количество элементов массива больших 0,5 и меньших 1.
Задача 3.2. Модифицируйте программу, предусмотрев возможность табулирования функции и ее производной. Выбор варианта (с производной или без неё) осуществить с помощью дополнительного флажка.
Подсказка. Выполните такие действия:
• вставьте в форму объект типа CheckBox (флажок), его свойству Caption присвойте значение «Производная», выберите для подписи кирилизованный шрифт 12-го размера, выровняйте вставленный объект.
• поменяйте программный код кнопки «Табулировать», использовав в тексте процедуры ButtonlClick такие команды:
{Объявите переменные str1, sir2, str3 как string в начале процедуры}
if CheckBox.Checked then {если флажок установлен}
Meinol.Lines.Add ( X F(X) F "(X)')
{Строка содержит подписи для столбцов значений аргумента, функции и ее производной}
else {Иначе - если флажок не установлен}
{Строка содержит лишь подписи для столбцов значений аргумента и функции}
Memol.Lines.Add (' X F(X)');
…
{А в цикле задаем:}
y:=sin(x)+l;
yl: =cos(x);
if CheckBox.Checked then {Если флажок установлен}
begin
Str(x:8:2, str1); Str(y:8:2, str2); Str(yl:8:2, str3);
str3 := str1 + str2 + str3
end;
{Формируем символьную строку из значений аргумента, функции и ее производной, между которыми вставляем несколько пропусков}
else {Если флажок не установлен}
begin
Str(x:8:2, str1); {Формируем символьную строку}
Str(y:8:2, str2); {из значений аргумента и функции}
str3 := str1 + str2
end;
Замечание. Номера объектов в Вашей программе могут отличаться от приведённых выше.
Задача 3.3. Предусмотрите в созданной программе дополнительную возможность для определения максимального и минимального значений функции.
Подсказка. В теле процедуры ButtonlClick, описывающей программный код кнопки «Табулировать», воспользуйтесь такими командами:
{в начале процедуры:}
max:=sin(a)+l;
• • •
{в цикле:}
if max<y then max:=y;
• • •
{После цикла:}
Str(max:8:3, str1); Memol.Lines.Add( 'max=' + str1);
Задача З.4. Поменяйте процедуру команды «Табулировать» так, чтобы для включенного флажка «В массив» вывод результатов выполнялся в одномерный массив.