Работа в интегрированной среде. Приемы отладки программ.
Работа в интегрированной среде. Приемы отладки программ.
Методичка
http://h-l-l.ru/publ/29-1-0-105
Отладка - это процесс поиска и исправления ошибок в программе, препятствующих корректной работе программы.
Существует три основных типа ошибок: ошибки этапа компиляции, ошибки этапа выполнения и логические ошибки.
Ошибки этапа компиляции или синтаксические ошибки происходят, когда ваш исходный код нарушает правила синтаксиса. Она не может скомпилировать вашу программу, пока она не будет содержать допустимые операторы. Когда компилятор встречает оператор, который он не может распознать, соответствующий файл выводится в окне редактирования, курсор позиционируется на то место, которое не понял компилятор, и выводится сообщение об ошибке. Наиболее общей причиной ошибок этапа компиляции являются ошибки набора (опечатки), пропущенные точки с запятой, ссылки на неописанные переменные, передача неверного числа (или типа) параметров процедуры или функции и присваивание переменной значений неверного типа. После исправления ошибки вы можете выполнить компиляцию заново. После устранения в программе всех синтаксических ошибок и ее успешной компиляции программа будет готова к выполнению и поиску ошибок этапа выполнения и логических ошибок.
Ошибки этапа выполнения или семантические ошибки происходят, когда вы компилируете полную программу, которая при ее выполнении делает что-то недопустимое. То есть, программа содержит допустимые операторы, но при выполнении операторов что-то происходит неверно. Например, ваша программа может пытаться открыть для ввода несуществующий файл или выполнить деление на ноль.
Логические ошибки - это ошибки проектирования и реализации программы. То есть, ваши операторы допустимы и что-то делают, но не то, что вы предполагали. Эти ошибки часто трудно отследить, поскольку программа не может найти их автоматически, как синтаксические и семантические ошибки. К счастью, IDE включает в себя средства отладки, помогающие вам найти логические ошибки. Логические ошибки приводят к некорректному или непредвиденному значению переменных, неправильному виду графических изображений или невыполнению кода, когда это ожидается. В остальной части этой главы обсуждаются методы отслеживания этих логических ошибок.
Отладка программы
C++ Builder имеет мощный отладчик программ, помогающий исправлять ошибки программирования. Однако для простых консольных приложений достаточно иметь минимальные сведения о нем.
Минимальные правила редактирования текста программы.
Правила совпадают с правилами для любого текстового редактора, например, Word. Особенно эффективно использование операций с текстовыми блоками: Сut – вырезать выделенный блок (Ctrl+X), Copy – копировать выделенный блок (Ctrl+C), Paste – вставить выделенный блок (Ctrl+V). При этом поддерживаются комбинации клавиш Ctrl+Ins – копировать, Shift+Ins – вставить.
Прерывание выполнения программы.
Иногда программа в каком-либо месте выполнения ведет себя непредсказуемо, например, требует введения дополнительных данных, не заканчивается, где надо или вовсе не заканчивается. Тогда ее можно прервать нажатием комбинации клавиш Ctrl+Break или переключиться в окно исходного кода и нажать Ctrl+F2.
Оператор присваивания. Префиксная и постфиксная формы.
Методичка
http://cppstudio.com/post/279/
https://msdn.microsoft.com/ru-ru/library/5bk6ya5x.aspx
Инкремент - это оператор (++), который увеличивает число на 1.
Декремент - это оператор (--), который уменьшает число на 1.
Постфиксный - это означает то, что сначала над операндом (переменной) делаются какие-то операции и только после всех этих операций, действует оператор инкремента или декремента. То есть, если у нас такая строчка: A = 5 * B--;, то это будет читаться так: умножить 5 на B и присвоить полученный результат переменной A, после чего уменьшить переменную B на единицу.
Префиксный - это противоположность постфиксному. Сначала оператор инкремента или декремента увеличивает, или уменьшает операнд (переменную) и только после этого над ним производятся остальные операции, если они есть. То есть, если у нас такая строчка: A = 5 * --B;, то это будет читаться так: уменьшить значение переменной B на единицу, после чего умножить 5 на B (а в это время в переменной B уже будет хранится значение, которое на единицу меньше изначального) и присвоить результат переменной A.
Циклические операторы.
Методичка
Типы переменных и констант
http://firstdev.org/post/programmirovanie/c/peremennie-konstanti-tipi-dannih-operacii-v-c/
9)Массивы. Описание, приемы работы с массивами.
Методичка
http://cppstudio.com/post/389/
Строки. Работа со строками
Тетрадь
http://cppstudio.com/post/437/
Методичка
Методичка
Классы. Инкапсуляция
Тетрадь
Инкапсуляция представляет собой механизм, который связывает вместе код и данные и который хранит их от внешнего воздействия и от неправильного использования. Более того, именно инкапсуляция позволяет создавать объект. Попросту говоря, объект представляет собой логическое целое, включающее в себя данные и код для работы с этими данными. Мы можем определить часть кода и данных как собственность объекта, которая недоступна извне. На этом пути объект обеспечивает существенную защиту против случайной модификации или некорректного использования таких частных (private) членов объекта.
Во всех случаях объект представляет собой переменную, тип которой определяется пользователем. На первый взгляд может показаться странным представлять себе объект, который соединяет вместе и код и данные, как переменную. Тем не менее в объектном программировании дело обстоит именно так. Когда определяется объект, неявным образом создается новый тип переменной.
Классы. Полиморфизм.
Тетрадь
Объектно-ориентированные языки программирования поддерживают полиморфизм, который характеризуется следующей фразой: «один интерфейс — множество методов». Попросту говоря, полиморфизм представляет собой атрибут, который позволяет использовать один и тот же интерфейс при реализации целого класса различных действий. Выбор того, какое именно действие будет совершено, определяется конкретной ситуацией. Проиллюстрировать понятие полиморфизма можно на примере регулятора температуры. Неважно, каким типом обогревательного прибора отапливается дом (с использованием газа, масла, электричества и т.д.). Во всех случаях регулятор температуры работает одинаково. Он является интерфейсом, который не зависит от нагревательного прибора (метода), который используется. Просто-напросто, если надо иметь температуру 20 градусов по Цельсию, на регуляторе температуры задается эта величина. Неважно, какой нагревательный прибор фактически обеспечивает нагрев.
Тот же самый принцип может быть применен к программированию. Например, рассмотрим случай программы, которая определяет три различных типа списков. Один из них используется для целых чисел, другой — для символов и третий — для значений с плавающей запятой. Благодаря полиморфизму можно создать два набора функций, имеющих одинаковое имя push() (поместить) и рор() (извлечь) — по одной для каждого типа данных. Общая концепция (интерфейс) заключается в том, чтобы вставлять и извлекать данные в список и из списка. Функции определяют специфические способы (методы), с помощью которых эти операции выполняются для каждого типа данных. Когда данные вставляются в список, автоматически вызывается та версия функции push(), которая соответствует типу обрабатываемых данных.
Полиморфизм помогает уменьшить сложность программы, позволяя использовать один и тот же интерфейс для задания целого класса действий. Задача выбора специфического действия (то есть метода) в зависимости от конкретной ситуации возлагается на компилятор. Программисту нет необходимости делать такой выбор вручную. Требуется только запомнить и использовать общий интерфейс.
Первые объектно-ориентированные языки программирования были интерпретаторами, поэтому полиморфизм поддерживался в режиме времени выполнения. Однако поскольку С++ представляет собой компилятор, то полиморфизм поддерживается как в режиме времени выполнения, так и на этапе компиляции.
Классы. Наследование
Тетрадь
Наследование представляет собой процесс, благодаря которому один объект может наследовать, приобретать свойства от другого объекта. Это свойство поддерживает концепцию классификации, чем и обусловливается его важность. Эта концепция лежит в основе классификации знаний. Например, красное яблоко представляет собой часть класса яблоко, который, в свою очередь, представляет собой часть класса фрукт, который в свою очередь входит в больший класс продукты питания. Без использования классификации каждый объект должен был бы определять все свои характеристики явным образом. На основе классификации объект нуждается только в определении таких качеств, которые отличают его от других объектов этого класса. Благодаря механизму наследования объект может характеризоваться в рамках классификации общего и частного.
Структуры данных.
http://веб-информ.рф/C++/index-14.html
22) Препроцессор языка С++
http://cppstudio.com/post/5396/
Объединения.
http://www.c-cpp.ru/books/obedineniya
24) Классы памяти в c++
http://citforum.ru/programming/cpp_march/cpp_022.shtml
25) Файлы. Работа с файлами на языке С++
http://comp-science.narod.ru/Progr/file_c.htm
Тетрадь
26) Графический режим работы на языке С++
Тетрадь
http://wladm.narod.ru/Borland/graphicksborland.html
Работа в интегрированной среде. Приемы отладки программ.
Методичка
http://h-l-l.ru/publ/29-1-0-105
Отладка - это процесс поиска и исправления ошибок в программе, препятствующих корректной работе программы.
Существует три основных типа ошибок: ошибки этапа компиляции, ошибки этапа выполнения и логические ошибки.
Ошибки этапа компиляции или синтаксические ошибки происходят, когда ваш исходный код нарушает правила синтаксиса. Она не может скомпилировать вашу программу, пока она не будет содержать допустимые операторы. Когда компилятор встречает оператор, который он не может распознать, соответствующий файл выводится в окне редактирования, курсор позиционируется на то место, которое не понял компилятор, и выводится сообщение об ошибке. Наиболее общей причиной ошибок этапа компиляции являются ошибки набора (опечатки), пропущенные точки с запятой, ссылки на неописанные переменные, передача неверного числа (или типа) параметров процедуры или функции и присваивание переменной значений неверного типа. После исправления ошибки вы можете выполнить компиляцию заново. После устранения в программе всех синтаксических ошибок и ее успешной компиляции программа будет готова к выполнению и поиску ошибок этапа выполнения и логических ошибок.
Ошибки этапа выполнения или семантические ошибки происходят, когда вы компилируете полную программу, которая при ее выполнении делает что-то недопустимое. То есть, программа содержит допустимые операторы, но при выполнении операторов что-то происходит неверно. Например, ваша программа может пытаться открыть для ввода несуществующий файл или выполнить деление на ноль.
Логические ошибки - это ошибки проектирования и реализации программы. То есть, ваши операторы допустимы и что-то делают, но не то, что вы предполагали. Эти ошибки часто трудно отследить, поскольку программа не может найти их автоматически, как синтаксические и семантические ошибки. К счастью, IDE включает в себя средства отладки, помогающие вам найти логические ошибки. Логические ошибки приводят к некорректному или непредвиденному значению переменных, неправильному виду графических изображений или невыполнению кода, когда это ожидается. В остальной части этой главы обсуждаются методы отслеживания этих логических ошибок.
Отладка программы
C++ Builder имеет мощный отладчик программ, помогающий исправлять ошибки программирования. Однако для простых консольных приложений достаточно иметь минимальные сведения о нем.