Консультация № 108489
07.11.2007, 22:33
0.00 руб.
0 1 1
Здравствуйте. Пожалуйста, помогите с программой на Pascal. Требуется организовать окно и обеспечить свободное перемещение курсора в рамках окна. Спасибо за помощь!

Обсуждение

Неизвестный
13.11.2007, 11:10
общий
это ответ
Здравствуйте, Тимонов Алексей Алексеевич!
Вот так как в приложении второе задание пойдет?
Прикрепленный файл = дубль = исходник :))

Приложение:
uses GRAPH;const fi_min = 0; fi_max = 2*pi; n = 230; top = 20; right = 20; left = 50; bottom = 40; y_lim : real = 5;var gm, gd, er: Integer; i, x, y, tw: Integer; dfi, dy: Real; xr, yr: Real; Sx, Sy: Real; S: String;function Tg(x: Real): Real;var c: Real; sign: Integer;begin c:=cos(x); if abs(c) < 0.001 then if c<0 then c:=-0.001 else c:=0.001; tg := sin(x)/cend;procedure GetCRD(x, y: Real; var xc, yc: Integer);begin xc := left + Round(Sx * x); yc := GetMaxY div 2 + Round(Sy * y)end;BEGIN gD := Detect; InitGraph(gD, gM, ‘d:\bp\bgi‘); {Путь к файлу egavga.bgi} Er := GraphResult; if Er <> grOk then begin Writeln(‘Graphics error:‘, GraphErrorMsg(Er)); Halt(1) end; SetColor(darkgray); SetBkColor(Yellow); Sx:=GetMaxX; Sx:= (GetMaxX - right - left)/(2*pi); Sy:= (GetMaxY - top - bottom)/(2*y_lim); SetLineStyle(SolidLn, $FF, NormWidth); Line(left, GetMaxY div 2, GetMaxX-right, GetMaxY div 2); Line(left, GetMaxY-bottom, left, top); dfi:=2*pi/10; for i:=1 to n do begin GetCRD(i*dfi, 0, x, y); Line(x, GetMaxY div 2, x, GetMaxY div 2 - 4); Str(i*dfi:5:3,S); OutTextXY(x-20, GetMaxY div 2+2, S); end; dy := Round(y_lim *10) / 10 / 5; tw:=TextWidth(‘WWWWW‘); for i:=-10 to 10 do begin GetCRD(0, dy*i, x, y); Line(x, y, x+4, y); Str(dy*i:4:2, S); OutTextXY(x-tw, y-4, S); end; SetLineStyle(SolidLn, $FF, ThickWidth); GetCRD(0,0,x,y); MoveTo(x, y); SetColor(RED); dfi:=2*pi/(n-1); for i:= 1 to n do begin xr:= i*dfi; yr:=tg(xr); GetCRD(xr, yr, x, y); if abs(yr) > y_lim then MoveTo(x,y) else begin LineTo(x, y); Circle(x, y, 3) end; end; Readln; CloseGraph;END.
Форма ответа