Термінова допомога студентам
Дипломи, курсові, реферати, контрольні...

Паскаль. 
Налагодження програм

РефератДопомога в написанніДізнатися вартістьмоєї роботи

Case і of — зарезервовані слова, що є відмітним ознакою оператора множинного розгалуження. Селектор — це змінна чи вираз порядкового типу. Залежно від значення даного висловлювання чи перемінної відбувається галуження програми. Після заголовка оператора йде перерахування різних альтернатив, якими може виконуватися програма. Альтернативи відокремлюються друг від друга точкою з коми. Альтернатива… Читати ще >

Паскаль. Налагодження програм (реферат, курсова, диплом, контрольна)

ТурбоПаскаль7.0. Логічні оператори і оператори циклу. Налагодження програм.

Укороченная форма оператора if.

В операторі if частина, начинающаяся словом else, може відсутні. Частина, наступна по слову then, виконується, якщо логічне умова, що стоїть після слова if, має значення true. Якщо це логічне вираз має значення false, безпосередньо виконується оператор, наступний за if.

Наша програма то, можливо переписана із застосуванням вкороченій форми оператора if. Алгоритм зводиться до послідовності перевірок влучення перемінної Аді у різні діапазони значень. Наведемо змінений текст програми:

Program Dialog; {розширений діалог — другого варіанта) const.

Question = «What is your name? » ;

Rep (y1 = «Паскаль — простий, але хто першим компілятор Паскаля було написано на Паскале » ;

Reply21 = «Вас чекає дивовижне подорож » ;

Reply22 = «крізь джунглі особливостей і можливостей мови » ;

Reply3 = «Паскаль — розумний компроміс між бажаним і ефективнішим » ;

Reply4 = «Паскаль академічно елегантний » ;

var.

Name: string;

Age: byte;

begin.

WriteLn (Question); ReadLn (Name); {Введення імені} WriteLn («Hello, «, Name, «! »); {Висновок вітання} WriteLn («How old are you? »); {Питання віці} ReadLn (Age); {Введення віку} if 12 if (12: < оператор 1>;

< альтернатива 2>:< оператор 2 >;

< альтернатива N >: < оператор N > else < оператор частини Else> end;

Case і of — зарезервовані слова, що є відмітним ознакою оператора множинного розгалуження. Селектор — це змінна чи вираз порядкового типу. Залежно від значення даного висловлювання чи перемінної відбувається галуження програми. Після заголовка оператора йде перерахування різних альтернатив, якими може виконуватися програма. Альтернативи відокремлюються друг від друга точкою з коми. Альтернатива складається з мітки, двокрапки і виконуваного оператора даної альтернативи. Використовувана в операторі case мітка може складатися з констант і діапазонів. Діапазони значень в Паскале — це два крайніх значення, написані через двокрапка. Така запис еквівалентна переліченню всіх цілих чисел у цьому діапазоні. У випадку мітка може складатися зі різних констант і діапазонів, розділених комами, наприклад, припустима така мітка: 4, 8.10, 12, 14. 16. Як селектора не можна використовувати логічні результати порівняння чисел (умови), тому використані в операторах if нерівності тут неприйнятні.

Часть оператора case, що складається з слова else й останнього альтернативного варіанта, є необов’язковою, вона виконується у разі, якщо розрахована у програмі селектор відповідає жодній із перелічених вище альтернатив. Якщо це частина оператора case відсутня, а селектор не підходить ні під жодну з альтернатив, то оператор case не виконає ніяких дій. Завершується оператор case обов’язковим словом end;

Пример. З використанням оператора case нашу програму набуває такий вигляд.

Program Dialog;

const.

Question = «What is your name? » ;

Replyl =.

" Паскаль — простий, але хто першим компілятор Паскаля було написано на Паскале " ;

Reply21 = «Вас чекає дивовижне подорож » ;

Reply22 = «крізь джунглі особливостей і можливостей мови » ;

ReplyS =.

" Паскаль — розумний компроміс між бажаним і ефективнішим " ;

Reply4 = «Паскаль академічно елегантний » ;

var.

Name: string;

Age: byte;

begin.

WriteLn (Question); ReadLn (Name);

WriteLn («Hello, «, Name, «! »);

WriteLn («Howold are you? »); ReadLn (Age);

case Age of.

0.11 :WriteLn (Reply1);

12.19: begin WriteLn (Reply21); WriteLn (Reply22) end;

20.39: WriteLn (Reply3);

40.150:WriteLn (Reply4).

else WriteLn («Bbi помилилися при введення »).

end.

end.

Переменная Age ж виконує функцію селектора. Залежно від значення даної перемінної відбувається подальше галуження програми. У прикладі як альтернатив застосовуються діапазони значень, оскільки не можна використати результати порівняння чисел, як і попередньої програмі. Вихідні нерівності замінені діапазонами. Наприклад, перевірка логічного умови Age < 12 замінена перевіркою приналежності діапазону 0.11.

В висновок підкреслимо, що оператор case має суттєві відмінності між оператора if. Використовувані для вибору альтернатив мітки мали бути зацікавленими кількісно визначено на початок обчислень, у них можна застосовувати лише константи, наведені безпосередньо чи достойні розділі описів. З іншого боку, оператор обмежений порядковими типами даних, що використовуються вибору альтернатив.

If Ready then Exam_ok := true;

Идеальная логіка еквівалентності:

If Ready then Exam_ok := true else Exam_ok := false;

Управление обчислювальним процесом, цикл for.

В математичних завданнях часто зустрічається необхідність кількаразового повторення однакових дій. Розглянемо, наприклад, обчислення суми N членів гармонійного низки.

Естественный алгоритм на вирішення такого завдання:

(1) позначимо потрібну суму P. S і дамо їй значення, однакову нулю;

(2) послідовно N раз обчислимо складові деяких обласних і додамо їх до перемінної P.S.

Многократные повторення одним і тієї ж дій можна виконати з допомогою конструкцій, які у програмуванні називаються циклами. Повторювані дії називаються тілом циклу. У Паскале є кілька операторів циклу. Оператор for повторює тіло циклу заданий число раз. Вона має такі синтаксичні форми:

for < лічильник циклу> := < перше значення> to < останнє значення> do.

;

for < лічильник циклу> := < перше значення>

downto < останнє значення> do ;

Счетчик циклу — це змінна однієї з порядкових типів (з порядкових типів ми що знаємо лише цілі і логічний тип, у розділі 7 поняття порядкового типу буде розширене). Призначення цієї перемінної очевидне — вона зберігає число повторень операторів тіла циклу, наступного по слову do. Значення лічильника циклу змінюється автоматично від першого аж до останнього значення й поповнюється одиницю перша форми записи (з оператором to) чи зменшується на одиницю для другий форми записи (з оператором downto). Додаткові зміни значення лічильника циклу у частині, визначеної тут як, заборонені. Як першого заступника й останнього значення можна використовувати конкретні числа, інші перемінні цілого типу, обчислені раніше, і висловлення, мають значення цілого типу.

Операторы тіла циклу виконуються лише одне раз, якщо верхнє і нижнє значення лічильника збігаються. Якщо операторі for. to останнє значення лічильника циклу менше першого, то тіло циклу не виконується жодного разу. У операторі for. downto цикл не виконується, якщо останнє значення лічильника більше першого.

Программа з циклом for, яка обчислює суму N членів гармонійного ряда1:

Program Sum; {сума N членів гармонійного низки}.

var x: byte; {лічильник циклу}.

p.s: real; {сума низки}.

N: byte; {членів низки}.

begin.

Write («N = «); ReadLn (N); {введення числа членів низки}.

s := 0; {початкова значення суми}.

тогх:= 1 toNdos:=s+ 1/х; {підрахунок суми}.

WriteLn («P.S = «, p. s); {висновок результату}.

ReadLn {очікування натискання клавіші Enter}.

end.

Оператор, наступний після слова do, то, можливо складовим (являти собою групу операторів).

Пример. Знайти непарні і кратні трьом вересня діапазоні від 30 до 60 включно. Роздрукувати в порядку спаду.

Условие непарності цілого числа — Odd (J). Умова кратності трьом — рівність нулю залишку від розподілу і mod 3=0. Нас цікавлять числа, задовольняють обом умовам, тобто числа, котрим істинно Odd (i) and (і mod 3 = 0). Регресний порядок прямування чисел забезпечує оператор for. downto. Отже, програма матиме вид.

Program Sample;

var і: byte;

begin.

for і := 60 downto 30 do {цикл у напрямку убування від 60 до 30}.

if Odd (i) and (і mod 3=0) then WriteLn (i) end.

В результаті виконанні програми одержимо в стовпчик значення 57, 51,45,39, 33.

В наведеному прикладі багаторазово повторювався один оператор, проте у часто необхідно повторювати групу операторів. Пригадаємо, що йшлося у попередній главі про вкладеності операторів один одного. Щоб використовувати замість одного оператора групу, потрібно цю групу перетворити на одне складне оператор. Здійснюється це з допомогою про «програмних скобок» — операторів begin і end.

begin.

;

< оператор 2>;

< оператор М> end;

Любая група операторів, начинающаяся зі слова begin і кончающаяся словом end у будь-якій конструкції мови Паскаль придатна як одне складне оператор. Складний оператор, своєю чергою, може мати у собі складні оператори наступного рівня вкладеності тощо. Оператори begin і end подібні який відкриває і що закриває скобкам, і їх вживання накладаються самі обмеження, що й звичайні дужки в арифметичних висловлюваннях: кожної «що відкриває скобці» begin має відповідати «яка закриває дужка» end. Слово end неспроможна передувати парному йому слову begin. При компіляції програми перевіряється правильність розстановки скобок та дається повідомлення про помилку. Це який завжди потрапляє у те місце, де справді потрібна дужка, тому поспішайте вставляти оператори туди, куди пропонує компілятор, а старанно проаналізуйте вашу програму.

Пример. Є логічне вираз not a and b xor з. Потрібна вивести на печатку значення логічних змінних а, Т, з, у яких цей вислів істинно. Ми перебір всіх можливих значень а, b, з з перевіркою виконання умови кожному за поєднання значень.

Program Sample;

Vara, b, з: boolean;

begin.

for a := false to true do.

for b := false to true do.

for з := false to true do.

if not a and b xor з then.

begin.

Write («a= «, a);

Write («b= «, b);

WriteLn («з= «, з).

End.

End.

В результаті виконання програмних засобів на екран буде виведено:

a =FALSE.

b =FALSE.

с =TRUE.

a =FALSE.

b =TRUE.

с =FALSE.

a =TRUE.

b =FALSE.

c =TRUE.

a =TRUE.

b =TRUE.

с =TRUE.

Программа складається з одного складного оператора for a := false to true do, куди вкладено послідовно решта 2 оператора for і оператор if. Частина then останнього містить складний оператор, трійка простих операторів, охоплених програмними дужками begin і end.

Циклы з логічними умовами.

Введенный у попередній главі оператор циклу for забезпечує виконання циклу заданий кількість раз, проте часто циклічні дії закінчуються за умовою, тобто виконуються до певного результату. У Паскале є дві таких оператора циклу, відмінні тим, що у одному їх умова перевіряється на початку циклу (while…do), а іншому — наприкінці циклу (repeat…until).

Оператор while. do.

Оператор циклу while (поки, тоді як) має вигляд:

While do ;

Цикл While забезпечує виконання тіла циклу, наступного по слову do до того часу, поки умова має значення true (істина). Як тіла циклу можна використовувати простий чи складний оператор. Умова перевіряється до початку кожного виконання тіла циклу, тому, якщо першого виконання циклу умова має значення false (брехня), оператор — не виконується жодного разу (рис. 5.2).

Пример. Необхідно перетворити значення кута в градусах до стандартному діапазону ±180° шляхом винятку повних оборотів окружності ±360°. Цю процедуру можуть виконати з допомогою оператора циклу.

While abs (Angle) > 180 do.

if Angle > 0 then Angle := Angle — 360.

else Angle := Angle + 360;

Оператор while на початку циклу перевіряє, перевищує чи кут з абсолютного значенням 180 градусів. Якщо це справедливо, тіло циклу не виконується. Якщо кут більше припустимого, починається виконання циклу.

Цикл складається з оператора if. Припустимо, кут дорівнює —700. Тоді умова Angle > 0 в операторі if має значення false, у своїй виконується частина else оператора if, і кут отримає значення —340. Знову відбувається перевірка умови виконання циклу, та циклу виконується вдруге, після чого кут дорівнює 20. При третьої перевірці умови виконання циклу він закінчується, оскільки умова його виконання Abs (20)>180 прийняло значення false.

Оператор repeat… until…

Оператор циклу repeat… until… (повторювати до того часу, поки) має вигляд Repeat until -;

Принципиальное відмінність оператора repeat… until від оператора while… do у цьому, що перевірку умови виробляється перед початком виконання оператора, а його кінці, коли вирішується питання, повторити ще раз дії. Тому тіло цього циклу завжди виконується по крайнього заходу одного разу (рис. 5.3). Це істотна різниця: наведений для циклу while… do приклад реалізувати з оператором циклу repeat… until вимагає додаткових перевірок і ускладнень.

Второе на відміну від оператора while… do — з логіки завершення циклу. Цикл оператора repeat… until виконується до того часу, доки стане справжнім логічне вираз, таке по слову until. Отже, використання логічного висловлювання має тут протилежний оператору while… do сенс. Тут за істинності логічного висловлювання (умови) цикл припиняється, а й у оператора while… do при істинності логічного висловлювання цикл триває.

Третье відмінність у тому, що оператор repeat… until має частини:

начальную і завершальну, що охоплюють групу операторів, складових тіло циклу. Оператор while… do немає завершальній частини й вимагає в організацію тіла циклу з кількох операторів програмних скобок begin-end. Для оператора repeat… until таких скобок непотрібен — їх роль виконують складові оператора.

Пример. Знайти методом добору целочисленное рішення Диофантова рівняння 5x-3y=1. Як першу проби беруться поодинокі значення. Далі, якщо 5x-3y>1, те в поповнюється 1, якщо 5x-3y1theny:=y+1;

if (5 * x — 3 * у) < 1 then x := x + 1 until (5*x-3*y)=1;

writeln («x= «, x, «y= «, y) end.

В результаті на екрані одержимо х=2у=3.

Пример. З допомогою циклу repeat… until то можна організувати процедуру введення даних із захистом програми від завершення при помилковому наборі. Якщо тип даних відповідає инициализируемой за стандартного на введення перемінної (наприклад, потрібно запровадити ціла кількість, а набрано дробове), виникає помилка у виконанні програми, і ми повинні знову запускати програму, і, природно, повторити набір. Щоб захисту від наслідків таких помилок, можна використовувати власну процедуру введення. Така процедура повинна відключити автоматичну перевірку правильності введення і проводити її самостійно, причому при помилці вимагати повторного набору. Відключення перевірки вмотивованості введення виробляється директивою компілятора {$!-} (Input/Output checking з вікна настройки опцій компілятора). Після кожного дії з уведенню-висновку спеціальна функція lOResult повертає ціле значення, відповідне помилок вводу-виводу. Правильної роботі вводу-виводу відповідає нульовий значення, яке цієї функцією. Надійний введення цілого числа і виконує фрагмент програми:

{$!-} {відключення перевірки вводу-виводу} repeat.

Write («Запровадьте і = «); {висновок на екран пропозиції для введення}.

ReadLn (і) {введення цілого числа}.

until lOResult = 0; {lOResult — функція, рівна 0, якщо ні помилки} {$!+} {відновлення перевірки виводу-введення-висновку}.

По крайнього заходу одного разу вводиться число; якщо введення було зроблено помилка, умова lOResult = 0 має значення false, і введення буде повторюватися до того часу, що він нічого очікувати зроблено правильно.

Операторы Break і Continue.

В останніх версіях мови Borland Pascal запроваджені дві нові оператора, Break і Continue, застосовувані всередині циклів. Вони розширюють можливості використання циклів і покращують структуру програм. У процесі виконання тіла циклу до його завершення виникатимуть додаткові умови, потребують завершення циклу. І тут цикл може бути припинений оператором Break.

Пример. Гра з ЕОМ до кісток. Умови гри. Комп’ютер видає собі чи Вам випадкові числа від 1 до 6. Завдання — набрати максимальну суму очок. Набравши більше 21 очки програє, будь-якої миті одне із гравців може відмовитися від набору очок (спасувати).

Program Bones;

Const MaxSum = 1; {максимальну кількість очок}.

var SumYour, {сума очок гравця}.

SumComp, {сума очок комп’ютера}.

count: byte; {чергові що випали окуляри}.

reply: string; {у відповідь запит ЕОМ}.

begin.

SumYour := 0;

SumComp:=12; {початкова кількість очок}.

Randomize; {установка датчика випадкових чисел}.

repeat {початок загального циклу, організуючого гру}.

write («Покинути кістку для Вас? (у/n) »);

repeat {Початок циклу для введення коректної відповіді} readln (reply) {введення відповіді}.

{вихід із циклу — при коректному відповіді}.

until (reply = «у ») or (reply = «Y ») or (reply = «n ») or (reply = «N »);

{метання кістки для гравця за позитивної відповіді}.

if (reply = «у ») or (reply = «Y ») then {якщо відповідь «так"}.

begin Count := Random (6) + 1; {число очок гравця}.

{Random (6) дає випадкові числа від 0 до 5}.

WriteLn (вам випало ", count, «очок. »); {висновок який випав кількості очок} SumYour := SumYour + count; {підрахунок суми очок гравця}.

Writeln («y Вас всього », SumYour, «очок. »); {висновок суми очок}.

if SumYour >= MaxSum then Вгеаk{прекращение гри при переборі} end;

{метание кістки для комп’ютера — він грає,.

если сума очок менше 18}.

if SumComp < 18 then {якщо комп’ютер продовжує гру}.

begin Count := Random (6) + 1; {число очок комп’ютера} WriteLn («мнe випало », count, «очок. »); {висновок кількості очок} SumComp := SumComp + count; {підрахунок суми очок комп’ютера} Writeln («y мене найбільше », SumComp, «очок. »); {висновок суми очок}.

if SumYour >= MaxSum then Break {припинення гри при переборі} end.

else begin {якщо комп’ютер пасує}.

write (‘ пас. Будете продовжувати? (у/п)'); {запит про продовження гри}.

repeat.

read (reply) until (reply = «у ») or (reply = «Y ») or (reply = «n ») or (reply = «N »);

if (reply = «n ») or (reply = «N ») then Break {припинення гри.

по взаємною згодою}.

end.

until false; {замикання циклу метання кісток} {підбиття підсумків}.

if SumYour > MaxSum then writeln («Bы програли! »).

{перебір гравця}.

else if SumComp > MaxSum then writeln (‘Я програв! ").

{перебор у комп’ютера}.

else if SumYour < SumComp then writeln («Я виграв! »).

{сравнение очок}.

else if SumYour = SumComp then writeln («Нічия! »).

{равенство очок}.

else writeln («Ви виграли! »);

ReadLn.

end.

Программа розбита на дві основні частини: метання кісток і підбиття підсумків.

Первая частина реалізує нескінченний цикл метання кісток, обмежений оператором repeat … until false. Вибір оператора repeat мотивовано тим, що має поставлений, по крайнього заходу, один хід гри. Цикл то, можливо перерваний оператором Break при переборі очок будьяким зі гравців і за відмову обох партнерів від продовження гри. Об'єднання трьох умов у те й використання як завершального умови циклу repeat… until ускладнить алгоритм, а застосування припинення гри оператора Break алгоритм спрощує.

Цикл repeat… until з завершальним умовою.

(reply = «у ») or (reply = «Y ») or (reply = «n ») or (reply = «N »);

продолжается до того часу, поки що не запроваджено припустимий символ («у », «Y », «п «чи «N ») у відповідях питанням про продовження гри.

Для імітації метання кісток застосована функція Random з параметром — цілим числом, рівним 6. За такої використанні вона дає випадкові цілі вересня діапазоні від 0 до 5 включно.

Подведение підсумків гри виконують вкладені один одного оператори if. Можливі підсумки гри перевіряються послідовно. Якщо може бути висновок, виконується частина then оператора. Не може бути, виконується частина else, у якій стоїть оператор подальшого розгалуження if.

Средства середовища програмування для налагодження програм.

Среда Borland Pascal має низку вбудованих інструментальних коштів налагодження програм. З деким із них вже познайомилися. Механізм покрокового виконання програми, викликаний функціональної клавіш F7, та її варіанти: покрокове виконання без входу в процедури, викликаного клавіш F8, і виконання до заданої рядки (клавіша F4) дозволяють перевірити, чи послідовність виконання команд Вашим вимогам до алгоритму.

Эффективность налагодження зростає за спільної використанні різних інструментальних коштів середовища програмування. Для використання коштів налагодження мають стояти опції компілятора: Debug information, Local symbols і Symbol information (меню Options/ Compiler). Якщо опції встановлено, в файл включається спеціальна інформація, яка припускає застосування коштів налагодження. У налагодженої програмі цю інформацію непотрібен, тому при компіляції програми як готового продукту опції налагодження рекомендується відключити. Інструментальні кошти налагодження доступні через меню Debug (налагодження), наведене малюнку 5.4.

Из меню Debug можна викликати три вікна: Output, Watch і Call stack, що як об'єкти інтерфейсу подібні вікна з текстом програми. Вона має порядковий номер, їх розміри і становище змінюються як і, як розміри і становище будь-яких текстових вікон. Вони наводяться у списку вікон меню Windows, можуть активізуватися від цього меню. Будь-яке з цих вікон закривається клавішами Alt + F3. Відмінність від текстових вікон у цьому, що ми можемо виконувати у яких вільну запис.

Пункт User screen дає можливість прозирнути користувальницький екран — екран, куди виводиться текстова і графічна інформація у виконанні програми. Природно, така виникає часто, тому.

Окно стека Вікно налагодження.

Просмотр й зміна перемінної.

Добавить контрольні точки.

Контрольные точки Вікно регістрів Вікно програми.

Пользовательский екран.

Добавить у вікно налагодження.

стоит запам’ятати комбінацію клавіш Alt + F5 щодо його швидкого виклику. Якщо потрібно одночасно спостерігати на екрані текст програми розвитку й результати її в текстовому режимі, можна відкрити вікно Output — вікно, у якому виводитимуться результати виконання програми. Розмір вікна Output можна відрегулювати клавішами переміщення курсору після натискання Control + F5 чи мишею, як описано раніше.

Окно налагодження програм Watch то, можливо відкрито пунктом меню Watch чи Add watch. У кожній рядку вікна то, можливо задана деяка змінна чи вираз. У процесі виконання програми поточне значення заданої перемінної чи висловлювання виводиться до цього вікно. Налагодження з допомогою вікна Watch зазвичай узгоджується з покрокової налагодженням, коли можна перевірити як послідовність виконання команд, а й значення величин, що призводять до такої послідовності виконання. До сформування вікна Watch не потрібно викликати пункт меню Watch. Можна просто натиснути клавіші Control + F7 — і… Ви отримаєте вікно Add Watch, у якому треба запровадити ім'я перемінної висновку у вікно налагодження. У рядку для набору імені буде подсвечено то ім'я, у якому стояв текстовий курсор в останній момент натискання клавіш Control + F7. Якщо ви натиснете Enter, у вікно Watch додасться набрана з вікна Add Watch змінна чи вираз, якщо почнете набір іншого імені, це зникне без додаткових дій видалення. Якщо відразу після відкриття вікна Add Watch натиснути стрілку курсору вправо, то вікно введення починають вводитися символи з тексту програми, такі за курсором.

Когда вікно Watch активно, у нижній рядку з’являються свідчення про найактуальніші дії, які можна зробити у цьому стані. Підказка нагадує Вам, що покрокова налагодження проходить за натискання клавіш F7 чи F8, пропонує натиснути Insert для додавання нової перемінної у вікно, Delete видалення записи, Enter для редагування записи, де стоїть курсор вікна налагодження.

Загрузим, наприклад, програму визначення найбільшого загального дільника. Відкриємо вікно Output для діалогу у виконання програми. Відкриємо вікно Watch і помістимо до нього все три перемінні нашої програми: Common, First і Second. При покрокової налагодженні програми з клавіші F7 побачимо, щодо виконання програми перемінні не визначено. Принаймні введення чисел перемінні First і Second отримують запроваджені значення. На початку циклу отримує значення і змінна Common, котру змінюють при кожному проходженні циклу. Ви також побачите, що рядок.

if (First mod Common) = 0 then begin WriteLn («HCVl = «, Common); Break end.

бывает підсвічена дуже рідко, оскільки більшість чисел попередній оператор continue завершує даний прохід циклу, і це рядок справді не виконується.

Пошаговый прохід програми у разі, коли виконується велика кількість циклів, — заняття стомливе, котрий іноді неможливе. Тому передбачено механізм запровадження програму контрольних точок.

Контрольная точка — це логічне умова, яке обчислюється щоразу і під час заданої рядки програми. Якщо виконуються умови переривання, програма зупиняється у контрольній точці. Далі ми можемо вводити інші контрольні точки чи застосовувати покрокову налагодження з переглядом з вікна Watch.

Чтобы додати контрольну крапку у програму, треба запровадити ім'я файла, номер рядки, у якій виробляється перевірка, логічне умова, з досягнення якої відбувається зупинка програми, і кількість проходів заданої рядки, у яких дане логічне умова не прораховується. Якщо логічне умова не поставлено, зупинка виникає з досягнення даної рядки. Кількість проходів даної рядки без аналізу за умовчанням встановлюється рівним 0, тобто аналіз проводиться, починаючи з першого проходу. Припустимо, у програмі визначення найбільшого загального дільника Common. pas хочемо перевірити відносини, які під час кратності змінних Second і Common. Тоді, у вікні Add Breakpoint на полі Condition ми вводимо умова переривання програми Second mod Common = 0. У центрі FileName автоматично вноситься ім'я файла, активного вікна, а полі Line number — номер рядки, у якій перебуває курсор. У рядок Pass count записується число 0, адже ми хочемо зупинити програму вже за часів першому виконанні умови переривання .

Все запроваджене програму точки переривання можна переглянути і відредагувати з вікна Breakpoints.

Окно, открывающееся під час виборів пункту меню Evaluate/Modify, як і вікно Watch, дозволяє переглянути значення будь-який перемінної чи висловлювання, та заодно можна змінити значення перемінної. Вікно Evaluate/Modify може бути викликане, якщо виконання програми зупинено механізмом точки переривань або за покрокової налагодженні, і бути закрито продовжити роботи програми. Це вікно зручно використовувати як «калькулятор». На виконання допоміжних обчислень досить запровадити відповідне вираження у полі Expression і прочитати результат на полі Result.

Показати весь текст
Заповнити форму поточною роботою