Реферат: Паскаль. Отладка программ - текст реферата. Скачать бесплатно.
Банк рефератов, курсовых и дипломных работ. Много и бесплатно. # | Правила оформления работ | Добавить в избранное
 
 
   
Меню Меню Меню Меню Меню
   
Napishem.com Napishem.com Napishem.com

Реферат

Паскаль. Отладка программ

Банк рефератов / Программирование

Рубрики  Рубрики реферат банка

закрыть
Категория: Реферат
Язык реферата: Русский
Дата добавления:   
 
Скачать
Microsoft Word, 363 kb, скачать бесплатно
Заказать
Узнать стоимость написания уникального реферата

Узнайте стоимость написания уникальной работы

ТурбоПаскаль 7.0 . Логические операторы и операторы цикла. Отладка пр ограмм. Укороченная форма оператора if В операторе if часть , начинающаяся словом else , может отсутствовать . Часть , следующая за слово м then , выполняется , если логическое условие , стоящее после слова if , имеет значение true . Если это ло гическое выражение и меет значение false , непосредстве нно выполняется оператор , следующий за if . Наша программа может быть переписана с применением укороченной формы оператора if . Алгоритм сводится к последовательности проверок попад ания переменной Аде в различные диапазоны з начений . Приведем измененный текст про граммы : Program Dialog ; расширенны й диалог — второй вариант ) const Question =' What is your name?'; Rep ( y 1 = 'Паскаль — прост , но первый компилятор Паскаля был написан на Паскале '; Reply 21 = 'Вас ждет удивител ьное пут ешествие '; Reply 22 = 'сквозь джунгли ос обенностей и возможностей языка '; Reply 3 = 'Паскаль — разумный компромисс между желательным и эффективным '; Reply 4 = 'Паскаль академически элегантен '; var Name : string ; Age : byte ; begin WriteLn ( Question ); ReadLn ( Name ) ; Ввод имени WriteLn (' Hello , ', Name , '!'); Вывод приветствия WriteLn (' How old are you ?'); Вопрос о возрасте ReadLn ( Age ); Ввод возраста if 12 < Age then WriteLn ( Reply 1 ); if (12 <= Age) and (Age < 20) then begin WriteLn (Reply21); WriteLn (Reply22) end; if (20 <= Age) and (Age < 40) then WriteLn(Reply3); if Age >= 40 then WriteLn(Reply4) end. Алгоритмически этот вариант решения задачи с использованием сокращенной формы оператора if сущ ественно слабее первого варианта , в котором использовалась полная форма . При исполнен ии программы будут проверены все четыре у словия , даже если при первой проверке найд ено окончательное решение . Однако этот алгори тм не имеет вложенных друг в друга оп ераторов и поэтому проще для понимания. Оператор выбора case Оператор if — один из наиболее часто используемых структурных элементов языка — обеспечивает ветвление алгоритма только на два направления . Вместе с тем ясно , что первый алгоритм решения задачи удачнее выражает ее сущность . Для реализации подобных алгоритмов необх одим оператор множественного ветвления (выбора из нескольких ветвей команд ). Таким оператором в Паскале является оператор выбора case . Общий вид этого оператор а : case <селектор > of < альтернатива 1 > : < оператор 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 = 'Паскаль — прост , но первый компиля тор Паскаля был написан на Паскале '; Reply 21 = 'Вас ждет уд ивительное путешествие '; Reply 22 = 'сквозь джунгли ос обенностей и возможностей языка '; ReplyS = 'Паскаль — разумный компромисс между желательным и эффективным '; Reply 4 = 'Паскаль академически элегантен '; var Name : string ; Age : byte; begin WriteLn(Questi on); 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 : Prog ram 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. Нас интересуют числа , удо влетворяющие обоим условиям , то есть числа , для которых истинно Od d ( 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) th en WriteLn(i) end. В результате выполнении программы получим в столбик значения 57, 51,45,39, 33. В приведенном примере многократно повторя лся один оператор , однако во многих случая х необходимо повторять группу операторов . Всп омним , что говорилось в предыд ущей гла ве о вложенности операторов друг в друга . Чтобы использовать вместо одного оператора группу , нужно эту группу превратить в один сложный оператор . Осуществляется это с помощью так называемых “программных скобок” — операторов begin и end . begin <опер атор 1>; < оператор 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 tr ue 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 ), а в другом — в конце цикла ( r epeat ... until ). Оператор while .. do Оператор цикла while (пока , в то время как ) имеет вид : While <логическое выражение > do <тело цикла >; Цикл While обеспечивает выполнение тела цикла , сле дующего за словом do до тех пор , пока условие имеет значение true (и стина ). В качестве тела цикла может использоваться про стой или сложный оператор . Условие проверяетс я перед началом каждого выполнения тела ц икла , поэтому , если до первого выполнения цикла условие имеет значение false (ложь ), оператор не выполняется ни одно го раза (рис . 5.2). Пример . Необходимо преобразовать значение угла в градусах к стандартному диапазону ± 180° путем исключения полных оборотов окр ужности ± 360° . Эта процедура может быть выполнена с помощью оператора цикла While abs ( Angle ) > 180 do if Angl e > 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 таких скобок не требуется — их роль выполняют составные части оператора. Пример . Найти методом подбора целочисленн ое решение Диофантова уравнения 5 x -3 y =1. В качестве первой пробы берутся единичные значения. Далее , если 5 x -3 y >1 , то у увеличиваетс я на 1, если 5 x -3 y <1 , то на 1 увеличивает ся х. Program Diophant; var х , у : byte; begin x:=1;y:=1; repeat if(5*x-3*y)>1theny:=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 можно организовать процедуру ввода данных с защитой программы от завершения при ошибочном наборе . Если тип данных не соответствует инициализируемой при стандартном вводе переменн ой (например , тр ебуется ввести целое число , а набрано дроб ное ), то возникает ошибка в выполнении про граммы , и мы должны снова запускать програ мму , и , естественно , повторить набор . Чтобы защититься от последствий таких ошибок , можно использовать собственну ю процедуру ввода . Такая процедура должна отключить авт оматическую проверку правильности ввода и про водить ее самостоятельно , причем при ошибке требовать повторного набора . Отключение проверк и правильности ввода производится директивой компилятора $!- ( In put / Output checking в о кне настройки опций компилятора ). После каждог о действия по вводу-выводу специальная функци я lOResult возвращает целое значение , соответствующее ошибкам ввода-вывода . Правильной работе ввода-вывода соответствует нуле вое значение , воз вращаемое этой функцией . Надежный ввод целого числа i выполняет фрагмент программы : $!- отключение проверки ввода-вывода repeat Write ('Введите i = '); вывод на экран п редложения для ввода ReadLn ( i ) ввод целого числа until lOResult = 0; lOResul t — функция , равная 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 Sum Your > 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 имеет несколько встроенных инструментальных средств отладки программ . С некоторыми из них мы уже познакомились . Механизм пошагового выполнения программы , вызываемый функциональной клавишей F 7, и его варианты : пошаговое выполнение без вход а в процедуры , вызываемое клавишей F 8, и исполнение до заданной строки (клавиша F 4) п озволяют проверить , соответствует ли послед овательность выполнения команд Вашим треб ованиям к алгоритму. Эффективность отладки возрастает при совм естном использовании различных инструментальных средств среды программирования . Для использования средств отладки должны быть включены опц ии компилятора : Debug information , Local symbols и Symbol information (меню Options / Compiler ). Если опции устано влены , в файл включается специальная информац ия , допускающая применение средств отладки . В отлаженной программе эта информация не т ребуется , поэтому при компи ляции программ ы как готового продукта опции отладки рек омендуется отключить . Инструментальные средства о тладки доступны через меню Debug (отладка ), приведенное на рисунке 5.4. Из меню Debug можно вызвать три окна : Output , Watch и Call stack , которые как об ъекты интерфейса подобны окну с текст ом программы . Они имеют порядковый номер , их размеры и положение изменяются так же , как размеры и положение любых текстовых окон . Они приводятся в списке окон ме ню Windows , могут активизироваться из этого меню . Любое из этих окон закрывается клавишами Alt + F 3. Отличие от текстовых окон в том , что мы не можем выполнять в них св ободную запись. Пункт User screen позволяет увидеть пользовательский экран — э кран , в который выводится текстовая и граф ическая информация при исп олнении програм мы . Естественно , такая потребность возникает ч асто , поэтому Окно стека Окно отладки Просмотр и изменение переменной Добавить контрольные точки Контрольные точки Окно регистров Окно программы Пользовательский экран Добавить в окно отладки сто ит запомнить комбинацию клавиш Alt + F 5 для его быстрого вызова . Если требуется одновременно наблюдать на э кране текст программы и результаты ее раб оты в текстовом режиме , можно открыть окно Output — окно , в которое будут выводитьс я результаты исполнения п рограммы . Размер окна Output можно отрегулировать клавишами перемещения курсора после нажатия Control + F5 или мышью , как описано ранее. Окно отладки программ Watch может быть открыто пунктом меню Watch или Add watch . В каждой строчке окна мо жет быть задан а некоторая переменная или выражение . В процессе выполнения программ ы текущее значение заданной переменной или выражения выводится в это окно . Отладка с использованием окна Watch обычно сочетается с пошаговой отладкой , когда можно проверить не только после довательность выполнения команд , но и значения величин , приводящие к такой последов ательности выполнения . Для создания окна Watch нет необходимости вызывать пункт меню Watch . Можно прост о нажать клавиши Control + F 7 — и Вы получи те окно Add Watch , в которо м надо ввести имя переменной для вывода в окно отладки . В строке для на бора имени будет подсвечено то имя , на котором стоял текстовый курсор в момент нажатия клавиш Control + F7. Если Вы нажмете Enter , в окно Watch добавится набранная в окне Add Watch пере менная или выражение , если начнете набор другого имени , это имя исчезнет б ез дополнительных действий для удаления . Если сразу после открытия окна Add Watch нажать стрелку ку рсора вправо , то в окно ввода начинают вводиться символы из текста программы , след у ющие за курсором. Когда окно Watch активн о , в нижней строке появляются указания на наиболее актуальные действия , которые можно совершить в данном состоянии . Подсказка н апоминает Вам , что пошаговая отладка проводит ся по нажатию клавиш F7 или F 8, предлагает нажать 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 nu mber — номер строки , в к оторой находится курсор . В строку Pass count запи сывается число 0, так как мы хотим останови ть программу уже при первом выполнении ус ловия прерывания . Все введенные в программу точки преры вания можно просмотреть и отредактировать в окне Breakpoints Окно , открывающееся при выборе пункта меню Evaluate/Modify, также , как окно Watch, позволяет просмотрет ь значение любой переменной или выражения , но при этом можно изменить значение пе ременной . Окно Evaluate/Modify может быть вызвано , ес ли выполнение программы остановлено через механизм точки прерываний или при пошаго вой отладке , и должно быть закрыто для продолжения работы программы . Это окно удоб но использовать как “калькулятор” . Для выполн ения вспомогательных вычислений достаточно вв е сти соответствующее выражение в поле Expression и прочитать результат в поле Result.
1Архитектура и строительство
2Астрономия, авиация, космонавтика
 
3Безопасность жизнедеятельности
4Биология
 
5Военная кафедра, гражданская оборона
 
6География, экономическая география
7Геология и геодезия
8Государственное регулирование и налоги
 
9Естествознание
 
10Журналистика
 
11Законодательство и право
12Адвокатура
13Административное право
14Арбитражное процессуальное право
15Банковское право
16Государство и право
17Гражданское право и процесс
18Жилищное право
19Законодательство зарубежных стран
20Земельное право
21Конституционное право
22Конституционное право зарубежных стран
23Международное право
24Муниципальное право
25Налоговое право
26Римское право
27Семейное право
28Таможенное право
29Трудовое право
30Уголовное право и процесс
31Финансовое право
32Хозяйственное право
33Экологическое право
34Юриспруденция
 
35Иностранные языки
36Информатика, информационные технологии
37Базы данных
38Компьютерные сети
39Программирование
40Искусство и культура
41Краеведение
42Культурология
43Музыка
44История
45Биографии
46Историческая личность
47Литература
 
48Маркетинг и реклама
49Математика
50Медицина и здоровье
51Менеджмент
52Антикризисное управление
53Делопроизводство и документооборот
54Логистика
 
55Педагогика
56Политология
57Правоохранительные органы
58Криминалистика и криминология
59Прочее
60Психология
61Юридическая психология
 
62Радиоэлектроника
63Религия
 
64Сельское хозяйство и землепользование
65Социология
66Страхование
 
67Технологии
68Материаловедение
69Машиностроение
70Металлургия
71Транспорт
72Туризм
 
73Физика
74Физкультура и спорт
75Философия
 
76Химия
 
77Экология, охрана природы
78Экономика и финансы
79Анализ хозяйственной деятельности
80Банковское дело и кредитование
81Биржевое дело
82Бухгалтерский учет и аудит
83История экономических учений
84Международные отношения
85Предпринимательство, бизнес, микроэкономика
86Финансы
87Ценные бумаги и фондовый рынок
88Экономика предприятия
89Экономико-математическое моделирование
90Экономическая теория

 Анекдоты - это почти как рефераты, только короткие и смешные Следующий
Кто сказал, что порабощение людей машинами, - это фантастика!?
Управление GPS-навигаторами мозгами блондинок - это уже реальность сегодняшнего дня!
Anekdot.ru

Узнайте стоимость курсовой, диплома, реферата на заказ.

Обратите внимание, реферат по программированию "Паскаль. Отладка программ", также как и все другие рефераты, курсовые, дипломные и другие работы вы можете скачать бесплатно.

Смотрите также:


Банк рефератов - РефератБанк.ру
© РефератБанк, 2002 - 2016
Рейтинг@Mail.ru