|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
09.05.2008, 18:12 | #1 |
Новичок
Джуниор
Регистрация: 09.05.2008
Сообщений: 1
|
Задача на Ломанную Линию
Нужна ваше помощь. Цель программы нацелена на рисование ломанных линий. Т.е. пользователь под управление стрелок влево, вправо, вверх и вниз просто напросто рисует ломанные линии. При нажатие клавиши "Enter" линия фиксируется, т.е. создается так называемая точка перегиба. И дальше пользователь продолжает с этого места рисовать в любом направление след линию.
Просьба посмотреть где мои ошибки, ибо уже не знаю в чем дело! Вот сам скрипт: Program Litvinov_Kursovaja; Uses crt,graph; Const w:array[1..3] of string[99]=('O programme','Narisovat'' grafik','Vuhod'); len=20; g=len div 5; Var bac,a,b,c:word; PT:char; booster:boolean; gm,gd:integer; ct:string; i,angle,old_angle:word; d,r,n:integer; function K(i:word):byte; begin if Odd(i) then K:=i mod 4 else K:=K(i div 2) end; {-----------------------------------------------------------------------} { Risyet na ekrane menu } {-----------------------------------------------------------------------} Procedure Menu(c:word); Begin ClrScr; for bac:=1 to 3 do begin if bac=c then TextColor (20) else TextColor (3); GoToXY(28,10+bac); writeln (w[bac]); end; end; {-----------------------------------------------------------------------} { Pynkt 'O programme' } {-----------------------------------------------------------------------} Procedure about_programm; Begin ClrScr; TextColor (2); GoToXY (35,3); writeln ('O PROGRAMME'); GoToXY(25,11); TextColor (3); writeln ('Vipolnil:'); GoToXY(40,11); TextColor (5); writeln ('Litvinov M.S.'); GoToXY (25,12); TextColor (3); writeln ('Gruppa:'); GoToXY (40,12); TextColor (4); writeln ('C-17051'); GoToXY (25,13); TextColor (3); writeln ('Prepodavatel'':'); GoToXY (40,13); TextColor (6); writeln ('Slyzhenikina N.V.'); GoToXY (10,20); TextColor (20); writeln ('Zadanie:'); GoToXY (20,20); TextColor (10); writeln ('Programma dolzha narisovat'' lomannyu liniu'); GoToXY (20,21); TextColor (10); writeln ('pod ypravleniem kyrsora'); readln; End; {-------------------------------------------------------------------------} { Peredvizhenie linii po strelkam } {-------------------------------------------------------------------------} Procedure Strelki; Begin case angle of 0: begin if old_angle=90 then LINEREL(-g,-g) else LINEREL(g,-g); LINEREL(0,-(len-2*g)) end; 180: begin if old_angle=90 then LINEREL(-g,g) else LINEREL(g,g); LINEREL(0,len-2*g); end; 90: begin if old_angle=0 then LINEREL(-g,-g) else LINEREL(-g,g); LINEREL (-(len-2*g),0) end; 270: begin if old_angle=0 then LINEREL(g,-g) else LINEREL(g,g); LINEREL (len-2*g,0) end; end; End; {--------------------------------------------------------------------------} { Narisovat' Grafik } {--------------------------------------------------------------------------} Procedure grafik; Begin gd:=detect; InitGraph(gd,gm,ct); ClearDevice; MoveTo(190+a,276); angle:=270; LINEREL(len-g,0); old_angle:=270; n:=418; for i:=1 to n-1 do begin angle:=(angle+K(i)*90) mod 360; DELAY(2000); Strelki(angle,old_angle); end; repeat until keypressed; CloseGraph; End; {--------------------------------------------------------------------------} { Kod programmu } {--------------------------------------------------------------------------} Begin ClrScr; booster := False; b:=1; c:=1; menu (c); repeat PT:=readkey; {a:=ord(PT);} if PT=chr(0) then begin PT:=readkey; a:=ord (PT); Case PT of chr(72): if c=1 then c:=3 else c:=c-1; chr(80): if c=3 then c:=1 else c:=c+1; else begin GoToXY (10,25); TextColor (12); writeln ('Ne ta klavisha'); readln; end; end; end else begin case PT of chr(27): b:=0; chr(13): case c of 1: about_programm; 2: grafik; else b:=0; end; else begin GoToXY (25,8); TextColor (12); writeln ('Nazhata ne ta klavisha !!!'); readln; end; end; end; menu(c); until b=0; end. |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Как же нарисовать линию на форме? (Вопрос новичка) | grey | Помощь студентам | 11 | 24.11.2008 10:31 |
Нарисовать на координатной площади линию a*x+b*y+c=0 | НУБ!!! | Общие вопросы Delphi | 4 | 13.05.2008 22:48 |
Нарисовать линию под указанным градусом | nikleb | Паскаль, Turbo Pascal, PascalABC.NET | 7 | 06.02.2008 15:22 |
Задача по ТП. | GE076 | Помощь студентам | 11 | 07.12.2007 19:29 |
Как в excel создать "винтовую линию"? | W@LER | Microsoft Office Excel | 1 | 23.03.2007 20:04 |