139 Очищаємо екран
140 Звернення до процедури Ramkaз заданими параметрами
141-142 Задає коліри тексту та фону екрану
143 Задає координати курсору клавіатури
144 Виводить текст, який міститься в масиві стрічок MenuItem[MenuSelect]
145-146 Задає коліри тексту та фону екрану
147 Задає координати курсору клавіатури
148- цикл с постумовою. Вмістить в себе умову вибору, яка викконує процедуру - GoUp, якщо була натиснута клавіша клавіатури - ↑, або процедуру GoDown, - якщо була натиснута клавіша клавіатури -↓. Цикл завершується, тоді коли - 154 будуть натиснути клавіші Enterабо Esc.
155 Перевіряє, якщо була натиснута клавіша Esc, відбувається вихід з програми
156- Умова вибору. Перевіряє знащення змінної MenuSelect, та задає за цим
163 значенням складність гри.
164 Очищує екран
165 Закінчення процедури Menu
166 Заголовок процедури DrawSnake
167 Початок тіла процедури
168,180 Задає колір тексту
169,171,173,
175,177 Задає координати курсору клавіатури
170,172,174,
176,178 Виводить текст
179 Виводить символ змійки в початку стрічки
181-183 Цикл малює змійку
184 Задає колір тексту
185-186 Малює символи бонусу «@»
187 Задає колір тексту
188 Задає координати курсору клавіатури
189 Закінчення процедури DrawSnake
190 Заголовок процедури AddBonus
191 Опис мітки
192-193 Описує змінні процедури
194 Початок тіла процедури
195 Мітка
196 Задає змінній нульове значення
197-198 Задає координати бонусу
199-204 Цикли, перевіряють, щоб бонуси були розміщенні не на самій змійці
205 Задає колір тексту
206 Задає координати курсору клавіатури
207 Закінчення процедури AddBonus
208 Заголовок процедури Kill
209-210 Опис змінних процедури
211 Опис мітки
212 Початок тіла процедури
213-218 Присвоєння масиву символів значення
219 Задає колір тексту
220-223 Цикл, малює мертву змійку
224 Мітка
225 Очищує екран
226,237 Задає колір тексту
227,229,231,
233,235,238,
240,242,244,
246,248 Задає координати курсору клавіатури
228, 230,232,
234,236,239,
241,243,245,
247 Виводить на екран текст
249 Чекає на натиснуту клавішу клавіатури
250 Умова вибору, якщо натиснута клавіша ‘Y’, то продовжуємо гру, якщо була - натиснута клавіша ‘N’, то програма запросить ввести ім’я і запишить - --- 254 результати у файл Result.dat
255 Задає колір тексту
256 Задає координати курсору клавіатури
257 Закінчення процедури Kill
258 Заголовок процедури Move
259 Початок тіла процедури
260 Малює символ пробілу
261-270 Умова вибору. Визначає направлення змійки за натиснутою клавішею
271- Умови.Якщо змійка виповзає за межі екрану, переводится на початок
274 стрічки.
275- Цикл перевірки, чи «вкусила» змійка себе за хвіст,якщо так, виконується 278 процедра Kill
279- Цикл перевірки, чи «з’їла» змійка бонус, якщо так, то змійка збільшується в 287 довжині на одиницю, та збільшуються очки
288-294 Цикл. Щоб змійка не «розірвала» свій хвіст.
295 Виконується процедура DrawSnake
296 Задає колір тексту
297 Задає координати курсору клавіатури
298 Закінчення процедури Move
299 Початок тіла основної програми
300 Зв’язує файлову змінну з файлом на диску
301 Задає режим відображення тексту на екрані
302 Ініціює фунцію случайних чисел
303 Очищує екран
304 Цикл. Виводить бонуси на екран перед початком гри
305-310 Задає масиву стрічок значення.
311 Задає початкове значення змінній MenuSelect
312 Очищує екран
313 Виконується процедураMenu
314-318 Цикл, задає початкові координати змійки,щоб вона не «розбіглася»
319 Мітка
320- Цикл з передумовою, перевіряє, яка клавіша була натиснута,та задає
328 напрямок змійки
329,333 Задається колір тексту
330,334 Задаються координати курсору клавіатури
331 Затримка DTime-секунд
332 Виконується процедура Move
335 Закінчення циклу 320
336 Виконується процедура Kill
337 Перехід на мітку
338 Закриття файлу
339 Закінчення основної програм
Лістінг програми представлений в додатку 2, блок—схему головного блоку програми наведено в додатку 1.
2.3Контрольний приклад
та аналіз результатів машинного експерименту.
Для створення довільних виробів використовують відповідні технології. При цьому у поняття технології включаються сукупність виробничих процесів , методів та засобів , які призначені для створення певних видів виробів із зазначеними показниками якості. Одним з найбільш складних і трудомістких етапів технологічного процесу розробки програм є їх відладка. На відладку припадає близько 50% трудомісткості загальних витрат на створення складних комплексів програм. Під відладкою слід розуміти процес , який забезпечує можливість отримання програми, яка буде функціонувати з потрібними характеристиками у заданій області вхідних даних.
Процес відладки включає:
- створення сукупності тестових еталонних значень , яким програма повинна відповідати;
- тестування програми з виконанням об’єктного коду і з різними рівнями деталізації: детерміноване , стохастичне та тестування в реальномумасштабі часу;
- розробка модифікації програми з метою включення причин відхилення результатів від еталонних.
Основним методом виявлення помилок при відладці програм є їх тестування. При цьому затрати на тестування для виявлення помилок складають 30%-40% загальних затрат на розробку програм і у значній мірі визначають якість створеного програмного продукту. Ефективність тестування є важливим фактором, який визначає вартість та тривалість розробки складних комплексів програм.
Основною метою тестування для виявлення помилок є виявлення всіх відхилень результатів функціонування програми від еталонних значень. При цьому ставиться задача виявлення максимального числа помилок , які приводять до виникнення помилок. Після цього застосовується тестування для діагностики та локалізації виявлених помилок. На цій стадії найважливішим є точне встановлення місця спотворення програми або даних , яке є причиною відхилення результатів від еталонних даних при тестуванні з метою виявлення помилок. На цьому етапі визначається частина програми , яку слід коректувати (модифікувати). Еефективним є тести , які дозволяють швидко і точно локалізувати помилки.
Після локалізації і усунення виявлених помилок застосовується контрольне тестування. Контрольний приклад для перевірки правильності розробленої програми виконано вручну. Для перевірки роботи програми в нормальних умовах перевіряємо гру на іграбельність-.
МЕНЮ гри Змійка
Процес гри
Після «смерті» змійки
Введення ім’я для запису результату у файл RESULT.DAT
Перегляд раніше записаних результатів
Розроблена програма-гра дає можливість добре відпочити після тривалого робочого дня.
Висновки.
Розв’язування задач обчислювального характеру з використанням персональних комп’ютерів має велике практичне значення, оскільки дає можливість значно економити час при виконанні простих , але громістких обчислень. Використання з цією метою готових пакетів прикладних програм для виконання математичних обчислень має певні вади. Ліцензовані пакети прикладних програм мають високу вартість і достатньо високу складність експлуатації. Тому їх використання для розв’язування нескладних задач (а саме такою є сортування масиву) є недоцільним. Надзвичайно важливо вміти самостійно складати прості програми для розв’язування задач обчислювального характеру.
В даному курсовому проекті розроблено і описано програму-гру «Змійка». Для розробки програми вибрано мову Паскаль (середовище BorlandPascal) . Програма розроблена із застосуванням методики процедурного проектування.
Програма відкомпільована з отриманням ехе-файла та відладжена.
Вибір алгоритмічної мови Паскаль для реалізації постановленої задачі повністю виправдав себе.
Список використаної літератури:
1. Т.В. Ковалюк, видавнича група «BHV», 2005- «ОСНОВИ ПРОГРАММУВАННЯ».
ДОДАТКИ
Додаток 2.
Лістинг програми.
001}Program ZMEjKA;
002}uses CRT;
003}label 1;
004}type result=record
005} scor:integer;
006} name:string[15];
007} len:integer;
008} end;
009} res=file of result;
010}
Var
011} f: res;
012}SnakeX,SnakeY: array[1..4000] of longint;
013}HeadX,HeadY: longint;
014}BonusX,BonusY: array[1..40] of longint;
015}DeathX,DeathY: array[1..30] of longint;
016}Dlina,Naprav: longint;
017}key: char;
018}i,score: integer;
019}MenuItem: array[1..6] of string;
020}DTime,ScorePlus,ScoreMinus,MenuSelect,x,y: integer;
{-----------------------------------------------------}
021}Procedure Ramka(x,y:integer);
022}Begin
023}TextColor(2);
024} TextBackground(0);
025}gotoxy(x,y);
026} writeln('╔═ ЗМЕЙКА 0.1 ══════╗');
027} gotoxy(x,y+1);
028} writeln('║ VERY SLOW ║');
029} gotoxy(x,y+2);
030 } writeln('║ SLOW ║');
031 } gotoxy(x,y+3);
032 } writeln('║ MEDIUM ║');
033 } gotoxy(x,y+4);
034 } writeln('║ HIGH ║');
035 } gotoxy(x,y+5);
036 } writeln('║ VERY HIGH ║');
037 } gotoxy(x,y+6);
038 }writeln('║ RESULT ║');
039 }gotoxy(x,y+7);
040 }writeln('╚═══════════════════╝');
041 }gotoxy(x,y+8);
042 }textcolor(14);
043 }writeln(' Виберiть рiвень ');
044 }textcolor(0);
045 }gotoxy(1,1);
046 }End;
{------------------------------------------------------}
047 } Procedure Symbol(x,y:integer; sym:char);
048 } Begin