Тема2. Разветвляющие алгоритмы

Тема1. Линейное программирование

 

4А.Вычислить длину гипотенузы прямоугольного треугольника по заданным двум катетам

 

procedure TForm1.Button1Click(Sender: TObject);

var a,b,c:real;

begin

if length(Edit1.Text)=0 then

begin

showmessage('введите данные в графу "а="');

exit;

end;

if length(Edit2.Text)=0 then

begin

showmessage('введите данные в графу "в="');

exit;

end;

a:=strtofloat(edit1.Text);

b:=strtofloat(edit2.Text);

c:=sqrt(a*a+b*b);

label1.caption:=floattostrf(c,fffixed,10,2);

end;

procedure TForm1.edit1keypress(Sender: TObject;var key:char);

begin

case key of

'0'..'9',#8,#162,#163,#2:;

#13:edit2.setfocus;

else key:=chr(0);

end;

end;

procedure TForm1.edit2keypress(Sender: TObject; var Key: Char);

begin

case key of

'0'..'9',#8,#162,#163,#2:;

#13:;

else key:=chr(0);

end;

end;

end.

 

 

9В. Участок поля имеет форму равнобедренной трапеции. Вычислить ее периметр и площадь по заданным сторонам.

 
 


procedure TForm1.Button1Click(Sender: TObject);

var a,b,h,s,p:real;

begin

if length(form1.Edit1.Text)=0 then

begin

showmessage('введите "а"');

exit;

end;

if length(form1.Edit2.Text)=0 then

begin

showmessage('введите "b"');

exit;

end;

if length(form1.Edit3.Text)=0 then

begin

showmessage('введите "h"');

exit;

end;

a:=strtofloat(edit1.text);

b:=strtofloat(edit2.text);

h:=strtofloat(edit3.text);

s:=(a*b)*h/2;

p:=a+b+2*h;

label4.Caption:=floattostr(s);

label5.Caption:=floattostr(p);

end;

procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);

begin

case key of

'0'..'9',#8:;

#13:edit2.SetFocus;

else key:=chr(0);

end;

end;

procedure TForm1.Edit2keypress(Sender: TObject; var Key: Char);

begin

case key of

'0'..'9',#8:;

#13:edit3.SetFocus;

else key:=chr(0);

end;

end;

procedure TForm1.Edit3KeyPress(Sender: TObject; var Key: Char);

begin

case key of

'0'..'9',#8:;

#13:button1.SetFocus;

else key:=chr(0);

end;

end;

end.

 

Тема2. Разветвляющие алгоритмы

4А.Даны два числа. Вывести первое, если оно больше второго и оба, если это не так.

procedure TForm1.Button1Click(Sender: TObject);

var a,b:real;

begin

if length(edit1.Text)=0 then

begin

showmessage('введите "а"');

exit;

end;

if length(edit2.Text)=0 then да

begin

showmessage('введите "в"');

exit;

end;

a:=strtofloat(edit1.Text); нет

b:=strtofloat(edit2.Text);

if a>b then label1.caption:=floattostr(a)

else label1.caption:=floattostr(a)+' '+floattostr(b);

end;

procedure TForm1.edit1keypress(Sender: TObject; var Key: Char);

begin

case key of

'0'..'9',#8:;

#13:edit2.setfocus;

else key:=chr(0);

end;

end;

procedure TForm1.edit2keypress(Sender: TObject; var Key: Char);

begin

case key of

'0'..'9',#8:;

#13:Button1.setfocus;

else key:=chr(0);

end;

end;

end.

9B. Разработать программу, которая рассчитывает сумму, произведение, разность и частное двух значений. Предусмотреть выбор действия.

procedure TForm1.Button1Click(Sender: TObject);

var a,b,c:real;

begin да нет

if length(edit1.Text)=0 then

begin

showmessage('введите "а"');

exit;

end; да нет

if length(edit2.Text)=0 then

begin

showmessage('введите "в"'); да нет

exit;

end;

a:=strtofloat(edit1.Text);

b:=strtofloat(edit2.Text); да

if radiobutton1.Checked // 1)

then

c:=a+b;

if radiobutton2.Checked // 2)нет

 

then

c:=a-b;

if radiobutton3.Checked // 3)

then

c:=a*b;

if radiobutton4.Checked then // 4)

begin

if (b=0) then begin

showmessage('на ноль делить нельзя');

exit;

end

else

c:=a/b;

end;

label7.Caption:=floattostrf(c,fffixed,10,2);

end;

procedure TForm1.edit1keypress(Sender: TObject; var Key: Char);

begin

case key of

'0'..'9',#8:;

#13: edit2.SetFocus;

else key:=chr(0);

end;

end;

procedure TForm1.edit2keypress(Sender: TObject; var Key: Char);

begin

case key of

'0'..'9',#8:;

#13: button1.SetFocus;

else key:=chr(0);

end;

end;

end.