| 
| 
 | Вопрос # 2 325/ вопрос открыт / | 
 |  Доброго времени суток, уважаемые эксперты!Помогите решить ряд проблем:
 
 1.Программа работает но хотелось бы её обезопасить от ошибочного ввода данных добавив условие, но почему то  else подсвечивает.
 
 2.Присваивая тип данных  x1,x2,x3,x4:real; не хочет считать, только если вводишь целые числа.
 
 Помогите если есть ошибки укажите где и почему, чтоб в дальнейшем их избегать.
 К вопросу прикреплён файл. Загрузить » (срок хранения: 60 дней с момента отправки вопроса) Приложение:Переключить в обычный режим     ----------------------------------unit MainUnit; interface uses  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,  Dialogs, StdCtrls; type  TMainForm = class(TForm)    ABLabel: TLabel;    X1Edit: TEdit;    Y1Edit: TEdit;    X2Edit: TEdit;    Y2Edit: TEdit;    BDLabel: TLabel;    X3Edit: TEdit;    Y3Edit: TEdit;    X4Edit: TEdit;    Y4Edit: TEdit;    ClearButton: TButton;    CalkButton: TButton;    ResultEdit: TEdit;    Label1: TLabel;      procedure ClearButtonClick(Sender: TObject);    procedure ClearEdit(Sender: TObject);    procedure CalkButtonClick(Sender: TObject);  private    { Private declarations }  public    { Public declarations }  end; var  MainForm: TMainForm; implementation {$R *.dfm} procedure TMainForm.ClearButtonClick(Sender: TObject);beginX1Edit.Clear;X2Edit.Clear;X3Edit.Clear;X4Edit.Clear;Y1Edit.Clear;Y2Edit.Clear;Y3Edit.Clear;Y4Edit.Clear;ResultEdit.Clear;end; procedure TMainForm.ClearEdit(Sender: TObject);beginX1Edit.Clear;X2Edit.Clear;X3Edit.Clear;X4Edit.Clear;Y1Edit.Clear;Y2Edit.Clear;Y3Edit.Clear;Y4Edit.Clear;ResultEdit.Clear;end; procedure TMainForm.CalkButtonClick(Sender: TObject);  var    x1,x2,x3,x4:integer;    y1,y2,y3,y4:integer;    AB,BC,DC:integer;    sum:real;begin try x1:=StrToInt(X1Edit.Text); y1:=StrToInt(Y1Edit.Text); x2:=StrToInt(X2Edit.Text); y2:=StrToInt(Y2Edit.Text); x3:=StrToInt(X3Edit.Text); y3:=StrToInt(Y3Edit.Text); x4:=StrToInt(X4Edit.Text); y4:=StrToInt(Y4Edit.Text);  AB:=((x2-x1)+(y2-y1)); BC:=((x3-x2)+(y3-y2)); DC:=((x3-x4)+(y3-y4)); if AB=DC then  sum:=AB+BC; ResultEdit.Text:=FloatTostr(sum); else  except end;end;end.
|  |   Вопрос задал: 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 |  Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте. |