Форум программистов, компьютерный форум, киберфорум
Наши страницы
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
Keppочка
0 / 0 / 0
Регистрация: 01.10.2013
Сообщений: 38
1

Вычисление корней, найти ошибку в коде

29.11.2013, 18:37. Просмотров 762. Ответов 17
Метки нет (Все метки)

Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
unit Unit1;
 
interface
 
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, jpeg, ExtCtrls;
 
type
  Tfrm1 = class(TForm)
    lbl1: TLabel;
    img1: TImage;
    btn1: TButton;
    lbl2: TLabel;
    lbl3: TLabel;
    edt1: TEdit;
    lbl4: TLabel;
    edt2: TEdit;
    lbl5: TLabel;
    edt3: TEdit;
    edt4: TEdit;
    lbl6: TLabel;
    lbl7: TLabel;
    edt5: TEdit;
    procedure edt1Change(Sender: TObject);
    procedure btn1Click(Sender: TObject);
     private
    { Private declarations }
  public
    { Public declarations }
  end;
 
var
  frm1: Tfrm1;
 var a,b,c,x1,x2,D:Real;
implementation
 
{$R *.dfm}
 
procedure Tfrm1.edt1Change(Sender: TObject);
procedure Tfrm1.btn1Click(Sender: TObject);
begin
 if (Edt1.Text = '') then edt1.Text := '1';
 if (edt2.Text = '') then edt2.Text := '1';
 if (edt3.Text = '') then edt3.Text := '0';
 a:= StrToFloat(edt1.Text) ;
 b:= StrToFloat(edt2.Text) ;
 c:= StrToFloat(edt3.Text) ;
 D:= b*b-4*a*c;
 if (D<0) then
 MessageDlg('ГЌГҐГІ êîðГ*ГҐГ©',mtWarning, [mbOk, mbCancel],0)
 else
 if (D>0) then
 begin
   x1:= (-b + Sqrt( D )) / (2 * a);
   x2:= (-b - Sqrt( D )) / (2 * a);
   edt4.Text:= FloatToStr(x1);
   edt5.Text:= FloatToStr(x2);
 end;
end;
 
end.
Где я ошибся?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.11.2013, 18:37
Ответы с готовыми решениями:

Найти ошибку в коде
Есть программа которая запускает одновременно такое кол-во Thread(-ов) сколько...

Найти ошибку в коде
Form1.Caption:=inttostr(SG1.Col)+' '+inttostr(SG1.row); x:=SG1.Col;...

Найти ошибку в коде
function Get_URL(Servicio: string): String; var Cliente_DDE:...

Найти ошибку в коде
Добрый день всем, помогите найти ошибку в коде, не могу не как найти procedure...

Найти ошибку в коде
program Console; {$APPTYPE CONSOLE} uses SysUtils,windows; function...

17
stalker12555
1 / 1 / 0
Регистрация: 15.07.2013
Сообщений: 106
29.11.2013, 18:40 2
Цитата Сообщение от Keppa Посмотреть сообщение
procedure Tfrm1.edt1Change(Sender: TObject);
procedure Tfrm1.btn1Click(Sender: TObject);
Одна из строк лишняя..
0
Keppочка
0 / 0 / 0
Регистрация: 01.10.2013
Сообщений: 38
29.11.2013, 18:41  [ТС] 3
Какая?
0
stalker12555
1 / 1 / 0
Регистрация: 15.07.2013
Сообщений: 106
29.11.2013, 18:43 4
Цитата Сообщение от Keppa Посмотреть сообщение
var
* frm1: Tfrm1;
*var a,b,c,x1,x2,D:Real;
Зачем писать второй раз
Delphi
1
var
Добавлено через 24 секунды
Keppa, первая

Добавлено через 1 минуту
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
unit Unit1;
interface
uses
 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
 Dialogs, StdCtrls, jpeg, ExtCtrls;
type
 Tfrm1 = class(TForm)
 Tfrm1 = class(TForm)
  lbl1: TLabel;
  img1: TImage;
  btn1: TButton;
  lbl2: TLabel;
  lbl3: TLabel;
  edt1: TEdit;
  lbl4: TLabel;
  edt2: TEdit;
  lbl5: TLabel;
  edt3: TEdit;
  edt4: TEdit;
  lbl6: TLabel;
  lbl7: TLabel;
  edt5: TEdit;
  procedure btn1Click(Sender: TObject);
  private
  { Private declarations }
 public
  { Public declarations }
 end;
var
 frm1: Tfrm1;
 a,b,c,x1,x2,D:Real;
implementation
{$R .dfm}
procedure Tfrm1.btn1Click(Sender: TObject);
begin
if (Edt1.Text = '') then edt1.Text := '1';
if (edt2.Text = '') then edt2.Text := '1';
if (edt3.Text = '') then edt3.Text := '0';
a:= StrToFloat(edt1.Text) ;
b:= StrToFloat(edt2.Text) ;
c:= StrToFloat(edt3.Text) ;
D:= b*b-4*a*c;
if (D<0) then
MessageDlg('Нет корней',mtWarning, [mbOk, mbCancel],0)
else
if (D>0) then
begin
 x1:= (-b + Sqrt( D )) / (2 * a);
 x2:= (-b - Sqrt( D )) / (2 * a);
 edt4.Text:= FloatToStr(x1);
 edt5.Text:= FloatToStr(x2);
end;
end;
end.
Вот исправил...
0
Keppочка
0 / 0 / 0
Регистрация: 01.10.2013
Сообщений: 38
29.11.2013, 18:45  [ТС] 5
Спасибо
0
Keppочка
0 / 0 / 0
Регистрация: 01.10.2013
Сообщений: 38
29.11.2013, 20:52  [ТС] 6
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
unit Unit1;
 
interface
 
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, jpeg, ExtCtrls;
 
type
  Tfrm1 = class(TForm)
    lbl1: TLabel;
    img1: TImage;
    btn1: TButton;
    lbl2: TLabel;
    lbl3: TLabel;
    edt1: TEdit;
    lbl4: TLabel;
    edt2: TEdit;
    lbl5: TLabel;
    edt3: TEdit;
    edt4: TEdit;
    lbl6: TLabel;
    lbl7: TLabel;
    edt5: TEdit;
 
    procedure btn1Click(Sender: TObject);
 
     private
    { Private declarations }
  public
    { Public declarations }
  end;
 
var
  frm1: Tfrm1;
  a,b,c,x1,x2,D:Real;
implementation
 
{$R *.dfm}
 
 
procedure Tfrm1.btn1Click(Sender: TObject);
 
begin
 if (Edt1.Text = '') then edt1.Text := '1';
 if (edt2.Text = '') then edt2.Text := '1';
 if (edt3.Text = '') then edt3.Text := '0';
 a:= StrToFloat(edt1.Text) ;
 b:= StrToFloat(edt2.Text) ;
 c:= StrToFloat(edt3.Text) ;
 if (a=0) and (b=0) and (c=0) then
  MessageDlg('X- ëþáûå Г·ГЁГ±Г«Г*',mtWarning, [mbOk, mbCancel],0)
  else
  if (a=0) and (b=0) then
   MessageDlg('ÓðГ*ГўГ*ГҐГ*ГЁГҐ Г*ГҐ èìåò ñìûñëГ*',mtWarning, [mbOk, mbCancel],0)
   else
   if (a=0) and (c=0) then
    MessageDlg('X = 0',mtWarning, [mbOk, mbCancel],0)
    else
    if (b=0) and (c=0) then
    MessageDlg('X = 0',mtWarning, [mbOk, mbCancel],0)
    else
    if a=0 then
    begin
      x1:=(-c)/b;
      edt4.Text:= FloatToStr(x1);
      end
      else
      if b=0 then
      begin
        if (b=0) and (c>0) then
        MessageDlg('ÊîðГ*ГҐГ© Г*ГҐГІ',mtWarning, [mbOk, mbCancel],0)
      end
      else
      if (b=0) and (c<=0) then
      begin
        x1:=Sqrt((-c)/a);
        edt4.Text:= FloatToStr(x1);
              end
      else
      if c=0 then
      begin
        x1:=0;
        x2:=(-b)/a;
        edt4.Text:= FloatToStr(x1);
        edt5.Text:= FloatToStr(x2);
      end;
 
 D:= b*b-4*a*c;
 if (D<0) then
 MessageDlg('ÊîðГ*ГҐГ© Г*ГҐГІ',mtWarning, [mbOk, mbCancel],0)
 else
 if (D>0) then
 begin
   x1:= (-b + Sqrt( D )) / (2 * a);
   x2:= (-b - Sqrt( D )) / (2 * a);
   edt4.Text:= FloatToStr(x1);
   edt5.Text:= FloatToStr(x2);
 end;
end;
 
end.
0
volvo
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
26148 / 17525 / 6950
Регистрация: 22.10.2011
Сообщений: 30,861
Записей в блоге: 6
29.11.2013, 20:59 7
Ни тебе задания, ни описания ошибки, ни пожалуйста. Выбросят кусок текста какой-то. Что, для роботов тему создаешь? Так и жди, пока роботы ответят... Тьфу.
1
Skid
14 / 14 / 4
Регистрация: 12.01.2012
Сообщений: 128
29.11.2013, 21:03 8
Цитата Сообщение от Keppa Посмотреть сообщение
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
unit Unit1;
 
interface
 
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, jpeg, ExtCtrls;
 
type
  Tfrm1 = class(TForm)
    lbl1: TLabel;
    img1: TImage;
    btn1: TButton;
    lbl2: TLabel;
    lbl3: TLabel;
    edt1: TEdit;
    lbl4: TLabel;
    edt2: TEdit;
    lbl5: TLabel;
    edt3: TEdit;
    edt4: TEdit;
    lbl6: TLabel;
    lbl7: TLabel;
    edt5: TEdit;
 
    procedure btn1Click(Sender: TObject);
 
     private
    { Private declarations }
  public
    { Public declarations }
  end;
 
var
  frm1: Tfrm1;
  a,b,c,x1,x2,D:Real;
implementation
 
{$R *.dfm}
 
 
procedure Tfrm1.btn1Click(Sender: TObject);
 
begin
 if (Edt1.Text = '') then edt1.Text := '1';
 if (edt2.Text = '') then edt2.Text := '1';
 if (edt3.Text = '') then edt3.Text := '0';
 a:= StrToFloat(edt1.Text) ;
 b:= StrToFloat(edt2.Text) ;
 c:= StrToFloat(edt3.Text) ;
 if (a=0) and (b=0) and (c=0) then
  MessageDlg('X- ëþáûå Г·ГЁГ±Г«Г*',mtWarning, [mbOk, mbCancel],0)
  else
  if (a=0) and (b=0) then
   MessageDlg('ÓðГ*ГўГ*ГҐГ*ГЁГҐ Г*ГҐ èìåò ñìûñëГ*',mtWarning, [mbOk, mbCancel],0)
   else
   if (a=0) and (c=0) then
    MessageDlg('X = 0',mtWarning, [mbOk, mbCancel],0)
    else
    if (b=0) and (c=0) then
    MessageDlg('X = 0',mtWarning, [mbOk, mbCancel],0)
    else
    if a=0 then
    begin
      x1:=(-c)/b;
      edt4.Text:= FloatToStr(x1);
      end
      else
      if b=0 then
      begin
        if (b=0) and (c>0) then
        MessageDlg('ÊîðГ*ГҐГ© Г*ГҐГІ',mtWarning, [mbOk, mbCancel],0)
      end
      else
      if (b=0) and (c<=0) then
      begin
        x1:=Sqrt((-c)/a);
        edt4.Text:= FloatToStr(x1);
              end
      else
      if c=0 then
      begin
        x1:=0;
        x2:=(-b)/a;
        edt4.Text:= FloatToStr(x1);
        edt5.Text:= FloatToStr(x2);
      end;
 
 D:= b*b-4*a*c;
 if (D<0) then
 MessageDlg('ÊîðГ*ГҐГ© Г*ГҐГІ',mtWarning, [mbOk, mbCancel],0)
 else
 if (D>0) then
 begin
   x1:= (-b + Sqrt( D )) / (2 * a);
   x2:= (-b - Sqrt( D )) / (2 * a);
   edt4.Text:= FloatToStr(x1);
   edt5.Text:= FloatToStr(x2);
 end;
end;
 
end.

а у тя хоть где ошибка)че щас ломанемся проэкты создавать проверять) + надо еще понять что оно вообще делает) условие!и описание ошибки в студию)
0
Keppочка
0 / 0 / 0
Регистрация: 01.10.2013
Сообщений: 38
29.11.2013, 21:07  [ТС] 9
Извините, я просто не могу описать ошибку, лучше файл скинуproject.zip
вообщем после ведения вот этой строчки в программу if (b=0) and (c=0) then, то выдает ошибку "Project Project1.exe raised exception class EinvalidOp with message 'Invalid floating point operation'. Process stopped. Use Step or Run to continue', и помечает вот эту строчку x1:= (-b + Sqrt( D )) / (2 * a);. Что это?
0
Skid
14 / 14 / 4
Регистрация: 12.01.2012
Сообщений: 128
29.11.2013, 21:10 10
Цитата Сообщение от Keppa Посмотреть сообщение
Извините, я просто не могу описать ошибку, лучше файл скинуВложение 335159
ты просто шикарен)

чесно уже помогать не хочется)

ты сам открой архив и попробуй запустить?тыб мне еще ярлык скинул)

или в этом и есть ошибка? если да то тупо нехватает модуля с кодом!да и много еще файлов!
0
Keppочка
0 / 0 / 0
Регистрация: 01.10.2013
Сообщений: 38
29.11.2013, 21:16  [ТС] 11
project.zip
0
Skid
14 / 14 / 4
Регистрация: 12.01.2012
Сообщений: 128
29.11.2013, 21:20 12
Цитата Сообщение от Keppa Посмотреть сообщение
у меня все работает)
правдо опять pas файла нету)
Unit1.pas.cbk - этот переделал!ну просто cbk удалил
0
Keppочка
0 / 0 / 0
Регистрация: 01.10.2013
Сообщений: 38
29.11.2013, 21:25  [ТС] 13
project.zip
0
Skid
14 / 14 / 4
Регистрация: 12.01.2012
Сообщений: 128
29.11.2013, 21:29 14
Цитата Сообщение от Keppa Посмотреть сообщение
Я наверное чтото не так делаю но у меня все работает)
а ошибка при компиляции выводится?
0
Keppочка
0 / 0 / 0
Регистрация: 01.10.2013
Сообщений: 38
29.11.2013, 21:32  [ТС] 15
Нет
0
Skid
14 / 14 / 4
Регистрация: 12.01.2012
Сообщений: 128
29.11.2013, 21:34 16
Цитата Сообщение от Keppa Посмотреть сообщение
Нет
так)мне надоело)совет на будущее сразуже описываешь все что только можешь!скриншоты ошибак тоже можно)
все а я спать)а то из тя ответы клешнями тащить надо)такое ощущение что это ты мне помогаешь)
0
Keppочка
0 / 0 / 0
Регистрация: 01.10.2013
Сообщений: 38
29.11.2013, 21:59  [ТС] 17
Ладно, всё равно спасибо
0
angstrom
2470 / 1846 / 242
Регистрация: 14.09.2012
Сообщений: 5,981
Записей в блоге: 2
29.11.2013, 22:29 18
Delphi
1
2
3
 a:= StrToFloat(edt1.Text) ;
 b:= StrToFloat(edt2.Text) ;
 c:= StrToFloat(edt3.Text) ;
Где гарантия, что в Edit-ах введено правильно число для конвертации?
Тогда уж для перестраховки удобнее использовать StrToFloatDef.
0
29.11.2013, 22:29
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.11.2013, 22:29

Найти ошибку в коде
В матрице n-го порядка переставить строки так, чтобы на главной диагонали...

Найти ошибку в коде
procedure TForm1.Button1Click(Sender:TObject); var xn, xk, x, s, h, y, al,...

Помогите найти ошибку в коде
unit Kvadrat; interface uses Windows, Messages, SysUtils, Variants,...


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

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

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