Зміст p>
Опис програми 4 p>
2.1 Загальні відомості 5
2.2 Використані технічні Засоби 7
2.3 Інструкції з виконання 8
2.4 Вхідні та вихідні дані 9
2.5 Випробування програми 9 p>
Висновок 9 p>
Список літератури 11 p>
ДОДАТОК 1 (ТЕКСТ ПРОГРАМИ )........... 12 p>
Введення p>
Мова Turbo-Pascal - один з найпоширеніших мов програмування комп'ютерів. До важливих переваг мови Turbo-Pascal ставиться невеликий розмір компілятора, висока швидкість трансляції програм, компіляції та їх компонування. Крім того, зручність та високу якість дизайну діалогової оболонки, роблять написання та налагодження програм найбільш зручним у порівнянні з альтернативними мовами нового покоління. P>
Дана дипломна робота представляє розробку програмного продукту з використанням системного мови нового рівня - Turbo-Pascal . Ця програма дозволяє будь-якому користувачеві (з будь-яким рівнем комп'ютерної грамотності) робити необхідні розрахунки з високою швидкістю і достатнім рівнем сервісу. P>
1 Постановка завдання p>
Темою даного курсового проекту, який був виконаний у ході вивчення курсу "Основи програмування та алгоритмічні мови", - розробка програми для роботи в графічному режимі з правильним трикутником, використовуючи елементи перерахунку координат його вершин при обертанні трикутника навколо описаної біля нього кола. p>
Умова задачі: p >
Дан рівносторонній трикутник. Потрібно обертати його в площині екрана навколо центру описаної навколо нього кола. P>
2 Розробка алгоритму p>
Алгоритм роботи програми має розгалужену структуру. P>
Програма складається з трьох основних частин : p>
1. Опис змінних використовуються при вирішенні поставленої задачі. P>
2. Опис процедур за допомогою яких була реалізована ця програма. P>
3. Тіло головної програми, що є найважливішою складовою частиною рішення поставленого завдання. P>
Процедурна частина програми складається з набору процедур призначених для більш оптимальної реалізації розробленого методу розв'язання задачі. P>
У програмі використовуються стандартні модулі мови Turbo -Pascal з набором процедур, необхідних для виконання роботи. p>
При складанні процедур були використані класичні методи прорахунку координат вершин трикутника, виведення результату на екран. p>
У програму також були включені функції надають користувачевідеякий сервіс і зручність при роботі (використання модулів Turbo-Vision
2.0 for Borland Pascal). P>
Опис програми p>
1 Загальні відомості p>
Дана програма призначена длявізуального відображення обертового трикутника в площині екрана. p>
Вимоги до Turbo-Pascal:
Наявність модулів Crt, Graph, System, Drivers. Модуль System єавтоматично підключається і зберігає всі процедури і функції стандартного
Паскаля, а також вбудовані процедури і функції Турбо Паскаля, модуль Crtмістить процедури та функції, що забезпечують керування текстовим режимомроботи екрану. За допомогою що входять в модуль підпрограм можна переміщатикурсор в довільну позицію екрану, міняти колір символів, що виводяться інавколишнього фону, створювати та видаляти вікна. Крім того, у модулімістяться процедури управління звуком і процедури роботи з клавіатурою.
Сервіс при роботі в графічному режимі надано в модулі Graph
(промальовування ліній, відображення тексту в графічному режимі, установкапотрібного відеорежиму та шрифту, зміна атрибутів ліній і тексту). Модуль
Drivers (точніше об'єкт TEvent) використовувався з метою спрощення обробкиподій, що надійшли з клавіатури. p>
Вимоги до системи: p>
Наявність операційної системи MS-DOS версії 3.xx і вище або OS/2
Warp 3.0 & FullScreen DOS. Програма не вимагає ні високій швидкостіпроцесора, ні великого обсягу оперативної пам'яті і місця на диску, нінаявності маніпулятора типу Mouse. У комплекті з виконуваний файл знаходитьсяфайл з шрифтом TRIP.CHR, необхідний для коректної роботи програми. p>
2 Використані технічні засоби p>
При налагодженні програми був використаний комп'ютер типу IBM Pentium 120
Triton & PipeLine Cashe 256/16Mb RAM, до складу якої входить:монітор 17''с адаптером SVGA S3TRIO Trio64 764;клавіатура 105 клавіш;
FDD і;
HDD Cuantum FireBall 1.08Gb; p>
3 Інструкція з виконання p>
Для виклику програми необхідно переконатися, що файли CURSPROJ.EXE і
TRIP.CHR знаходяться в одній директорії. Після перевірки необхідно запуститифайл CURSPROJ.EXE або в середовищі Паскаля откомполіровать файл CURSPROJ.PAS (вкоплекте додається файл EGAVGA.OBJ, необхідний для лінковкі в основнупрограму файлу EGAVGA.BGI).
Інтерфейс програми представлений на англійській мові через тимчасовоговідсутність додаткових російських шрифтів. p>
Можливі дії в процесі виконання програми: p>
- зупинити/продовжити обертання трикутника. p>
- змінити напрямок обертання. p> < p> - c допомогою клавіш вгору/вниз можна змінювати швидкість обертаннятрикутника. p>
- вихід з програми. p>
Програма CURSPROJ.PAS має розмір 3772 байт або 120 рядків. p>
виконуваний файл CURSPROJ.EXE має розмір 24348 байт. p>
4 Вхідні та вихідні дані p>
Вхідними даними для даної програми є двовимірний масив,що містить координати вершин рівностороннього трикутника. p>
Вихідні дані: Візуальне відображення обертання трикутника іпоточних координат кожної з вершин. p>
5 Випробування програми p>
Програма була випробувана для всіх варіантів вводу-виводу і різнихтипів відеоадаптерів, що виключає виникнення фатальних збоїв прироботі програми. p>
Висновок p>
Дана курсова робота являє собою програмний продукт, призначений для роботи в графічному режимі. Програмний продукт написаний сучасною мовою Turbo-Pascal, який дозволив найбільш просто уявити цю роботу. P>
У ході виконання курсового проекту я ознайомився з новими прийомами програмування і особливостями мови Turbo-Pascal що дозволило розробити даний програмний продукт.
Список літератури
| 1 | Епанешніков А.М., Епанешніков В.А., Програмування в середовищі TURBO |
| | PASCAL 7.0.-Москва: "Діалог-МИФИ", 1995 |
| 2 | Зуєв Е.А., Система програмування Turbo Pascal.-Москва: СП |
| | "Діалог", 1992 |
| 3. | Довгаль С.І., Сбінтев А.І., персонал ЕОМ: TURBO PASCAL V7.0, |
| | Обектное программірованіе.-Київ: "Двгаль", 1995 | p>
Додаток 1 p>
Program CursProj;
Uses graph, crt, Drivers;const
Ctr: Array [1 .. 2, 1 .. 3] of Integer = ((-77,0, 77), p>
(-50,91, -50));
Var x_c, y_c: Integer; p>
Time2W: Byte; p>
Event: TEvent; grDriver: Integer; grMode: Integer; p>
ErrCode: Integer; xn, yn, a: Integer; p>
Angle: Real; p>
K: ShortInt; p>
Procedure VgaDrv; external;
($ L EGAVGA.OBJ) p>
procedure SetCenter (x_nc, y_nc: integer); begin x_c: = x_nc; y_c: = y_nc; end; p>
Function Str2 (Num: Integer ): String;
Type S = String; var P: ^ S;
Begin
New (P); Str (Num, P ^); Str2: = P ^; Dispose (P);
End; p>
procedure draw (color: integer); begin p>
SetColor (Color); p>
Line (x_c + ctr [1] [1], y_c + ctr [2] [1], x_c + ctr [1] [2], y_c + ctr [2] [2 ]); p>
Line (x_c + ctr [1] [2], y_c + ctr [2] [2], x_c + ctr [1] [3], y_c + ctr [2] [3 ]); p>
Line (x_c + ctr [1] [3], y_c + ctr [2] [3], x_c + ctr [1] [1], y_c + ctr [2] [1]); end; p>
procedure DrawText (XX, YY: Integer; Text: String);
Begin
SetColor (Black);
OutTextXY (XX, YY ,'(((');< br> SetColor (White);
OutTextXY (XX, YY, Text) ;
End; p>
procedure ShowD;
Begin p>
GetKeyEvent (Event);
If Event.What = evKeyDown Then p>
Case Event.KeyCode of kbUp: Begin if Time2W> 2 Then Time2W: = Time2W - 1; p>
SetColor (Black); p>
OutTextXY (85,10,'((((((((( (((('); p>
SetColor (White); p>
OutTextXY (90,10, Str2 (100-Time2W )); p>
End; kbDown : Begin if Time2W <100 Then Time2W: = Time2W + 1; p>
SetColor (Black); p>
OutTextXY (85,10 ,'(((((((((( ('); p>
SetColor (White); p>
OutTextXY (90,10, Str2 (102-Time2W )); p>
End; kbEnter: Begin
SetColor (LightRed); p>
OutTextXY (1,30, 'Freeze'); p>
ReadKey; p>
SetColor (Black); p>
OutTextXY (1,30,'((((((((((((('); p>
End; kbTab: Begin p>
K : =-K; p>
End; p>
End; p>
Angle: = 0.1; p>
Draw (White); p >
Delay (Time2W); p>
Draw (Black); for A: = 1 to 3 do begin p>
Xn: = Round (ctr [1] [a] * cos (Angle) + K * ctr [2] [a] * sin (Angle )); p>
Yn: = Round (-K * ctr [1] [a] * sin (Angle) + ctr [2] [a] * cos (Angle )); p>
Ctr [1] [a]: = Xn; Ctr [2] [a]: = Yn; end; p>
Draw (White); p>
DrawText (105,60, Str2 (x_c + ctr [1] [1 ])); p>
DrawText (105,75, Str2 (x_c + ctr [2] [1 ])); p>
DrawText (105,90, Str2 (x_c + ctr [1] [2 ])); p>
DrawText (155,60, Str2 (x_c + ctr [2] [2 ])); p>
DrawText (155,75, Str2 (x_c + ctr [1] [3 ])); p>
DrawText ( 155,90, Str2 (x_c + ctr [2] [3])); end; p>
begin
RegisterBgiDriver (@ vgaDrv);
K: =- 1;
Time2W : = 15;
SetCenter (320,240);
Angle: = 0.1; grDriver: = Detect; grMode: = VGAHi; (video mode VGA 640x480x16colors)
InitGraph (grDriver, grMode ,'');< br> ErrCode: = GraphResult; if ErrCode = grOk then begin
OutTextXY (1,10, 'Speed:' + Str2 (100-Time2W));
OutTextXY (10,60, 'Corn. 1 X Y ');
OutTextXY (10,75,' Corn. 2 X Y ');
OutTextXY (10,90,' Corn. 3 X Y ');
SetTextStyle (TriplexFont, HorizDir, 2) ;
OutTextXY (10,425 ,'((((((((((((((((((((((((((((((((((((((((( ((((((((((((((((< br>(((((((((((((((((((((');< br> OutTextXY (10,415 ,'(((((((((((((((((( (((((((((((((((((((((((((((((((((((((((< br>(((((((((((((((((((((');< br> SetColor (Black);
OutTextXY (10,420, '-Exit-Freeze' + p>
'-Speed-Direction');
SetColor (LightRed);
OutTextXY (10,420, 'ESC Enter Up/Down TAB
');
SetTextStyle (DefaultFont, HorizDir, 1); p>
Repeat ShowD Until Event.KeyCode = kbEsc;
CloseGraph; end else Writeln (' Graphics error: ', GraphErrorMsg (ErrCode) );end. p>