- •Ю.А Петров Программирование на языке высокого уровня
- •Часть 1
- •Введение
- •Задание
- •Комментарии
- •Идентификаторы
- •Ключевые слова
- •Константы
- •Управляющие последовательности
- •Строковые литералы
- •Константные выражения
- •Пунктуаторы
- •Операции
- •Задание на лабораторную работу 2 разработка программы линейной структуры Цель работы
- •Отчет по лабораторной работе должен содержать:
- •Задание
- •Замечания
- •Варианты заданий
- •Классификация ошибок
- •Ошибки, не обнаруженные компилятором
- •Ситуации, возникающие при неверных результатах
- •Отладка программы
- •Предупреждения
- •Первое сообщение об ошибке
- •Использование команд Find и Replace
- •Быстрое обнаружение ошибочных строк
- •Продолжение отладки
- •Использование встроенного отладчика
- •Разница между командами Step Into и Step Over
- •Дополнительные средства отладки
- •Работа с точками останова
- •Краткая характеристика объектов
- •Формат 1:
- •Стиль программирования
- •Задание на лабораторную работу 4 объекты и их характеристики Цель работы
- •В отчете по лабораторной работе следует представить:
- •5 Структурное программирование
- •Пример1
- •Пример 2
- •Задание на лабораторную работу 5 разработка программы со структурой «развилка» Цель работы
- •Задание:
- •Варианты задания
- •Задание на лабораторную работу 6 создание цикловых программ с фиксированным числом повторений Цель работы
- •Задание
- •Варианты задания
- •Задание на лабораторную работу 7 создание программ с итерационными циклами Цель работы
- •Задание
- •Варианты задания
- •Пояснения к выполнению лабораторной работы 7
- •6 Агрегаты данных
- •Структура
- •Объединения
- •Перечисления
- •Int array[3]; // Объявление определения;
- •Многомерные массивы
- •Вывод в файловый поток
- •Чтение из входного файлового потока
- •Чтение целой строки файлового ввода
- •Определение конца файла
- •Проверка ошибок при выполнении файловых операций
- •Закрытие файла
- •Управление открытием файла
- •Выполнение операций чтения и записи
- •Задание на ргз 1 использование структур данных при решении задач Цель работы
- •Задание
- •Варианты задания
- •7 Модульное программирование
- •Задание на ргз 2 использование модульного программирования при решении задач
- •Перемещаемые панели инструментов
- •Меню File
- •Меню Edit
- •Меню View
- •Меню Insert
- •Меню Project
- •Меню Build
- •Меню Tools
- •Меню Window
- •Список открытых окон
- •Меню Help
- •Приложение 2 Некоторые функции языка с
- •Используемая литература
- •Оглавление
- •5 Структурное программирование 53
Управляющие последовательности
Управляющие последовательности дают возможность управлять выводом обычных и некоторых, не имеющих графического аналога, символов.
Для представления управляющего кода ASCII – символами используется обратная наклонная черта (\) с восьмеричными или шестнадцатеричными числами. В этом случае длина строки составляет для восьмеричных кодов – 3 символа, для шестнадцатеричных кодов – любое число символов, при условии, что данное значение лежит в допустимом для типа данных char диапазоне. Большие значения ведут к появлению ошибки компиляции "Numeric constant too large" ("числовая константа слишком велика"). Например, восьмеричное число \777 больше максимально допустимого значения \377, и вызовет генерирование ошибки. Первое же невосьмеричное или нешестнадцатеричное значение, встреченное в восьмеричной или шестнадцатеричной управляющей последовательности, означает конец данной последовательности.
Примеры управляющих последовательностей приведены в талице 2.1.
Таблица 2.1 – Примеры управляющих последовательностей
Последовательность |
Значение |
Символ |
Выполняемая функция |
\a |
0x07 |
BEL |
Звуковой сигнал |
\b |
0x08 |
BS |
Забой (шаг назад) |
\f |
0x0C |
FF |
Прогон страницы |
\n |
0x0A |
LF |
Новая строка |
\r |
0x0D |
CR |
Возврат каретки |
\t |
0x09 |
HT |
Горизонтальная табуляция |
\v |
0x0B |
VT |
Вертикальная табуляция |
\\ |
0x5c |
\ |
Обратная наклонная черта |
\' |
0x27 |
' |
Одинарная кавычка (апостроф) |
\" |
0x22 |
" |
Двойная кавычка |
\? |
0x3F |
? |
Вопросительный знак |
\O |
Любое |
O = |
Строка до трех восьмеричных цифр |
\xH, \XH |
Любое |
H = |
Строка шестнадцатеричных цифр |
Строковые литералы
Строковые литералы, известные также как строковые константы, образуют специальную категорию констант, используемых для работы с фиксированными последовательностями символов. Строковый литерал есть тип данных array of char и класс памяти static, записываемый как последовательность произвольного количества символов, заключенных в двойные кавычки:
"This is literally a string!" /* "Это строковый литерал!" */
Нулевая (пустая) строка записывается как "". Если строковые литералы имеют большое количество символов, не умещающихся на одной строке, то можно с помощью символа наклонной черты влево (\) переносить символы строкового литерала на следующую строку, т.е. выполнить «склеивание» этих строк. В этом случае символ наклонной черты влево (обратный слеш) и символ новой строки (Enter) пpи синтаксическом анализе отбрасываются, что позволяет рассматривать две части строкового литерала как единое целое, Например:
"Borland \
International"
будет рассматриваться, как
"Borland International".
Символы внутри двойных кавычек могут включать управляющие последовательности. Например,
"\t\t\"Имя \\\\tАдрес\n\n
распечатается функцией printf следующим образом:
"Имя "\ Адрес
Слову "Имя" будет предшествовать два символа табуляции; слову "Адрес" предшествует один символ табуляции. Строка заканчивается двумя символами новой строки. Последовательность \" обеспечивает вывод внутренних кавычек.
Строковый литерал хранится в памяти как заданная последовательность символов, плюс конечный пустой символ ('\0'), означающий конец строки. Нулевая строка хранится в виде одного символа '\0'.
Не следует путать '\0', '0' и "0". Первое – символьный литерал, соответствующий символу с кодом 0. Второе – такой же литерал, но обозначающий цифру 0, ее код в ASCII-кодировке 48. Третий – это строковый литерал, содержащий два символа, цифру 0 и нуль-терминатор '\0'.
На фазе лексического анализа соседние строковые литералы, разделенные только пробелами, конкатенируются (объединяются).
Для расширения строковой константы за границы строки в качестве символа продолжения можно использовать обратную наклонную черту (\):
put("В действительности \
это однострочная строка символов");