Квадратное уравнение для школьников.
Программа простая насколько это возможно:
На скрине есть еше одна не рабочая кнопка хотел добавить график но не дошел до его реализации.
procedure TForm1.Button1Click(Sender: TObject);
var d,a,b,c,x1,x2:real;
begin
var d,a,b,c,x1,x2:real;
begin
здесь делаем проверку на пустые аргументы если длина текста трех окон для ввода аргументов равна нулю то следовательно аргументов то и нет
if ((length(edit1.Text)=0) and (length(edit2.Text)=0) and (length(edit3.Text)=0))
then begin showmessage('Не введен ни один аргумент уравнения!');exit; end
else
преобразуем из строки в вещественное число
a:=strtofloat(edit1.Text); b:=strtofloat(edit2.Text); c:=strtofloat(edit3.Text);
if (a=0) then begin showmessage('аргумент ах не должен быть равен нулю!'); exit; end
else
sqr - это квадрат числа
d:=sqr(b)-4*a*c;
if d=0 then begin x1:=-b/2*a; memo1.Lines.Add('Дискриминант равен нулю,поэтому имеем один корень x='+floattostr(x1)+' '); exit; end;
проверка дискриминанта sqrt это корень
if d>0 then begin
x1:=(-b+sqrt(sqr(b)-4*a*c))/(2*a);
x2:=(-b-sqrt(sqr(b)-4*a*c))/(2*a);
memo1.Lines.Add('Дискриминант больше нуля d='+floattostr(d));
memo1.lines.add('Первый корень: x1= '+floattostrf(x1,ffgeneral,2,2));
memo1.lines.add('Второй корень: x2= '+floattostrf(x2,ffgeneral,2,2));
memo1.Lines.Add(' ');
exit;
end;
if d<0 then begin
memo1.lines.add('Дискриминант меньше нуля,поэтому данное уравнение не имеет корней!');
memo1.Lines.Add(' ');
exit;
end;
end;
procedure TForm1.Button3Click(Sender: TObject);
begin
close;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
очистим все аргументы
edit1.Clear; edit2.Clear; edit3.Clear; label5.Caption:='';
end;
procedure TForm1.N1Click(Sender: TObject);
begin
memo1.Clear; очистим результаты
end;
procedure TForm1.N2Click(Sender: TObject);
begin
if d>0 then begin
x1:=(-b+sqrt(sqr(b)-4*a*c))/(2*a);
x2:=(-b-sqrt(sqr(b)-4*a*c))/(2*a);
memo1.Lines.Add('Дискриминант больше нуля d='+floattostr(d));
memo1.lines.add('Первый корень: x1= '+floattostrf(x1,ffgeneral,2,2));
memo1.lines.add('Второй корень: x2= '+floattostrf(x2,ffgeneral,2,2));
memo1.Lines.Add(' ');
exit;
end;
if d<0 then begin
memo1.lines.add('Дискриминант меньше нуля,поэтому данное уравнение не имеет корней!');
memo1.Lines.Add(' ');
exit;
end;
end;
procedure TForm1.Button3Click(Sender: TObject);
begin
close;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
очистим все аргументы
edit1.Clear; edit2.Clear; edit3.Clear; label5.Caption:='';
end;
procedure TForm1.N1Click(Sender: TObject);
begin
memo1.Clear; очистим результаты
end;
procedure TForm1.N2Click(Sender: TObject);
begin
здесь мы сохраняем ответы если не выполнено сохранение нажата отмена то выходим
иначе сохраняем из мемо в файл
if not savedialog1.execute then exit
else memo1.Lines.SaveToFile(savedialog1.FileName);
end;
Конечно можно много чего еше добавить в программу, но программа и так выполняет требуемую задачу. Модифицируйте на свой вкус :)
Комментариев нет:
Отправить комментарий