Рекомендуемый вид формы приведен на рис. 1.11. Во время работы программы, в результате выбора переключателя Ток, Напряжение или Сопротивление, текст, поясняющий назначение полей ввода, должен меняться.

Рис. 1.10. Форма программы Сила тока

Рис. 1.11. Форма программы Закон Ома

// вычисление тока, напряжения или сопротивления
  
  
procedure Calculate;
var
I,U,R: real; // ток, напряжение, сопротивление begin
if Forml.RadioButtonl.Checked then
// ток
begin
U := StrToFloat(Forml.Edit1.Text) ;
R := StrToFloat(Forml.Edit2.Text); if (R <> 0) then begin
I := U/R;
Forml.Label3.Caption := 'Ток: ' + Float-ToStrF(I,ffFixed,4,2) + ' a';
end
else ShowMessage('Сопротивление не должно быть равно нулю.'), exit; end;
if Forml.RadioButton2.Checked then
// напряжение
begin
I := StrToFloat(Forml.Editl.Text);
R := StrToFloat(Forml.Edit2.Text) ; U := I*R;
Forml.Label3.Caption := 'Напряжение: ' +
FloatToStrF(U,ffFixed,4,2) exit; end;
if Forml.RadioButton3.Checked then
// сопротивление
begin
U := StrToFloat(Forml.Editl.Text); 1
:- StrToFloat(Forml.Edit2.Text); if (I <> 0) then begin
R := U/I;
Forml.Label3.Caption := 'Сопротивление:
' + Float-ToStrF(R,ffFixed,4,2) + ' Ом'; end
else ShowMessage('Ток не должен быть равен нулю.'); end;
B';
end;
.
// Выбор переключателя Ток
procedure TForml.RadioButtonlClick(Sender: TObject);
begin
Labell.Caption := 'Напряжение (вольт)';
Label2.Caption := 'Сопротивление (Ом)';
Labe13.Caption := ''; end;
// Выбор переключателя Напряжение
procedure TForml.RadioButton2Click(Sender: TObject);
begin
Labell.Caption := 'Ток (ампер)';
Label2.Caption : = 'Сопротивление (Ом)';
Label3.Caption := "; end;
// Выбор переключателя Сопротивление
procedure TForml.RadioButton3Click(Sender: TObject);
begin
Labell.Caption := 'Напряжение (вольт)1;
Label2.Caption := 'Ток (ампер)';
Label3.Caption := ''; end;
// Нажатие клавиши в поле Editl
procedure TForml.EditlKeyPress(Sender: TObject; var Key:Char);
begin
case Key of
'0'..'9',#8: ;
// цифры и клавиша #13: Edit2.SetFocus; // клавиша
Г I
begin
if Key = '.'
then Key :=
// не позволяет вводить знак запятой повторно if Роз{',',Editl.Text) о О
then Key := Chr(0); end;
else Key := Chr(0); end; end;
// Нажатие клавиши в поле Edit2
procedure TForml.Edit2KeyPress(Sender: TObject; var Key:Char);
begin
case Key of
'O'..'9',#8: ;
#13: Calculate; // клавиша — вычислить
begin
if Key = '.'
then Key := \ ' ;
// не позволяет вводить знак запятой повторно if Posf, \Edit2.Text) <> 0
then Key := Chr(0); end;
else Key := Chr(0); end; end;

// Щелчок на кнопке Вычислить
procedure TForml.ButtonlClick(Sender: TObject);
begin
if (Editl.Text <> '') and (Edit2.Text О "]
then Calculate // вычислить ток, напряжение или сопротивление
else ShowMessage('Надо ввести исходные данные в оба поля'); end;