Форум программистов, компьютерный форум, киберфорум
Наши страницы
Lazarus
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.76/21: Рейтинг темы: голосов - 21, средняя оценка - 4.76
sinx
0 / 0 / 1
Регистрация: 03.03.2017
Сообщений: 28
1

Решение квадратных уравнений через графическое приложение

03.03.2017, 17:44. Просмотров 4071. Ответов 6

Всем привет, сказали сделать приложение через которое решаются квадратные уравнения вида ax^2+bx+c=0
Создал 6 полей Edit, в первое поле записать число a, во второе b, в третье c, в четвертое x1, в пятое дискриминант,в шестое x2. А так же кнопка Button1.
Тыкнул процедуру кнопки Button1. и ввел код:
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
procedure TForm1.Button1Click(Sender: TObject);
var a,b,c,x,x1,x2:real;
begin
  a:=StrToFloat(Edit1.Text);
  b:=StrToFloat(Edit2.Text);
  c:=StrToFloat(edit3.Text);
  x:=sqr(b)-4*a*c;
  if x>0 then  (x1:=(-b+sqrt(x))/(2*a)) and (x2:=(-b-sqrt(x))/(2*a))
  else if x=0 then (x1:=(-b/2*a))
  else if x<0 then (Edit4.Text:='Решений нету') and (Edit6.Text:='Решений нету');
  Edit5.Text:=FloatToStr(x);
  Edit4.Text:=FloatToSTr(x1);
  Edit6.Text:=FloatTOSTr(x2);
 
end;
 
end.
Переменная a - это число a, b - это число b, c - число с, x - дискриминант, x1 - первый корень, x2 - второй корень уравнения.
Выбивает ошибку
Код
unit3.pas(52,21)Fatal:Syntax error, ")" expected but ":=" found
(Горит жёлтым строка if x>0 then (x1:=........)
Знаю, что я тупой, но можете кто-нить помочь?
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.03.2017, 17:44
Ответы с готовыми решениями:

Решение линейных, квадратных и кубических уравнений
Unit Unit9; {$mode objfpc}{$H+} interface uses Classes, SysUtils, FileUtil, Forms,...

Решение квадратных уравнений: SIGFPE при отрицательном свободном члене
Программа должна решать квадратные уравнения. При свободном члене больше 0 все работает нормально,...

Графическое приложение: подсчет затрат электроэнергии
V1 литров воды нагревается на электроплите от температуры t0 до температуры t1, а V2 литров – до...

Графическое решение квадратных уравнений
Помогите пожайлуста решить графически квадратное уравнение в visual basic!!!!

Графическое решение уравнений
4) Решите графически уравнение x в кубе+x- 4=0 . Выполните проверку полученного решения.

6
ZX Spectrum-128
Модератор
Эксперт Pascal/Delphi
4762 / 3408 / 4013
Регистрация: 05.06.2014
Сообщений: 17,016
03.03.2017, 18:07 2
Delphi
1
  if x>0 then  begin x1:=(-b+sqrt(x))/(2*a); x2:=(-b-sqrt(x))/(2*a); end;
Добавлено через 1 минуту
Delphi
1
else if x<0 then begin Edit4.Text:='Решений нету'; Edit6.Text:='Решений нету'; end;
1
sinx
0 / 0 / 1
Регистрация: 03.03.2017
Сообщений: 28
03.03.2017, 18:23  [ТС] 3
Вроде вычисляет, но почему-то, если дискриминант отрицательный, все равно x1, x2 показывает какие-то числа, а не "Решений нету"

Добавлено через 53 секунды
Вот
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
a:=StrToFloat(Edit1.Text);
  b:=StrToFloat(Edit2.Text);
  c:=StrToFloat(edit3.Text);
  x:=sqr(b)-4*a*c;
  if x>0 then
  begin
  x1:=(-b+sqrt(x))/(2*a);
  x2:=(-b-sqrt(x))/(2*a);
  end;
   if x=0 then
  begin
  x1:=(-b/2*a); end;
  if x<0 then
  begin
  Edit4.Text:='Решений нету';
  Edit6.Text:='Решений нету';
  end;
  Edit5.Text:=FloatToStr(x);
  Edit4.Text:=FloatToSTr(x1);
  Edit6.Text:=FloatTOSTr(x2);
0
ZX Spectrum-128
Модератор
Эксперт Pascal/Delphi
4762 / 3408 / 4013
Регистрация: 05.06.2014
Сообщений: 17,016
03.03.2017, 18:32 4
Лучший ответ Сообщение было отмечено sinx как решение

Решение

Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
 if x>0 then
  begin
  x1:=(-b+sqrt(x))/(2*a);
  x2:=(-b-sqrt(x))/(2*a);
  end
 else
   if x=0 then
  begin
  x1:=(-b/2*a); x2:=(-b/2*a); // все равно два (!) корня
  end
 else
  begin
  Edit4.Text:='Действительных корней нет';
  Edit6.Text:='Действительных корней нет';
  end;
1
sinx
0 / 0 / 1
Регистрация: 03.03.2017
Сообщений: 28
03.03.2017, 18:42  [ТС] 5
А, спасибо, протупил, вообще я так подумал можно было просто
Delphi
1
2
3
4
5
6
if x>=0 then
begin
x1:=(-b+sqrt(x))/(2*a);
x2:=(-b-sqrt(x))/(2*a);
else begin Edit4.Text:='Корней Нет'; Edit6.Text:='Корней нет'
end;
Еще не сильно разобрался в этих логических с: if, then, else
0
ZX Spectrum-128
Модератор
Эксперт Pascal/Delphi
4762 / 3408 / 4013
Регистрация: 05.06.2014
Сообщений: 17,016
03.03.2017, 18:48 6
Цитата Сообщение от sinx Посмотреть сообщение
'Корней Нет'
Корни на самом деле есть. Комплексные.

Добавлено через 30 секунд
Delphi
1
2
3
4
5
6
if x>=0 then
begin
x1:=(-b+sqrt(x))/(2*a);
x2:=(-b-sqrt(x))/(2*a)
else begin Edit4.Text:='Корней Нет'; Edit6.Text:='Корней нет'
end;
Добавлено через 22 секунды
Перед else ; не ставится
1
sinx
0 / 0 / 1
Регистрация: 03.03.2017
Сообщений: 28
03.03.2017, 18:57  [ТС] 7
Лучший ответ Сообщение было отмечено ZX Spectrum-128 как решение

Решение

Вообще все равно, если отрицательный дискриминант, показывало какие-то иксы, но вот я чуть чуть поменял код:
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
if x>=0 then
begin
x1:=(-b+sqrt(x))/(2*a);
x2:=(-b-sqrt(x))/(2*a);
Edit4.Text:=FloatTOSTr(x1);
  Edit6.Text:=FloatToStR(x2);
  end;
if x<0 then begin Edit4.Text:='Действительных корней нету'; Edit6.Text:='Действительных корней нету';
end;
  Edit5.Text:=FloatToSTr(x);
 
end;
И теперь все как нужно работает.
0
03.03.2017, 18:57
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.03.2017, 18:57

Графическое решение уравнений
По заданию необходимо графически решить нелинейное уравнение методами хорд и дихотомии. Есть код,...

Графическое решение уравнений
Решить уравнение графически, любым способом, не представляю как, хоть накидайте ход действий(

графическое решение системы уравнений
помогите с формулой, ребятишки...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru