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

[ виправити ] текст може містити помилки, будь ласка перевіряйте перш ніж використовувати.

скачати

ТурбоПаскаль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) позначимо шукану суму S і привласнимо їй значення, рівне нулю;

(2) послідовно N раз обчислимо доданки ряду і додамо їх до змінної 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; {лічильник циклу}

s: real; {сума ряду}

N: byte; {число членів ряду}

begin

Write ('N ='); ReadLn (N); {введення числа членів ряду}

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

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

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

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

end.

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

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

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

Program Sample;

var i: byte;

begin

for i: = 60 downto 30 do {цикл по спадної від 60 до 30}

if Odd (i) and (i 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 ('c =', c)

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, в який вкладено послідовно ще два оператори 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 х: = х + 1 until (5 * x-3 * y) = 1;

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

У результаті на екрані отримаємо х = 2у = 3.

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

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

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

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

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 може бути викликано, якщо виконання програми зупинено через механізм точки переривань або при покрокової налагодженні, і має бути закрите для продовження роботи програми. Це вікно зручно використовувати як "калькулятор". Для виконання допоміжних обчислень досить ввести відповідний вираз у поле Exdivssion і прочитати результат у полі Result.

Додати в блог або на сайт

Цей текст може містити помилки.

Програмування, комп'ютери, інформатика і кібернетика | Реферат
49.2кб. | скачати


Схожі роботи:
Етапи розробки програм Тестування та налагодження Документування програм
Налагодження програм і програмних комплексів
Редагування та налагодження програм за допомогою Pascal
Налагодження програм користувача в Tubro Pascal
Налагодження системи та монтаж
Налагодження міжособових комунікацій в менеджменті
Розробка та налагодження формальної мови
Створення компіляція та налагодження простого додатка
Алгоритм написання та налагодження програми Текстовий редактор
© Усі права захищені
написати до нас