2-тапсырма. Процедураны қолданып, квадраттық теңдеуді есептеу.
Төменде (2.1.17-сурет) квадраттық теңдеуді есептеудің орындалу нәтижесінің терезесі келтірілген.
2.1.17-сурет. Квадраттық теңдеуді есептеудің орындалу нәтижесі
Тапсырманы орындау алгоритмі:
1. Жаңа жобаны ашып, пішіннің Caption қасиетіне «Квадраттық теңдеу» деген мәнді жазыңыз.
2. Пішінге Edit1, Edit2, Edit3, Label, Label2, Label3, Label4, Label5, Button1 компоненттерін орналастырыңыз. Label компонентінің Caption қасиетіне «Теңдеудің коэффициенттерін енгіз», Label2-ге «a», Label3-ке «b», Label4-ке «c», Button1 батырмасына «Есептеу» мәндерін жазыңыз. Label5-тің Caption қасиетін, Edit1-дің Техт қасиетін тазалаңыз.
3. Код терезесін ашып, оның ішіндегі іmplementation мен {$R *.dfm} жолдары арасына келесі процедураның кодын жазыңыз:
// квадраттық теңдеуді есептейді
procedure SqRoot( a,b,c : real; var x1, x2 : real; var ok : boolean);
{ a,b,c – теңдеудің коэффициенттері
x1,x2 – теңдеудің түбірлері
ok = True - шешімі бар
ok = False – шешімі жоқ }
var
d : real; // дискриминант
begin
d:= Sqr( b ) - 4*a*c;
if d < 0
then
ok := False // теңдеудің шешімі жоқ
else
begin
ok := True;
x1 := (-b + Sqrt(d)) / (2*a);
x2 := ( b + Sqrt(d)) / (2*a);
end;
end;
4. Button1 батырмасын екі рет шертіңіз. Пайда болған процедураның дайындамасына келесі кодты жазыңыз:
procedure TForm1.Button1Click(Sender: TObject);
var
k1,k2: real; // теңдеудің түбірлері
rez: boolean; // True - шешімі бар, False - шешімі жоқ
mes: string; // хабарлама
begin
SqRoot(StrToFloat(Edit1.Text), StrToFloat(Edit2.Text),
StrToFloat(Edit3.Text), k1,k2,rez);
if rez then
mes := 'Тендеудiн тубiрлерi' + #13 +
'x1='+FloatToStrF(k1,ffGeneral,4,2)+#13+
'x2='+FloatToStrF(k2,ffGeneral,4,2)+#13
else
mes := 'Тендеудiн шешiмi жок';
label5.Caption := mes;
end;
end.
Төменде (2.1.18-сурет) осы программаның блок-схемасы көрсетілген:
2.1.18-сурет. Программаның блок-схемасы
Жобаны сақтап, қосымшаны орындауға жіберіңіз.
Достарыңызбен бөлісу: |