Экспертная система Delphi.int.ru

Сообщество программистов
Общение, помощь, обмен опытом

Логин:
Пароль:
Регистрация | Забыли пароль?

Delphi.int.ru Expert

Другие разделы портала

Переход к вопросу:

#   

Статистика за сегодня:  


Лучшие эксперты

Подробнее »



Вопрос # 2 325

/ вопрос открыт /

Доброго времени суток, уважаемые эксперты!
Помогите решить ряд проблем:

1.Программа работает но хотелось бы её обезопасить от ошибочного ввода данных добавив условие, но почему то else подсвечивает.

2.Присваивая тип данных x1,x2,x3,x4:real; не хочет считать, только если вводишь целые числа.

Помогите если есть ошибки укажите где и почему, чтоб в дальнейшем их избегать.

К вопросу прикреплён файл. Загрузить » (срок хранения: 60 дней с момента отправки вопроса)

Приложение:
  1.  
  2.  
  3.  
  4.  
  5. ----------------------------------
  6. unit MainUnit;
  7.  
  8. interface
  9.  
  10. uses
  11. Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  12. Dialogs, StdCtrls;
  13.  
  14. type
  15. TMainForm = class(TForm)
  16. ABLabel: TLabel;
  17. X1Edit: TEdit;
  18. Y1Edit: TEdit;
  19. X2Edit: TEdit;
  20. Y2Edit: TEdit;
  21. BDLabel: TLabel;
  22. X3Edit: TEdit;
  23. Y3Edit: TEdit;
  24. X4Edit: TEdit;
  25. Y4Edit: TEdit;
  26. ClearButton: TButton;
  27. CalkButton: TButton;
  28. ResultEdit: TEdit;
  29. Label1: TLabel;
  30.  
  31.  
  32. procedure ClearButtonClick(Sender: TObject);
  33. procedure ClearEdit(Sender: TObject);
  34. procedure CalkButtonClick(Sender: TObject);
  35. private
  36. { Private declarations }
  37. public
  38. { Public declarations }
  39. end;
  40.  
  41. var
  42. MainForm: TMainForm;
  43.  
  44. implementation
  45.  
  46. {$R *.dfm}
  47.  
  48. procedure TMainForm.ClearButtonClick(Sender: TObject);
  49. begin
  50. X1Edit.Clear;
  51. X2Edit.Clear;
  52. X3Edit.Clear;
  53. X4Edit.Clear;
  54. Y1Edit.Clear;
  55. Y2Edit.Clear;
  56. Y3Edit.Clear;
  57. Y4Edit.Clear;
  58. ResultEdit.Clear;
  59. end;
  60.  
  61. procedure TMainForm.ClearEdit(Sender: TObject);
  62. begin
  63. X1Edit.Clear;
  64. X2Edit.Clear;
  65. X3Edit.Clear;
  66. X4Edit.Clear;
  67. Y1Edit.Clear;
  68. Y2Edit.Clear;
  69. Y3Edit.Clear;
  70. Y4Edit.Clear;
  71. ResultEdit.Clear;
  72. end;
  73.  
  74. procedure TMainForm.CalkButtonClick(Sender: TObject);
  75. var
  76. x1,x2,x3,x4:integer;
  77. y1,y2,y3,y4:integer;
  78. AB,BC,DC:integer;
  79. sum:real;
  80. begin
  81. try
  82. x1:=StrToInt(X1Edit.Text);
  83. y1:=StrToInt(Y1Edit.Text);
  84. x2:=StrToInt(X2Edit.Text);
  85. y2:=StrToInt(Y2Edit.Text);
  86. x3:=StrToInt(X3Edit.Text);
  87. y3:=StrToInt(Y3Edit.Text);
  88. x4:=StrToInt(X4Edit.Text);
  89. y4:=StrToInt(Y4Edit.Text);
  90.  
  91. AB:=((x2-x1)+(y2-y1));
  92. BC:=((x3-x2)+(y3-y2));
  93. DC:=((x3-x4)+(y3-y4));
  94.  
  95. if AB=DC then
  96.  
  97. sum:=AB+BC;
  98. ResultEdit.Text:=FloatTostr(sum);
  99.  
  100. else
  101.  
  102.  
  103. except
  104.  
  105. end;
  106. end;
  107. end.


ubyou Вопрос ожидает решения (принимаются ответы, доступен мини-форум)

Вопрос задал: ubyou (статус: Посетитель)
Вопрос отправлен: 20 января 2009, 23:05
Состояние вопроса: открыт, ответов: 2.

Ответ #1. Отвечает эксперт: Паровоз

Здравствуйте, ubyou!
1) Перед else Точка с запятой не ставится. Вам нужно объединить два оператора
sum:=AB+BC;
ResultEdit.Text:=FloatTostr(sum);
заключив их в блок begin/end
2) Переменные x1,x2,x3,x4 у Вас объявлены как целочисленные, поэтому и не считывается. Поменяйте их тип на Extended.

Ответ отправил: Паровоз (статус: 10-ый класс)
Время отправки: 20 января 2009, 23:28
Оценка за ответ: 4

Комментарий к оценке: Спасибо! теперь условие работает, но вот с данными все та же проблема при вводе дробных координат A(1,5;1,5) B(1,5;10) C(6;10) D(6;1,5)

Ответ #2. Отвечает эксперт: Мережников Андрей

Здравствуйте, ubyou!
Измените StrToInt на StrToFloat.

Ответ отправил: Мережников Андрей (статус: Абитуриент)
Время отправки: 21 января 2009, 06:05
Оценка за ответ: 4

Комментарий к оценке: Спасибо работает!

Мини-форум вопроса

Всего сообщений: 1; последнее сообщение — 21 января 2009, 06:08; участников в обсуждении: 1.
Мережников Андрей

Мережников Андрей (статус: Абитуриент), 21 января 2009, 06:08 [#1]:

и измените тип AB,BC,DC на real

Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.

Версия движка: 2.6+ (26.01.2011)
Текущее время: 26 сентября 2020, 05:26
Выполнено за 0.02 сек.
Рейтинг@Mail.ru