Program Foton;
uses crt;
const n=1.6E-13; {1 Мэв=1.6*10 в -13 степени Дж}
nm=1E-9; {1 нанометр =10 в -9 степени метров}
var E,dl,c,h,e0,Temp:real;
{E - энергия фотона, dl - длина волны, Temp - временная переменная}
{c - скорость света, h - постоянная Планка,e0 - энергия покоя электрона}
lc,E1,f,Ek:real;
{E1 - энергия рассеянного фотона, f - угол вылета электрона
Ek - кинетическая энергия фотона, lc - длина волны в вакууме}
cod:char; {код клавиши}
begin
clrscr; {очистка экрана}
Textcolor(2); {установка цвета символов}
Gotoxy(33,9); {перемещение в позицию с координатами 33,9}
Writeln('КУРСОВАЯ РАБОТА '); {вывод сообщения на экран }
Textcolor(4);
Gotoxy(25,12);
Writeln('Расчет энергии рассеянного фотона,');
Gotoxy(28,13);
Writeln('угла вылета электрона отдачи');
Gotoxy(22,14);
Writeln('и кинетической энергии электрона отдачи');
TextColor(6);
Gotoxy(35,23);
Write('Для продолжения нажмите клавишу <ПРОБЕЛ>');
While cod<>#32 do {пока не нажата клавиша с кодом 32 (ПРОБЕЛ)}
cod:=readkey; {записать код нажатой клавиши в переменную cod}
clrscr;
TextColor(4);
Gotoxy(15,1);
Writeln('Ввод исходных данных и определение постоянных величин');
Writeln;
Textcolor(15);
repeat {повторять}
Writeln('Введите значение энергии фотона рентгеновского излучения в МэВ');
Write('E=');
Readln(e); {ввести значение переменной e}
until e>0; {проверить ложное условие e>0}
Writeln;
repeat
Writeln('Введите значение увеличения длины волны в нм');
Write('dl=');
Readln(dl);
until dl>0;
c:=3E+8; {присвоить с значение 3*10 в 8 степени - скорость света}
Writeln;
Writeln('Скорость света в вакууме с=',c:9,' м/с');
h:=6.63E-34;
Writeln;
Writeln('Постоянная Планка h=',h:9,' Дж');
E0:=0.511;
Writeln;
Writeln('Энергия покоя электрона E0=',E0:5:3,' МэВ');
TextColor(6);
Gotoxy(35,23);
Write('Для продолжения нажмите клавишу <ПРОБЕЛ>');
Cod:=#0; {очистить код клавиши}
While cod<>#32 do cod:=readkey;
clrscr;
TextColor(4);
Gotoxy(25,1);
Writeln('Анализ исходных данных');
Gotoxy(1,3);
TextColor(15);
Writeln('Выполним перевод значения величины энергии фотона (E),');
Writeln('энергии покоя электрона (E0) из МэВ в Дж ');
Writeln('и значение длины волны (dl) из нанометра в метры учитывая, что:');
TextColor(14);
Writeln('1 МэВ=',n:10,' Дж');
Writeln('1 м=',nm:10,' нм');
Gotoxy(12,9);
TextColor(4);
Writeln('Результаты перевода исходных данных в систему СИ');
Writeln;
Temp:=e;
e:=e*n;
TextColor(15);
Writeln('E=',Temp:2:1,' МэВ=',e:9,' Дж');
Temp:=E0;
E0:=E0*n;
Writeln('E0=',Temp:4:3,' МэВ=',E0:9,' Дж');
Temp:=dl;
dl:=dl*nm;
Writeln('dl=',Temp:5:4,' нм=',dl:9,' м');
TextColor(6);
Gotoxy(35,23);
Write('Для продолжения нажмите клавишу <ПРОБЕЛ>');
cod:=#0;
While cod<>#32 do cod:=readkey;
clrscr;
TextColor(4);
Gotoxy(33,1);
Writeln('Решение задачи');
Gotoxy(23,2);
TextColor(3);
writeln('Расчет энергии рассеянного фотона');
TextColor(15);
{Вычисление энергии рассеянного фотона}
E1:=(E*h*c)/(h*c+E*dl);
TextColor(2);
Writeln('Энергия рассеянного фотона равна');
TextColor(15);
Writeln('E1=',E1:9,' Дж');
TextColor(14);
Writeln('Переведем Дж в МэВ');
TextColor(15);
Writeln('E1=',E1:9,' Дж = ',E1/n:2:1,'МэВ');
{Расчет угла вылета электрона отдачи}
TextColor(3);
Gotoxy(21,8);
Writeln('Расчет угола вылета электрона отдачи');
TextColor(14);
Writeln('Рассчитаем длину волны в вакууме');
TextColor(15);
lc:=h/E0*c; {расчет длины волны в вакууме}
writeln('lc=',lc:9,' м');
TextColor(2);
Writeln('Угол вылета электрона отдачи равен');
TextColor(15);
{расчет угла вылета и перевод в градусы}
f:=arctan(sqrt((2*lc)/dl-1)/(E/E0+1))*180/pi;
Writeln('f=',f:4:2,'°');
{Расчет кинетической энергии электрона отдачи}
TextColor(3);
Gotoxy(18,14);
Writeln('Расчет кинетической энергии электрона отдачи');
TextColor(2);
Writeln('Кинетическая энергия электрона отдачи равна');
TextColor(15);
Ek:=(sqr(E)*dl)/(h*c+E*dl);
Writeln('Ek=',Ek:9,' Дж');
TextColor(14);
Writeln('Переведем Дж в МэВ');
TextColor(15);
Writeln('Ek=',Ek:9,' Дж = ',Ek/n:3:2,'МэВ');
TextColor(6);
Gotoxy(35,23);
Write('Для выхода нажмите клавишу <ПРОБЕЛ>');
cod:=#0;
While cod<>#32 do cod:=readkey;
end.
|