@VinogradovDionis
Студент

Как исправить ошибки в коде?

Помогите исправить ошибки, пожалуйста!!
Есть код, и у него следующие ошибки:

Компиляция проекта, цель: project1.exe: Код завершения 1, ошибок: 5, подсказок: 3
unit1.pas(139,6) Hint: use DIV instead to get an integer result
unit1.pas(139,29) Error: Incompatible types: got "Double" expected "LongInt"
unit1.pas(140,6) Hint: use DIV instead to get an integer result
unit1.pas(140,24) Error: Incompatible types: got "Double" expected "LongInt"
unit1.pas(141,8) Error: Incompatible types: got "Boolean" expected "Int64"
unit1.pas(144,30) Error: Incompatible type for arg no. 1: Got "Int64", expected "AnsiString"
stringl.inc(1046,19) Hint: Found declaration: Add(const AnsiString):LongInt;
unit1.pas(148,1) Fatal: Syntax error, ";" expected but "ELSE" found

Код:

procedure TForm1.Button1Click(Sender: TObject);

const e=0.0001;
var x1,y1,x2,y2,x3,y3,x4,y4,x,y:Longint;

  min,max:LongInt;
  A1,B1,C1,A2,B2,C2:LongInt;

  str1,str2:string;
begin
clrscr;
Memo1.clear();

x1 := StrToInt(Edit1.Text);
y1 := StrToInt(Edit2.Text);
x2 := StrToInt(Edit3.Text);
y2 := StrToInt(Edit4.Text);

x3 := StrToInt(Edit5.Text);
y3 := StrToInt(Edit6.Text);
x4 := StrToInt(Edit7.Text);
y4 := StrToInt(Edit8.Text);




A1:= y1 - y2;
B1:= x2 - x1;
C1:= x1*y2 - x2*y1;
A2:= y3 - y4;
B2:= x4 - x3;
C2:= x3*y4 - x4*y3;

if x1>x2 then begin
min:=x2;
max:=x1;
end;




if ((B1*A2)-(B2*A2) and A1) then begin
    y:= ((C2*A1) - (C1*A2)) / ((B1*A2) - (B2*A1));
    x:= (-C1 - (B1*y)) / A1;
    if (min <= x) <= max then begin
        str1:=FloatToStr(x);
        str2:=FloatToStr(y);
        Memo1.lines.add(x + y);

    end
    else Memo1.lines.add('Точек пересечения нет');
else if ((B1*A2) - (B2*A1) and A2) then begin

    y:= (C2*A1 - C1*A2) / (B1*A2 - B2*A1)
    x:= (-C2 - B2*y) / A2
    if min<=x<=max then begin
        str1:=FloatToStr(x);
        str2:=FloatrToStr(y);
        Memo1.lines.add(x+y);

    end
    else Memo1.lines.add('Точек пересечения нет, параллельно');


end;





end.
  • Вопрос задан
  • 708 просмотров
Пригласить эксперта
Ответы на вопрос 1
HemulGM
@HemulGM
Delphi Developer, сис. админ
У тебя переменные целочисленные. Если делишь, тебе нужны числа с плавающей точкой: double/extended
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы