Описание программы
Для расчета графика зависимости необходимо задать энергию ионов (E) в верхней части программы и нажать клавишу “РАСЧЕТ”. При этом появится график. Если изменить значение энергии ионов и произвести новый расчет, то новый график будет отображен рядом со старым, а справа от графиков будут приведены значения энергии ионов и цвет линии графика при этом значении.
При нажатии на кнопку “ОЧИСТИТЬ”, производится очистка графика от предыдущих расчётов. Если график не очистить, то следующий график выводится на панель с сохранением графиков предыдущих расчётов, что удобно для наблюдения изменений расчетов.
Если надо указать глубину залегания предварительно выйти в меню “ФАЙЛ” и изменить параметры глубины.
Первоначально график зависимости строится в “x,y,z” формате. Чтобы перейти в плоскость “x,y” – нажимаем меню “ФАЙЛ” затем соответствующий пункт.
Для выхода из программы нажимаем кнопку “ВЫХОД”.
Информация о разработчике указана вверху программы.
Общий вид главного окна программы представлен на рисунке 3.1
Пример работы программы показан на рисунке 3.2
Рисунок 3.1 – Общий вид главного окна программы
Рисунок 3.2 – Пример работы программы
Исходный код с пояснениями
unit Unit1;//Название модуля
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls, TeeProcs, TeEngine, Chart, Series, Menus; //Библиотеки
functionf(x,rp,drp:extended):extended; //Предварительное создание функции
type//Описание классов программы
TForm1 = class(TForm)
Chart1: TChart;
ComboBox1: TComboBox;
Label1: TLabel;
Button1: TButton;
Button2: TButton;
Edit1: TEdit;
Label2: TLabel;
Button3: TButton;
Memo1: TMemo;
MainMenu1: TMainMenu;
N1: TMenuItem;
N31: TMenuItem;
XY1: TMenuItem;
N3: TMenuItem;
N4: TMenuItem;
N5: TMenuItem;
Image1: TImage;
Label3: TLabel;
procedure Button2Click(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure N3Click(Sender: TObject);
procedure N31Click(Sender: TObject);
procedure N5Click(Sender: TObject);
procedure XY1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
function f(x,rp,drp:extended):extended; //Программируем функцию по формуле (6)
var
a,b:extended;//Задание переменных
begin
a:=1/sqrt(2*3.14*drp);
b:=-0.5*sqr((x-rp)/drp);
a:=a*exp(b);
f:=a;
end;
procedure TForm1.Button2Click(Sender: TObject); //Очистка графиков при нажатии кнопки
// “ОЧИСТИТЬ”
begin
while Form1.Chart1.SeriesCount<>0 do Form1.Chart1.Series[0].Destroy;
end;
procedure TForm1.Button1Click(Sender: TObject); //непосредственный расчет программы
//при нажатии кнопки “РАСЧЕТ”
var//Задание переменных
h,a,b : extended;
rp,drp: extended;
s : TLineSeries;
begin
Chart1.Visible:=True; //При нажатии кнопки “РАСЧЕТ” выводится окно-графика
Memo1.Visible:=False; //А окно-описание прячется
b:=strtofloat(Form1.Edit1.Text)*1E-6; //Ввод глубины залегания
h:=b/200;
caseForm1.ComboBox1.ItemIndexof//Выбор “энергии ионов” из заданного списка
0: begin// Для E=200 кэВ
rp:=1818E-9;
drp:=123E-9;
end;
1: begin// Для E=500 кэВ
rp:=5000E-9;
drp:=250E-9;
end;
2: begin// Для E=1000 кэВ
rp:=7200E-9;
drp:=450E-9;
end;
end;
a:=0;
s:=TLineSeries.Create(self);
s.Title:='E='+Form1.ComboBox1.Text; //Вывод информации о “энергии ионов (E)”
Form1.Chart1.AddSeries(s); //Добавляет эту надпись на график
while a<b do
begin// Вывод графика зависимости
s.AddXY(a*1E6,f(a,rp,drp),'',clTeeColor);
a:=a+h;
end;
end;
procedure TForm1.Button3Click(Sender: TObject);
begin
close;//Выход из программы
end;
procedure TForm1.N3Click(Sender: TObject);
begin
Label2.Visible:=True;
Edit1.Visible:=True;
end;
procedure TForm1.N31Click(Sender: TObject);
begin
Chart1.View3D:=True; //Вывод 3D графика
end;
procedure TForm1.N5Click(Sender: TObject);
begin
Close;//Выход из программы
end;
procedure TForm1.XY1Click(Sender: TObject);
begin
Chart1.View3D:=False; //Переходит в режимx,yплоскости
end;
end.