Программирование >>  Процедурные приложения 

1 ... 11 12 13 [ 14 ] 15 16 17 ... 150


- П MicrotcK Viiual [;*♦ - Icrrcii.c ]

!: Fie £di iirt Piojecl Euid Icaii idow Даф

11 iJI ijobal membefs] 1 4 main

11 V/Qikspac&Q. 1 pio ;-; Ш I) Wet I

□ SouiceRlK El Piei.i

~l Reaourca Fii

*LHjcliidje <Btdici.h> fdefine S

void pirint Hiera( LJit of feet, char continu, ijit ieiTav[5IZ void naiii void ) {

inl iarray[SIZE]; char CQntitiu= Q;

print tluer*(of iset.Qontinu, iarray); > Iitit Ё fNnMiVelccss 4 tracQ dmonElrat ion I

scillE ( Jic , cort I inu); ii fcorttinw-- V )

for (pffset-a: □Efset { SIZ£. □Ef5>et++)

{ printi (\nPlcaLsc enter em intcgrr: caatCd .iiicTioT [□((set] ) ; print IheraСoffЕПt. continu. inrray) .У void jjrint lhjentCLiit nffset. char continu, int iaiTavCSIZ {printf (xnVniid . ofEset); print£ ( ппЩ , continu); far(DEfaet-D; oEtsst С SIZE, offset++J pi-irit £ ( \nd, iflrT-ay[of f eat 1 ); J-

ConpiLing...

error.с

-Ccmfiguraticm: 0 - tfin32 Debug-

am filesnicrosoEt

.e(12) : varnin

c:BPЧJ* f ileaMiiereioEt visual atudiaMivproject.sClrror .c( L6 )

error

Prnlfuiidelincd. jKsmina eUcrn iciiiin-i 1

1л1г,Са2 RECCOL(JVfl IRE/i

Рис.3.12. Окно сообщений во время третьей попытки построить исполняемый файл

Теперь обнаруживаем, что та же строка, которая содержала некорректное имя функции (Printf()),заключает в себе еще одну ошибку. В C/C++ все строковые значения должны браться в двойные кавычки. Значит, в нашем случае открывающие кавычки в функции printf () следует поставить сразу после открывающей круглой скобки, т.е. строка должна начинаться следующим образом: printf( .

Сохраните файл и попытайтесь еще раз построить программу. Как выглядит окно сообщений после очередного обновления, показано на рис. 3.13.




Рис. 3.13. Окно сообщений во время четвертой попытки построить исполняемый файл

На этот раз выдается такое сообщение об ошибке:

syntax error: missing ;before )

В C/C++, в отличие от Pascal, символ точки с запятой используется для обозначения окончания выражения, а не в качестве разделителя. Таким образом, в конце второй проверки в цикле for необходимо ввести точку с запятой. После исправления сохраните файл и вновь выполните команду RebuildAll.

Все в порядке? Судя по окну сообщений, у компилятора нет больше претензий к вашей программе, и команда RebuildAll успешно сгенерировала исполняемый файл ERROR.EXE.



В окне сообщений должны отсутствовать сообщения об ошибках, но присутствовать одно предупреждение, которое можно проигнорировать. Если это не так, значит, вы допустили ошибки при вводе программы. Проверьте программный код и исправьте его.

Запуск программы

Чтобы запустить программу, просто выберите в меню Project команду Execute. Если в ответ на запрос программы Would you like to continue(Y/N) вы нажмете клавишу [Y], а затем [Enter], на экране отобразится следующее:

-858993460

-858993460 -858993460 -858993460 -858993460 -858993460

Welcome to a trace demonstration! Would you like to continue (Y/N)у На рис. 3.14 показано, что произойдет далее.


Рис. 3.14. Сообщение об ошибке выполнения программы Использование встроенного отладчика

Созданная нами программа в начале своей работы отображает на экране исходное содержимое массива данных, после чего спрашивает, хотите ли вы продолжить работу. Ответ Y (yes- да) сигнализирует о том, что вы хотите заполнить массив собственными данными и отобразить их на экране.

Из рис. 3.14 можно сделать вывод о том, что хотя программный код набран совершенно правильно, т.е. в нем нет синтаксических ошибок, программа работает не так, как нам бы хотелось. Ошибки такого рода называются логическими. К счастью, встроенный в VisualC++ отладчик содержит ряд средств, которые послужат для вас спасательным кругом в подобной ситуации. Во-первых, вы можете выполнять программу пошагово, строка за строкой. Во-вторых, вам предоставляется возможность анализировать значения переменных в любой момент выполнения программы.

Разница между командами StepInto и StepOver

Когда вы начинаете процесс отладки, появляется панель инструментов Debug. Из множества представленных на ней кнопок наиболее часто задействуются StepInto (четвертая справа в верхнем ряду) и StepOver(третья справа). В обоих случаях программа будет запущена на выполнение в пошаговом режиме, а в тексте программы выделяется та строка, которая сейчас будет выполнена.

Различия между командами StepInto и StepOver проявляются только тогда, когда в программе встречается вызов функции. Если выбрать команду StepInto, то отладчик войдет в функцию и начнет выполнять шаг за шагом все ее операторы. При выборе команды StepOver отладчик выполнит функцию как единое целое и перейдет к строке, следующей за вызовом функции. Эту команду удобно применять в тех случаях, когда в программе делается обращение к стандартной функции или созданной вами подпрограмме, которая уже была протестирована.

Давайте выполним пошаговую отладку нашей программы.



1 ... 11 12 13 [ 14 ] 15 16 17 ... 150

© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки.
Яндекс.Метрика