unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, jpeg, ExtCtrls, Menus;

type
  TForm1 = class(TForm)
    lbl1: TLabel;
    lbl2: TLabel;
    edt1: TEdit;
    grp1: TGroupBox;
    rb1: TRadioButton;
    rb2: TRadioButton;
    lbl3: TLabel;
    lbl4: TLabel;
    lbl5: TLabel;
    lbl6: TLabel;
    lbl7: TLabel;
    lbl8: TLabel;
    lbl9: TLabel;
    edt2: TEdit;
    edt3: TEdit;
    edt4: TEdit;
    edt5: TEdit;
    edt6: TEdit;
    edt7: TEdit;
    btn1: TButton;
    img1: TImage;
    mm1: TMainMenu;
    Ntjhbz1: TMenuItem;
    N1: TMenuItem;
    N2: TMenuItem;
    N3: TMenuItem;
    N4: TMenuItem;
    procedure btn1Click(Sender: TObject);
    procedure rb1Click(Sender: TObject);
    procedure rb2Click(Sender: TObject);
    procedure N2Click(Sender: TObject);
    procedure N1Click(Sender: TObject);
    procedure N3Click(Sender: TObject);
    procedure N4Click(Sender: TObject);

  
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.btn1Click(Sender: TObject);
var
r1,r2, r3,r4,r5,r6: real;
    r,x: real;
    n:Integer;
begin
    n := StrToInt(Edt1.Text);
    r1 := StrToFloat(Edt2.Text);
    r2 := StrToFloat(Edt3.Text);
    r3 := StrToFloat(Edt4.Text);
    r4 := StrToFloat(Edt5.Text);
    r5 := StrToFloat(Edt6.Text);
    r6 := StrToFloat(Edt7.Text);


       if (r1 = 0) and (r2 = 0) and (r3 = 0)and (r4 = 0)and (r5 = 0)and (r6 = 0)and (r2 = 0)then
    begin
        ShowMessage('Задайте сопротивление хотя бы одного проводника');
        exit;
    end;
      if (n <0)  then
    begin
        ShowMessage('Количество проводников не может быть отрицательным');
        exit;
    end;
     
    if rb1.Checked
        then
           begin
              if n=1 then
                begin
                 ShowMessage('Для последовательного соединения необходимо минимум два проводника');
                 exit;
                end
              else
                if n=2 then
                  begin
                    if (R1>0) and  (R2>0) then
                                      r:=r1+r2
                                        else
             begin
        ShowMessage('Введите значения сопротивления для выбранных проводников');
        exit;
              end
        end
           else
    if n=3 then
         begin
           if (R1>0) and  (R2>0) and  (R3>0)then
           r:=r1+r2+r3 else
             begin
        ShowMessage('Введите значения сопротивления для выбранных проводников');
        exit;
              end
        end
    else
    if n=4 then
         begin
           if (R1>0) and  (R2>0) and  (R3>0)and  (R4>0)then
           r:=r1+r2+r3+r4 else
             begin
        ShowMessage('Введите значения сопротивления для выбранных проводников');
        exit;
              end
        end
     else
    if n=5 then
                  begin
           if (R1>0) and  (R2>0) and  (R3>0)and  (R4>0)and  (R5>0) then
           r:=r1+r2+r3+r4+r5 else
             begin
        ShowMessage('Введите значения сопротивления для выбранных проводников');
        exit;
              end
        end
      else
             begin
           if (R1>0) and  (R2>0) and  (R3>0)and  (R4>0)and  (R5>0) and  (R6>0)then
           r:=r1+r2+r3+r4+r5+r6 else
             begin
        ShowMessage('Введите значения сопротивления для выбранных проводников');
        exit;
              end
        end
              end
        else
    if n=1 then
     begin
        ShowMessage('Для параллельного соединения необходимо минимум два проводника');
        exit;
    end
     else  begin
    if n=2 then
        begin
           if (R1>0) and  (R2>0) then
           x:=1/r1+1/r2 else
             begin
        ShowMessage('Введите значения сопротивления для выбранных проводников');
        exit;
              end
        end
           else
    if n=3 then
         begin
           if (R1>0) and  (R2>0) and  (R3>0)then
           x:=1/r1+1/r2+1/r3 else
             begin
        ShowMessage('Введите значения сопротивления для выбранных проводников');
        exit;
              end
        end
    else
    if n=4 then
         begin
           if (R1>0) and  (R2>0) and  (R3>0)and  (R4>0)then
           x:=1/r1+1/r2+1/r3+1/r4 else
             begin
        ShowMessage('Введите значения сопротивления для выбранных проводников');
        exit;
              end
        end
     else
    if n=5 then
                  begin
           if (R1>0) and  (R2>0) and  (R3>0)and  (R4>0)and  (R5>0) then
           x:=1/r1+1/r2+1/r3+1/r4+1/r5 else
             begin
        ShowMessage('Введите значения сопротивления для выбранных проводников');
        exit;
              end
        end
      else
             begin
           if (R1>0) and  (R2>0) and  (R3>0)and  (R4>0)and  (R5>0) and  (R6>0)then
           x:=1/r1+1/r2+1/r3+1/r4+1/r5+1/r6 else
             begin
        ShowMessage('Введите значения сопротивления для выбранных проводников');
        exit;
              end
        end;
         r:=1/x;
       end;

      lbl9.Caption := 'Сопротивление цепи: ';
    if r < 1000 then
       lbl9.Caption := lbl9.Caption +
                   FloatToStrF(r,ffGeneral,3,2) + ' Ом'
    else
        begin
            r:=r/1000;
            lbl9.Caption := Form1.lbl9.Caption +
                   FloatToStrF(r,ffGeneral,3,2) + ' кОм';
        end;

        begin
   if (rb1.Checked) and (n=2) then  img1.Picture.LoadFromFile('po2.jpg')else
   if (rb1.Checked) and (n=3) then  img1.Picture.LoadFromFile('po3.jpg')else
   if (rb1.Checked) and (n=4) then  img1.Picture.LoadFromFile('po4.jpg')else
   if (rb1.Checked) and (n=5) then  img1.Picture.LoadFromFile('po5.jpg')else
   if (rb1.Checked) and (n=6) then  img1.Picture.LoadFromFile('po6.jpg')else
   if (rb2.Checked) and (n=2) then  img1.Picture.LoadFromFile('pr2.jpg')else
   if (rb2.Checked) and (n=3) then  img1.Picture.LoadFromFile('pr3.jpg')else
   if (rb2.Checked) and (n=4) then  img1.Picture.LoadFromFile('pr4.jpg')else
   if (rb2.Checked) and (n=5) then  img1.Picture.LoadFromFile('pr5.jpg')else
   if (rb2.Checked) and (n=6) then  img1.Picture.LoadFromFile('pr6.jpg')else
    img1.Picture.LoadFromFile('0.jpg');
end;
        end;

procedure TForm1.rb1Click(Sender: TObject);
begin
lbl9.Caption := 'Выбрано последовательное соединение';
end;

procedure TForm1.rb2Click(Sender: TObject);
begin
lbl9.Caption := 'Выбрано параллельное соединение';
end;




procedure TForm1.N2Click(Sender: TObject);
begin
Close;
end;

procedure TForm1.N1Click(Sender: TObject);
var i: Integer;
begin
  for i := 0 to Form1.ComponentCount - 1 do
    if Form1.Components[i].ClassNameIs('TEdit') then
      (Form1.Components[i] as TEdit).Text := '0';

end;

procedure TForm1.N3Click(Sender: TObject);
begin
      WinExec ('po.exe',sw_show)
end;

procedure TForm1.N4Click(Sender: TObject);
begin
WinExec ('pr.exe',sw_show)
end;

end.
