Я флеку пацану дал, а завтра информатика...домашку куда-то слить надо.
program XoM;
Uses Crt;
var i,j,k,X1,Y1,X2,Y2,LN1,WD1,LN2,WD2: integer;
ch: char;
Function Rec(x,y,ln,wd:integer):integer;
begin
GotoXY(x,y);
write(chr(201));
for i:=1 to ln-1 do begin
GotoXY(x,y+i);
Write(chr(186));
end;
GotoXY(x,y+ln);
write(chr(200));
for i:=1 to wd-1 do begin
GotoXY(x+i,y+ln);
Write(chr(205));
end;
write(chr(188));
GotoXY(x+wd,y-1);
for i:=1 to ln-1 do begin
gotoxy(x+wd,y+i);
write(chr(186));
end;
GotoXY(x+1,y);
for i:=1 to wd-1 do begin
gotoxy(x+i,y);
write(chr(205));
end;
write(chr(187));end;
Begin clrscr;
Writeln('X1 and Y1 ');
Readln(X1,Y1);
Writeln('Length and Width');
Readln(LN1,WD1);
Writeln('X2 and Y2 ');
Readln(X2,Y2);
Writeln('Length and Width');
Readln(LN2,WD2);
clrscr;
Rec(X1,Y1,LN1,WD1);
Rec(X2,Y2,LN2,WD2);
If (X2<X1) or (Y1>Y2) or (X2+WD2>X1+WD1) or (Y2+LN2>Y1+LN1) then begin
clrscr;writeln('Error! Edit param of Rectangle!');readln;halt;end;
Repeat
Begin
ch:=readkey;
Case ord(ch) of
97 : begin clrscr;Rec(X1,Y1,LN1,WD1); if X1=X2-1 then Rec(X2,Y2,LN2,WD2) else begin
X2:=X2-1;Rec(X2,Y2,LN2,WD2);end;end;
100 : begin clrscr;Rec(X1,Y1,LN1,WD1); if X1+WD1=X2+1+WD2 then Rec(X2,Y2,LN2,WD2) else begin
X2:=X2+1;Rec(X2,Y2,LN2,WD2);end;end;
119 : begin clrscr;Rec(X1,Y1,LN1,WD1); if Y1=Y2-1 then Rec(X2,Y2,LN2,WD2) else begin
Y2:=Y2-1;Rec(X2,Y2,LN2,WD2);end;end;
115 : begin clrscr;Rec(X1,Y1,LN1,WD1);if Y1+LN1=Y2+1+LN2 then Rec(X2,Y2,LN2,WD2) else begin
Y2:=Y2+1;Rec(X2,Y2,LN2,WD2);end;end;
End;
end;
Until ord(ch)=113
end.