adfun.ru
 
BIGLIB
  большущая библиотека (9812 книг), можно не только прочитать но и скачать бесплатно
 
АСТРОЛОГИЯ
  книги по астрологии
 
КРИМИНАЛ
  книги про криминал
 
ДЕТЕКТИВЫ
  детективы известных
   писателей
 
ФАНТАСТИКА
  фентези, фантастика,   фантастические повести
 
ПРИКЛЮЧЕНИЯ
  книги про приключения,   путешествия
 
ПОЛИТИКА
  книги про политиков,   репрессии
 
ПСИХОЛОГИЯ
  разнообразная литература   по психологии
 
КЛАССИКА
  классическая литература
 
КОМПЬЮТЕРНАЯ
  ЛИТЕРАТУРА
  про компютерное железо,   документация, языки   программирования
 
РЕЛИГИЯ, АТЕИЗМ
  книги про религию
 
ФИЛОСОФИЯ
  книги, которые заставляют   задуматься над   окружающим тебя миром.
 
ЭНЦИКЛОПЕДИИ
  самые интересные   энциклопедии на
   разные темы
 
МЕДИЦИНА
  медицинские книги,   методички,
   народные лечебники
 
КУЛИНАРИЯ
  рецепты тортов,   консервирование,
  все о спиртных
  напитках.
 
СТИХИ
  стихи популярных и не   очень авторов
 
ТВОРЧЕСТВО
  народное творчество,   стихи, песни и т.д.
 
ЮМОР
  анекдоты, приколы,   смешные истории
 
ЛЮБОВНЫЙ РОМАН
  мир высоких чувств и   любовных грез
 
ЭРОТИКА
  эротические рассказы,   книги о технике секса,   кама-сутра и др.




adfun.ru
Rambler's Top100 Rambler's Top100
    НА ГЛАВНУЮ
    РЕФЕРАТЫ
    ТОСТЫ
    ТЕСТЫ
    АВТО
    ДЛЯ СТУДЕНТА
    КНИГИ
    КОНТАКТ
 
Турбо С: руководство пользователя. Часть 1
Автор ""
Размер 993495 Байт
Страница 18 из 69
СКАЧАТЬ КНИГУ ЦЕЛИКОМ

                                                                                
                                                                                
                                                                                
                                                                                
                                                                                

                         - 143,144 -
                                                                                
               Использование Ctrl-Break                                         
     -----------------------------------------------------------------          
                                                                                
          Помимо всех  заданных вами точек останова вы можете восполь-          
     зоваться во время выполнения программы "моментальной" точкой  ос-          
     танова, нажав Ctrl-Break. Используя это средство, вы можете оста-          
     навливать программу в любой момент времени.  Когда  вы  нажимаете          
     Ctrl-Break,  вы  выходите из программы и возвращаетесь в редактор          
     Турбо Си,  причем маркер выполнения находится на строке,  которая          
     должна  быть  выполнена в следующий раз,  а сама программа готова          
     продолжить свою работу.                                                    
                                                                                
          Объясним, как в действительности происходит останов програм-          
     мы при нажатии Ctrl-Break.                                                 
                                                                                
          В процессе своей работы отладчик взаимодействует с DOS, BIOS          
     и другими частями операционной системы; поэтому ему известно, что          
     работает в данный момент времени (подпрограмма DOS,  функция BIOS          
     или же именно фрагмент вашей программы).  После того, как вы наж-          
     мете Ctrl-Break,  отладчик дождется,  чтобы заработала непосредс-          
     твенно ваша программа. Затем, на уровне инструкций микропроцессо-          
     ра,   он   сделает   несколько   шагов,   чтобы  дойти  до  кода,          
                                                                                
                                                                                
     соответствующему началу исходной строки на  Си.  И  только  после          
     всего  этого он остановится и переведет маркер выполнения на дан-          
     ную строку.                                                                
                                                                                
          Если же вы повторно нажмете Ctrl-Break прежде,  чем отладчик          
     найдет и укажет строку программы, то он немедленно прервет работу          
     программы и не будет пытаться найти строку  исходного  текста.  В          
     этом случае,  программа останавливается без завершения своего вы-          
     вода и вызова какой-либо функции выхода. (Что аналогично заверше-          
     нию работы программы, выполняемому с помощью функции _exit). Поэ-          
     тому,  дважды нажимать Ctrl-Break вам следует лишь  тогда,  когда          
     программа "зациклилась" и одно нажатие ее не останавливает.                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                

                         - 145,146 -
                                                                                
               Пошаговое выполнение "через функции"                             
     -----------------------------------------------------------------          
                                                                                
          Теперь, когда вы достигли той части WORDCNT, в которой могут          
     быть ошибки,  необходимо быть очень внимательным. Данный фрагмент          
     main будет обрабатывать по одной строке, сравнивая получаемые ре-          
     зультаты с желаемым эффектом.                                              
                                                                                
          Для того, чтобы выполнить одну строку main выберите Run/Step          
     Over.  Отладчик отработал оператор while и считает первую  строку          
     входного файла.  Затем он переместит маркер выполнения на следую-          
     щую строку, содержащую исполняемые операторы. Повторно воспользо-          
     вавшись   Run/Step   Over   можно  выполнить  следующий  оператор          
     (printf).                                                                  
                                                                                
          Привело ли к желаемому эффекту выполнение  оператора  while?          
     Для того,  чтобы определить это,  выберите вариант User Screen из          
     меню Run, или нажмите Alt-F5. В результате этой команды вы увиде-          
     те экран выполнения.  Т.к.  на этом экране видна первая считанная          
     из файла строка,  вы можете сделать вывод,  что и while и  printf          
     работают  правильно.  Для  возврата в окно редактирования нажмите          
     любую клавишу.                                                             
                                                                                
                                                                                
                                                                                
          "Горячей" клавишей для команды Run/Step  Over  является  F8.          
     Поэтому, для выполнения очередного оператора нажмите F8, что при-          
     ведет к вычислению длины введенной строки, значение которой прис-          
     воится переменной i.                                                       
                                                                                
          Внимание! "трассирование  в"  или  "шаг  через" библиотечную          
     функцию longjmp не приведет к остановке на следующей строке прог-          
     раммы (т.к. эта функция никогда не возвращается). По этой причине          
     ваша программа (в этом случае)  будет  выполняться  до  следующей          
     точки останова или до самого конца.                                        
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                





- 147,148 - Вычисление выражений ----------------------------------------------------------------- Приводит ли выполнение оператора присваивания к желаемому результату? Узнать это можно оценив значение переменной i. Выбе- рите Debug/Evaluate. Отладчик откроет окно содержащее три поля. Мы будем называть эти поля в соответствии с присвоенными им функ- циями: 1. Поле Evaluate (вычислений): сюда вы вводите те выражения, которые вы хотите вычислить и, возможно, изменить. (Замечание: Если длина вашего выражения превышает размер поля вычислений, то для его просмотра вы можете воспользоваться клавишами управления курсором). 2. Поле RESULT (результата): в это поле отладчик выводит вычисленное значение. 3. Поле NEW VALUE (нового значения): в этом поле вы можете присвоить своему выражению новое значение (при необходимости). Отметим, что в поле вычислений инидицируется слово. Это сло- во, перенесенное в данное поле из текущей позиции курсора в окне редактирования, является значением поля вычислений, принятым по умолчанию. Мы сразу же можем воспользоваться им. Однако в нашем случае, введите выражение i и нажмите Ввод. В поле результата от- ладчик поместит значение переменной i. Оно равно 43, что является правильным. Для выхода из системы меню нажмите F10. Следующая группа операторов программы проверяет, заканчива- ется ли символом новой строки строка, считанная функцией fgets. Если нет, то можно сделать вывод, что считанная строка является слишком длинной для имеющегося буфера, и, поэтому, программа вы- ведет соответствующее предупреждение. В противном же случае - все в порядке. Программа удалит из строки найденный символ окончания, для того, чтобы он не был включен в размер последнего слова. Перед выполнением оператора if было бы очень полезно взгля- нуть на введенную строку, для того чтобы узнать, что нужно ждать от выполнения этого оператора. Установите курсор в окне редакти- рования над словом linebfr и снова выберите элемент меню Debug/Evaluate (или же "горячую" клавишу Ctrl-F4). Отладчик выве- дет в появившееся окно (в поле вычислений) слово "linebfr". Наж- мите Ввод. - 149,150 - Отладчик выведет: To be or not to be: that is the question.\n Точно также, как и в исходных текстах Си-программы, обозна- чение "\n" соответствует символу конца строки. Теперь, нажав F8, обработайте оператор if. В случае, если этот оператор сработает правильно, маркер выполнения должен пе- редвинуться на предложение "else". Выполните оператор присваива- ния (под else), а затем вновь просмотрите linebfr. (Для этого вы можете использовать Ctrl-F4 или элемент меню Debug/Evaluate). Символ новой строки (\n) должен быть удален. Ну и слава богу, пойдем дальше. Функции nextword и wordlen ----------------------------------------------------------------- Следующий оператор вызывает функцию nextword. Эта функция определяет положение очередного (в данном случае - первого) слова в строке. Обработайте этот оператор, используя F8, а затем пос- мотрите wordptr для того, чтобы узнать что же вернула nextword. Вы можете убедиться, что wordptr указывает на T в строке To be or not to be: that is the question. Если это так, то nextword рабо- тает правильно, по крайней мере в этом простом случае. Следующим фрагментом программы является цикл while. Каждая итерация этого цикла должна обрабатывать одно слово из linebfr, знаращивая при этом wordptr так, чтобы он указывал на новое сло- во. После того, как таким образом в этом цикле будет обработано последнее слово, wordptr должен указывать на ограничивающий стро- ку null символ, а сам цикл должен завершиться. Выполните оператор while. Маркер выполнения переместится на первый оператор в теле цикла, который вызывает функцию wordlen. Эта функция определяет длину слова, на которое указывает wordptr. Выполните оператор и оцените значение переменной i. Значение i - 151,152 -


Страницы : 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


adfun.ru









Форум раскрутка сайта и интернет-реклама
реклама - рекламное агентство -
Интернет PR агентство чат и форум
волчат знакомства - сайт знакомств
бесплатные компьютерные игры
фото знакомства
новые стеклопакеты -
качественное остекление балконов
портал - пластиковые окна -
закажите окна пвх в Москве

частная стоматология в Москве:
надежная стоматологическая клиника
протезирование зубов и
отбеливание зубов в стоматологии
Музыка - скачать mp3 музыка
каталог партнерские программы
ручной бесплатный обмен ссылками цифровые камеры цифровые фотоаппараты -
цифровые видеокамеры

театры - заказ билетов в театр -
магазин - продажа компьютеров
в Москве форум Испания - жилье -
недвижимость в испании

турфирма - испания туры
Переводы - бюро переводов
Законы - закон о товарных знаках,
Грузовые перевозки. АсМАП. Дальнобой закон о рекламе
Интернет казино
реклама на форуме и контекстная реклама
на Яндексе Баннерная сеть и
интернет каталог сайтов Holiday.Ru
Форумы политика, лучшие анекдоты
знакомства.