Мегаобучалка Главная | О нас | Обратная связь


Проектирование интерфейса



2019-12-29 152 Обсуждений (0)
Проектирование интерфейса 0.00 из 5.00 0 оценок




 

Сначала создадим главное окно программы, без которой нам никак нельзя обойтись [1]. Сделаем в нем главное меню, состоящее из пунктов «Визуализация», «Исследование», «Титульный лист», «Выход». Далее нам будет необходимы поля для ввода и вывода данных, создадим поля «Начало промежутка», «Конец промежутка», «Точность», а так же поле «Корень», в которое после нажатия кнопки «Решение» будет выводиться ответ. Это окно будет являться опорным пунктом для наших дальнейших действий. Обозначим его как Form1.(Рис. 2)

 

Рис. 2. Form1

Далее, создадим другие «формы» для последующей работы, на которые в дальнейшем просто будем ссылаться:

· окно для визуализации метода итераций – Form2. Выводится при выборе пункта меню «Визуализация»:

 

Рис. 3. Form2

 

При нажатии на кнопку «Итерации» появится график, отражающий итерационный процесс

 

· окно заставки, появляющееся при запуске программы – Form3:

 

Рис.3. Form3

· окно титульного листа – Form4:

 

Рис.4. Form4

 

Теперь, после того как мы создали все необходимые формы, можем приступать к создании программного кода, в котором будем ссылаться на каждую из них [4]. В этом коде нам необходимо будет:

¾ для Form1 - обеспечить безошибочное подключение ко всем остальным формам.

¾ для Form2 -обеспечить вывод графика и визуализацию итерационного процесса.

¾ для Form3, Form4- включить в программу.

 

Программирование вычисления

 

Для вычисления корней уравнения используется подпрограмма – функция iter(x0,xk,eps:real): real. Она составлена по блок схеме представленной выше (1 теоритическая часть). Функции нужно сообщить начало и конец промежутка, результат функции корень уравнения;

 

function iter(x0,xk,eps:real): real;

var

x1,y,d,j:real;

begin

 x1:=x0;

 repeat

 if (fnsh(x1)<1)then begin

 y:=form1.fn(x1);

 d:=abs(y-x1);

 x1:=y;

 end else begin

 j:=messagedlg('Задайте другое начало промежутка',mtinformation,[mbok],0);

 break;

 end;

 until (d<=eps)or (x1>=xk);

 if x1>=xk then

 j:=messagedlg('На заданном промежутке корней нет!',mtinformation,[mbok],0)

 else

 iter:=y;

end;

Уравнение задано подпрограммой – функцией tform1.fn(x:real): real

function tform1.fn(x:real): real;

begin

 fn:=2-sin(1/x);

end;

Производная задана подпрограммрй – функцией fnsh(x:real): real;

function fnsh(x:real): real;

begin

 fnsh:=cos(1/x)/sqr(x);

end;

 

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

 

Визуализация метода

 

В главном окне выберем пункт меню «Визуализация»;

Перед нами появляется окно, где демонстрируется график функции, изоброженного красным цветом, при этом предусмотрена возможность визуализации итерационного процесса, зеленым цветом, посредством нажатия кнопки «Итерации».

Построение графика осуществляется в ниже следующем программном коде:

 

procedure TForm2.FormCreate(Sender: TObject);

var

i:real;

begin

series1.Clear;

Series2.Clear;

i:=1;

While i<=1.5 do begin

 if i<>0 then

 series1.AddXY(i,i-2+sin(1/i),'',clred);

 i:=i+0.0001;

end;

end;

График строится в момент создания Form2. Построение ведется на промежутке от 1 до 1,5. В цикле переменная i меняется в этих пределах с шагом 0,0001, и строится график от значения переменной i.

При нажатии кнопки итерации выполнятся следующий код:

 

procedure TForm2.Button1Click(Sender: TObject);

begin

x1:=strtofloat(form1.labelededit1.text);

xk :=strtofloat(form1.labelededit2.text);

eps:=strtofloat(form1.labelededit3.text);

series2.Clear;

Timer1.Enabled:=true;

end;

 

После чего запускается таймер, который повторяет свои действия через определенный промежуток времени.

 

procedure TForm2.Timer1Timer(Sender: TObject);

begin

 y:=form1.fn(x1);

 series2.AddXY(x1,y-x1,'',clgreen);

 d:=abs(y-x1);

 x1:=y;

 if d<eps then timer1.Enabled:=false;

end;

 

Здесь строится итерационная кривая, показывающая последовательное приближение к корню уравнения до определенной точности. Основой кода построения итерационной кривой является блок – схема из теоретической части.



2019-12-29 152 Обсуждений (0)
Проектирование интерфейса 0.00 из 5.00 0 оценок









Обсуждение в статье: Проектирование интерфейса

Обсуждений еще не было, будьте первым... ↓↓↓

Отправить сообщение

Популярное:
Почему человек чувствует себя несчастным?: Для начала определим, что такое несчастье. Несчастьем мы будем считать психологическое состояние...
Организация как механизм и форма жизни коллектива: Организация не сможет достичь поставленных целей без соответствующей внутренней...



©2015-2024 megaobuchalka.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. (152)

Почему 1285321 студент выбрали МегаОбучалку...

Система поиска информации

Мобильная версия сайта

Удобная навигация

Нет шокирующей рекламы



(0.005 сек.)