
- •История развития языков программирования.
- •Характерные черты языков программирования.
- •Среды программирования и трансляторы.
- •Препроцессор, директивы препроцессора.
- •17. Указатели и массивы.
- •15. Операции над указателями.
- •16. Последовательность выполнения операций над указателями. Пример. Последовательность выполнения операций над указателями
- •18. Отладка программ, локализация ошибок, типы ошибок.
- •22. Методы отладки по.
- •19. Ошибки выполнения, способы их проявления.
- •20. Языки с защищенным и с незащищенным синтаксисом. Примеры.
- •21. Разновидности ошибок выполнения программ.
- •23. Метод индукции при отладке по.
- •24. Метод дедукции при отладке по.
- •25. Метод ручного тестирования при отладке по.
- •26. Возможности интегрированных средств отладки.
- •27. Важные особенности процесса отладки по.
- •28. Представление чисел в формате с фиксированной и с плавающей запятой.
Препроцессор, директивы препроцессора.
В языке Си++ имеется несколько операторов, которые начинаются со знака #: #include, #define, #undef, #ifdef, #else, #if, #pragma.
Все они обрабатываются так называемым препроцессором.
Иногда препроцессор называют макропроцессором, поскольку в нем определяются макросы. Директивы препроцессора начинаются со знака #, который должен быть первым символом в строке после пробелов.
Препроцессорная обработка
-Все системно-независимые обозначения перекодируются в стандартные коды.
-Каждая пара символов / и «конец строки» убирается, и тем самым след строка исходного файла присоединяется к строке, в которой находится эта пара символов.
-В тексте распознаются директивы, а каждый комментарий записывается одним символом простого промежутка.
-Выполняются директивы препроцессора и осуществляются макроподстановки.
-Esc-последовательность в символьных константах и строках заменяется на их эквиваленты, т.е. на соответствующие числовые коды.
-Конкатенация смежных символьных строк(сложение в одну строку).
Для управления препроцессором используются директивы. Каждая директива помещается на отдельной строке и начинается с символа #.
# define #if #else # #include #undef #ifdef #ifndef #endif #error
Включение текстов из файлов.
# include <имя_файла>
Препроцессор разыскивает файл в стандартных системных каталогах
# include “имя_файла”
Просматривает текущий каталог пользователя затем обращается к системным каталогам.
Связь между модулями различна в разных файлах, реализуются внешние объекты. Описание внешних объектов помещается во внешнем файле, который с помощью директивы include подключается во все модули, в которых внешние объекты необходимы. Часто в тот же файл включают директиву подключения библиотеки.
Включение текстов из файлов в программу на языке С++.
#include <имя_файла>
# include “имя_файла”
<..> Препроцессор разыскивает файл в стандартных системных каталогах.
“…” первоначально препроцессор просматривает текущий каталог пользователя, а затем обращается к стандартным каталогам.
#include<iostream.h> библиотека ввода-вывода
.h head заголовочный.
В заголовочном, кроме стандартных библиотек, могут быть помещены любые другие файлы. Заголовочные файлы являются эффективным средством при модульной разработке крупных программ. Связь между модулями размещенная в разных файлах реализуется через внешние объекты, которые являются глобальными для всех или нескольких модулей.
Описания таких внешних объектов (переменных, массивов, структур и т.п.) и прототипы функций помещаются в одном файле, который с помощью директив #include включается во все модули, где необходимы внешние объекты. В тот же файл можно включить и директиву подключения файла с описаниями библиотеки функций ввода-вывода.
Ниже мы приводим утвержденные стандартом языка С/C++ зарезервированные имена этих файлов:
ctype.h - преобразование и проверка символов;
errno.h - проверка ошибок;
float.h -работа с вещественными числами;
math.h - математические вычисления;
stdio.h - средства ввода/вывода;
string.h - работа со строками символов;
Часто в программе, использующей несколько нестандартных функций, каждую из них помещают в отдельном файле. Тогда текст программы может состоять только из одних препроцессорных команд.
Например: #include"main.c" #include"count.c" #include"estimate.c" #include"compare.c" #include"gauss.c" Вы видите, что в текст программы на языке C/C++ могут входить имена файлов и соответствующих им функций с расширением .c. За счет этого исходный текст программы может быть настолько сжат, что в нем могут быть только одни препроцессорные директивы только такого вида, как указано в нашем примере выше.
10. Структура программы на языке С++.
Структура программы на С++
-директивы препроцессора; #
-одна или более функций;
-заголовок и тело главной функции.
t_main..
{} операторные скобки.
Программирование – область памяти, которая имеет имя и служит для хранения какого-либо значения переменной.
Тип переменной характеризует, какой объект памяти нужно выделить для её хранения и какие действия можно над ней осуществлять. Прежде чем программа сможет выполнять какие-либо действия, ей необходимо сообщить с какими переменными и какого типа она будет работать. Такого рода указание в программе называется объявлением. Функции программ содержат совокупность инструкций, действий которые должен выполнять компьютер. После имени функции передаются её аргументы. Операторы отличаются от функции только формой записи.
Константы, в отличие от переменных, своё значение не меняют, но точно также являются наименованием области памяти.
Библиотека – набор функций, которые может вызывать программа. Идентификатор – набор цифр и некоторых символов которые служат именами переменных, функций и других элементов языка. Должен начинаться с буквы ограниченной символом подчеркивания. Не может совпадать с ключевыми словами. Строчные и прописные буквы считаются разными.