Тема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.