adfun.ru
| |
BIGLIB |
| большущая библиотека (9812 книг), можно не только прочитать но и скачать бесплатно |
|
| |
ФАНТАСТИКА |
| фентези,
фантастика, фантастические повести |
|
| |
ФИЛОСОФИЯ |
книги, которые заставляют
задуматься над окружающим тебя миром.
|
|
| |
МЕДИЦИНА |
медицинские книги,
методички,
народные лечебники |
|
| |
КУЛИНАРИЯ |
рецепты
тортов, консервирование,
все о спиртных
напитках. |
|
| |
СТИХИ |
| стихи популярных
и не очень авторов |
|
| |
ТВОРЧЕСТВО |
| народное творчество,
стихи, песни и т.д. |
|
| |
ЮМОР |
| анекдоты, приколы,
смешные истории |
|
| |
ЭРОТИКА |
| эротические рассказы,
книги о технике секса,
кама-сутра и др. |
|
|
| |
 |
іі nwords = 0; іі
іі totalcharacters = 0; іі
іі Й[*]Inspecting totalcharactersНН3Н[ ][ ]» іі
іі є@788E:FFC6 є іі
іі єunsigned±long±±±±±±±±±±±6L±(Ox60)±±±±±±єffer); іі
іі И<І°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°>Ѕ іі
іі Й[*]НEnter new value for unsigned long totalcharactersНН»іі
іі є totalcharacters + 4 єіі
іі є єіі
іі є OK Cancel Help єіі
іі ИНННННННННННННННННННННННННННННННННННННННННННННННННННННННјіі
іі } іі
іі і* Превратить буфер в список завершающихся нулевым символоміі
іі * строк, которые завершаются двумя нулями, удалив пустое іі
іі * пространство *і іі
іі static int makeintowords(char *bufp) { іі
іАДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЩі
іЪWatchesДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД2їі
іі іі
іАДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЩі
іEnter item prompted for in dialog title і
АДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЩ
Рис. 3.10 Подсказка команды Change
В заголовке диалогового окна вам сообщается: Enter new value
for unsigned long totalcharacters (введите новое значение для пе-
ременной totalcharacters типа unsigned long), а в нижней строке
экрана говорится: Enter item prompted by a dialog title (введите
элемент данных, указанный в заголовке диалогового окна).
В данный момент вы можете ввести любое выражение языка Си,
при вычислении которого получается число. Наберите
TDeb 3.0 #1-3 = 83 =
totalcharacters + 4 и нажмите клавишу Enter. В окне проверки те-
перь будет показано новое значение - 10L (OxA).
Для изменения элемента данных, который не виден в текущем
окне Module (Модуль), выберите команду DataіEvaluate/Modify (Дан-
ныеіВычисление/Модификация). При этом будет выведено окно подс-
казки, в которой вы можете ввести имя изменяемой переменной. На-
берите имя argc и нажмите клавишу Enter. Наберите 123 и нажмите
Enter. Результат (во втором окне) изменяется и принимает значение
int 123 (Ox7B).
ЪДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДї
іЁ File Edit View Run Breakpoints Data Options Window HelpPROMPTі
іЪД[*]ДModule: TCDEMO file: TCDEMO.C 38ДДДДДДДДДДДДДДДДДДДДДДДїі
іі static void showargs(int argc, char *argv[]); іі
іі іі
іі /* program eЙ[*]ННННННННННННННEvaluate/ModifyННННННННННН» іі
іі unsiєExpression і Eval є іі
іі unsiє argc і ±±±±±±± є іі
іі єДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДіДД Cancel є іі
іі nlinєResult і ±±±±±±± є іі
іі nworєint 123 (Ox7B) і Help є іі
іі totaєДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД^іДД±±±±±±± є іі
іі showєNew value ±і Modify є іі
іі whilє 123 vі ±±±±±±± є іі
іі> ИНННННННННННННННННННННННННННННННННННННННННННј іі
іі } іі
іі /* Превратить буфер в список завершающихся нулевым символоміі
іі * строк, которые завершаются двумя нулями, удалив пустое іі
іі * пространство */ іі
іі static int makeintowords(char *bufp) { іі
іАДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЩі
іЪWatchesДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД2їі
іі іі
іАДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЩі
іEnter new value і
АДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЩ
Рис. 3.11 Диалоговое окно Evaluate/Modify
Expression - выражение; Result - результат; New value - но-
вое значение; Enter new value - введите новое значение.
Это было краткое введение по использованию Турбо отладчика
для работы с программой на языке Си. Более подробно об этом расс-
казывается в описании примера сеанса отладки в Главе 14, где ис-
пользуется версия данной программы с намеренно введенной ошибкой.
Использование примера программы на Паскале
ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
Закрашенная стрелка в левом столбце окна Module (Модуль) по-
казывает, где Турбо отладчик остановил выполнение вашей програм-
TDeb 3.0 #1-3 = 84 =
мы. Так как вы еще не запускали свою программу, стрелка находится
на ее первой строке. Для трассировки одной исходной строки нажми-
те клавишу F7. Стрелка и курсор переместятся при этом на следую-
щую строку.
Посмотрите на правую границу заголовка окна Module (Модуль).
В ней показана строка, в которой находится курсор. Переместите
курсор с помощью клавиш управления курсором (стрелки) вверх и
вниз и обратите внимание на изменение номера строки в заголовке.
Чтобы запустить программу на выполнение, пока она не достиг-
нет строки 221, переместите курсор на эту строку, а затем нажмите
клавишу F4. Программа TPDEMO выведет вам подсказку для ввода
строки. Наберите несколько символов (ABC, пробел, DEF) и нажмите
клавишу Enter. Теперь, если курсор находится на строке 221, наж-
мите дважды клавишу F7 для выполнения еще двух строк исходного
кода. Поскольку выполняемая вами строка представляет собой вызов
другой процедуры (функции), то стрелка теперь позиционируется на
первой строке функции ProcessLine. Если вы будете продолжать на-
жимать клавишу F7, то будет выполняться функция ProcessLine, пока
управление не вернется на следующую за вызовом строку (строка
224). Вместо этого можно нажать клавиши Alt-F8. При этом програм-
ма остановится, когда текущая функция ProcessLine возвратит уп-
равление. Эту команду полезно использовать, когда вы не хотите
медленно проходить по шагам всю функцию или процедуру.
TDeb 3.0 #1-3 = 85 =
Если на строке 221 вы вместо клавиши F7 нажмете оперативную
клавишу F8, то вместо перехода в функцию курсор переместится на
строку 224. Клавиша F8 аналогична клавише F7: она также выполняет
функции, но не переводит вас в исходный код функции.
ЪДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДї
іЁ File Edit View Run Breakpoints Data Options Window Help READYі
іЙН[*]НModule: TPDEMO file: TPDEMO.PAS 224НННННННННННН1Н[ ][ ]»і
іє while buffer <> '' do ^і
іє begin Іі
іє ProcessLine(Buffer); ±і
іє> Buffer := GetLine; ±і
іє end; ±і
іє ShowResults; ±і
іє ParmsOnHeap; ±і
іє end. ±і
іє ±і
іє ±і
іє ±і
іє ±і
іє ±і
іє ±і
іє ±і
іє ±і
іє ±і
іє vі
іИ<І±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±>Щі
іЪWatchesДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД2їі
іі іі
іАДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЩі
іF1=HelpF2=BkptF3=CloseF4=HereF5=ZoomF6=NextF7=TraceF8=StepF9=R.і
АДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЩ
Рис. 3.12 Программа остановилась после возврата из процеду-
ры
Чтобы выполнить программу до тех пор, пока не будет достиг-
нуто заданное место, вы можете непосредственно указать функцию
или номер строки, не перемещая курсор на данную строку курсор, а
затем выполнить программу до этой точки. Чтобы задать метку, до
которой вы хотите выполнить программу, нажмите клавиши Alt-F9.
Программа начнет выполнение и остановится в начале функции
GetLine.
TDeb 3.0 #1-3 = 86 =
Задание точек останова в примере программы на языке Паскаль
ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
Другой способ управлять остановкой программы состоит в ис-
пользовании точек останова. Простейший способ задать точки оста-
нова заключается в использовании клавиши F2. Переместите курсор
на строку 121 и нажмите F2. Турбо отладчик подсвечивает строку,
показывая, что на ней установлена точка останова.
Точки останова можно устанавливать и отменять также с по-
мощью "мыши". Для этого нужно переместиться на первую или вторую
позицию окна Module и нажать кнопку "мыши".
ЪДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДї
іЁ File Edit View Run Breakpoints Data Options Window Help READYі
іЙН[*]НModule: TPDEMO file: TPDEMO.PAS 121НННННННННННН1Н[ ][ ]»і
іє i : integer; ^і
іє WordLen : Word; Іі
іє ±і
іє begin { ProcessLine } ±і
іє> Inc(NumLines); ±і
іє i := 1; ±і
іє while i <= Length(S) do ±і
іє begin ±і
іє { Пропустить не буквы } ±і
іє while (i <= Length(S)) and not IsLetter(S[i]) do ±і
іє Inc(i); ±і
іє ±і
іє { Найти конец слова, обработать счетчики букв и слов } ±і
іє WordLen := 0; ±і
|
adfun.ru
|
|
|
|