Краткая теория
Вещественные числа выводят с заданным форматом с помощью функции
FloatToStrF(x, ffFixed, N, M),
где x - переменная вещественного типа, ffFixed - константа, задающая формат чисел с фиксированной десятичной точкой, разделителем целой и дробной части, N - общее количество цифр в записи числа, M - количество цифр в дробной части числа.
Об отметках
Основные упражнения не отмечены никакими специальными знаками, их выполнения достаточно для удовлетворительной оценки. Дополнительные упражнения отмечены "звездочками", их выполнение необходимо для получения повышенной оценки.
"5" - в отчете выполнены все основные упражнения, дополнительно выполнены упражнения с одной и двумя "звездочками".
"4" - в отчете выполнены все основные упражнения, дополнительно выполнены упражнения с одной "звездочкой".
"3" - в отчете выполнены все основные упражнения.
Упражнения
Рулетка. Задать отрезки на множестве целых и вещественных. Выбрать по одному случайному числу из каждого отрезка.
Требования к выполнению. Использовать целые и вещественные числа. На форме разместить следующие компоненты:
Пример.
procedure TForm1.Button1Click(Sender: TObject);
var
a, b, x : Integer;
begin
a := StrToInt(Edit1.Text);
b := StrToInt(Edit2.Text);
x := Random(Abs(b-a+1))+a;
Label4.Caption:=IntToStr(x);
end;
procedure TForm1.Button2Click(Sender: TObject);
const
N = 9;
M = 3;
var
a, b, x : Double;
begin
a := StrToFloat(Edit3.Text);
b := StrToFloat(Edit4.Text);
x := Abs(b-a)*Random+a;
Label8.Caption:=FloatToStrF(x, ffFixed, N, M);
end;
Квантовая модель отражения света. Задайте для раздела двух сред вероятность отражения фотонов от границы при падении света. При нажатии на кнопку производится испытание с одним фотоном и выводится одно из двух сообщений: "фотон отразился" или "фотон поглощен". Подсчитайте количество отраженных и поглощенных фотонов.
Требования к выполнению. Использовать целые и вещественные числа. На форме разместить следующие компоненты:
Пример.
var
reflec, refrac : Word;
{...}
procedure TForm1.Button1Click(Sender: TObject);
var
k, fk : Double;
begin
k := StrToFloat(Edit1.Text);
fk := Random;
if fk <= k then begin
RadioButton1.Checked := True;
RadioButton2.Checked := False;
Inc(reflec);
Label3.Caption := IntToStr(reflec);
end
else begin
RadioButton1.Checked := False;
RadioButton2.Checked := True;
Inc(refrac);
Label5.Caption := IntToStr(refrac);
end;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
reflec := 0;
refrac := 0;
Label3.Caption := IntToStr(reflec);
Label5.Caption := IntToStr(refrac);
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
reflec := 0;
refrac := 0;
end;
Дифракция электрона на щели. При прохождении электрона через щель он отклоняется на некторый угол g, принадлежащий интервалу (-π/2, π/2). Задано количество равновеликих диапазонов n, на которые разбивается интервал (-π/2, π/2). Диапазоны пронумерованы от -a до a, значит, n=2a+1 - нечетное число, т.к. центральный диапазон имеет номер 0. Определить номер диапазона, в который попадает угол отклонения электрона. Принять для случайного значения угла g равномерное распределение.
Требования к выполнению. Использовать целые числа. На форме разместить следующие компоненты:
Пример.
procedure TForm1.Button1Click(Sender: TObject);
var
n : Byte;
a,
ea : Integer; {Номер диапазона, в который попал электрон}
begin
n := StrToInt(Edit1.Text);
a := (n - 1) div 2;
{Испытание с электроном}
ea := Random(Abs(a-(-a))) + (-a);
Label3.Caption := IntToStr(ea);
end;
*Дифракция электрона на щели 2. Провести испытание с заданным количеством электронов. Изобразить в Memo знаком "*". Принять равномерное распределение.
Требования к выполнению. Использовать метки Label1, Label2, Label3, Label4, Edit1, Edit2, Button1, Button2, Memo1. Использовать вещественные числа с точностью до сотых.
**Дифракция электрона на щели 3. Провести испытание с заданным количеством электронов. Изобразить в Memo знаком "*". Принять нормальное распределение. Первый способ: метод доски Гальтона. Второй способ: аналитическое задание нормального распределения.
Требования к выполнению. Использовать метки Label1, Label2, Label3, Label4, Edit1, Edit2, Button1, Button2, Memo1. Использовать вещественные числа с точностью до сотых.
Домашнее задание
Квантовая модель прохождения света. В оптически однородной среде находится тонкий слой с отличной от среды оптической плотностью. Для границы этого слоя со средой задать коэффициент отражения, а для вещества слоя задать коэффициент поглощения. Указанные коэффициенты задают соответсвенно для одного фотона вероятность того, что он отразится, поглотиться или пролетит насквозь. При нажатии на кнопку производится испытание с одним фотоном и выводится одно из трех сообщений: "отразился", "поглощен" или "пролетел". Подсчитайте количество фотонов: общее, отраженных, поглощенных и пролетевших слой насковозь.