Объектно-ориентированное программирование. Лектор – к.т.н., доцент Петренко Т.Г. Лабораторные работы. 2012 -2013 уч.год.
Срок сдачи студентами лабораторной работы – последняя неделя сентября 2012 г.
Приложение А
Таблица 1 Спецификации вводавывода (#include <stdio.h>) в языке С++ и специальные символьные константы
|
% |
|
Тип спецификации |
|
\ |
Назначение специальной |
||||
|
|
|
преобразования |
|
|
|
символьной константы |
|||
|
1 |
|
2 |
|
|
3 |
4 |
|
||
|
%c |
|
Char |
|
|
\n |
Новая строка |
|||
|
%s |
|
String |
|
|
\t |
Горизонтальная табуляция |
|||
|
%d |
|
Int |
|
|
\v |
Вертикальная табуляция |
|||
|
%o |
|
Int (oct) |
|
|
\b |
Возврат на символ |
|||
|
%u |
|
Unsigned int |
|
|
\r |
Возврат в начало строки |
|||
|
%x |
|
Int (hex) |
|
|
\f |
Прогон бумаги |
|||
|
%ld |
|
Long (dec) |
|
|
\\ |
Обратный слэш |
|||
|
%lo |
|
Long (oct) |
|
|
\' |
Одинарная кавычка |
|||
|
%lu |
|
Unsigned long |
|
|
\" |
Двойная кавычка |
|||
|
%lx |
|
Long (hex) |
|
|
\a |
Звуковой сигнал |
|||
|
%f |
|
Float/double (с фикс. точкой) |
|
\? |
Знак вопроса |
||||
|
%e |
|
Float/double (в эксп. форме) |
|
\ddd |
Код символа в восьмеричной |
||||
|
|
|
|
|
|
|
|
системе счисления |
||
|
%g |
|
Float/double (в зав. от знач.) |
|
\xhhh |
Код символа в шестнадцатеричной |
||||
|
|
|
|
|
|
|
|
системе счисления |
||
|
%lf |
|
Long float (с фикс. точкой) |
|
|
|
|
|
||
|
%le |
|
Long float (в эксп. форме) |
|
|
|
|
|
||
|
%lg |
|
Long float (в зав. от знач.) |
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
Приложение Б |
|
|
|
Таблица 1 Приоритетность и назначение операций языка С++ |
||||||||
|
|
|
|
|
|
|
||||
|
Операция |
|
Назначение |
|
Формальная запись |
|||||
|
|
1 |
|
|
2 |
|
|
3 |
|
|
:: |
|
|
|
|
Разрешение области |
|
Class_name::member |
|
||
|
|
|
|
|
видимости |
|
|
|
|
|
:: |
|
|
|
|
Глобальное |
|
|
|
::name |
|
. |
|
|
|
|
Выбор члена |
|
Object.member |
|
||
-> |
|
|
|
|
Выбор члена |
|
Pointer->member |
|
||
[ ] |
|
|
|
|
Индексация |
|
|
|
Pointer[expr] |
|
( ) |
|
|
|
|
Вызов функции |
|
Expr(expr_list) |
|
||
( ) |
|
|
|
|
Построение значения |
|
Type(expr_list) |
|
||
sizeof |
|
|
|
Размер объекта |
|
Sizeof expr |
|
|||
sizeof |
|
|
|
Размер типа |
|
|
|
Sizeof (type) |
|
|
6
Объектно-ориентированное программирование. Лектор – к.т.н., доцент Петренко Т.Г. Лабораторные работы. 2012 -2013 уч.год.
Срок сдачи студентами лабораторной работы – последняя неделя сентября 2012 г.
|
|
Продолжение таблицы 1 |
1 |
2 |
3 |
++ |
Приращение после |
Lvalue++ |
++ |
Приращение до |
++lvalue |
-- |
Уменьшение после |
lvalue-- |
-- |
Уменьшение до |
--lvalue |
~ |
Дополнение |
~expr |
! |
Не |
!expr |
- |
Унарный минус |
-expr |
+ |
Унарный плюс |
+expr |
& |
Адрес объекта |
&lvalue |
* |
Разыменование |
*expr |
new |
Создание (размещение) |
new type |
delete |
Уничтожение |
delete pointer |
delete[ ] |
(освобождение) |
delete[ ] pointer |
Уничтожение массива |
||
( ) |
Приведение |
(type) expr |
|
(преобразование типа) |
|
.* |
Выбор члена |
Object.pointer-to-member |
->* |
Выбор члена |
Pointer-> pointer-to- |
|
|
member |
* |
Умножение |
Expr * expr |
/ |
Деление |
Expr / expr |
% |
Взятие модуля |
Expr % expr |
+ |
Сложение |
Expr + expr |
– |
Вычитание |
Expr – expr |
<< |
Сдвиг битов влево |
Expr << expr |
>> |
Сдвиг битов вправо |
Expr >> expr |
< |
Меньше |
Expr < expr |
<= |
Меньше или равно |
Expr <= expr |
> |
Больше |
Expr > expr |
>= |
Больше или равно |
Expr >= expr |
== |
Равно |
Expr == expr |
!= |
Не равно |
Expr != expr |
& |
Побитовое И |
Expr & expr |
^ |
Побитовое исключающее |
Expr ^ expr |
|
ИЛИ |
|
| |
Побитовое включающее |
Expr | expr |
|
ИЛИ |
|
&& |
Логическое И |
Expr && expr |
|| |
Логическое включающее |
Expr || expr |
|
ИЛИ |
|
? : |
Арифметический if |
Expr ? expr : expr |
7
Объектно-ориентированное программирование. Лектор – к.т.н., доцент Петренко Т.Г. Лабораторные работы. 2012 -2013 уч.год.
Срок сдачи студентами лабораторной работы – последняя неделя сентября 2012 г.
|
|
Продолжение таблицы 1 |
1 |
2 |
3 |
= |
Простое присваивание |
Lvalue=expr |
*= |
Умножить и присвоить |
Lvalue*=expr |
/= |
Разделить и присвоить |
Lvalue/=expr |
%= |
Взять по модулю и |
Lvalue%=expr |
+= |
присвоить |
Lvalue+=expr |
Сложить и присвоить |
||
–= |
Вычесть и присвоить |
Lvalue–=expr |
<<= |
Сдвинуть влево и |
Lvalue<<=expr |
>>= |
присвоить |
Lvalue>>=expr |
Сдвинуть вправо и |
||
&= |
присвоить |
Lvalue&=expr |
И - побитовое и |
||
|= |
присвоить |
Lvalue|=expr |
Включающее ИЛИ - |
||
^= |
побитовое и присвоить |
Lvalue^=expr |
Исключающее ИЛИ- |
||
|
побитовое и присвоить |
|
, |
Операция запятая |
Expr,expr |
Class_name — имя класса;
Member — имя члена;
Object — выражение, дающее в результате объект класса; Pointer — выражение, дающее в результате указатель; Expr — выражение;
Lvalue — выражение, обозначающее не константный объект; Type — произвольное имя типа ( в скобках - без ограничений).
Унарные операции и операции присваивания - правоассоциативны, все остальные - левоассоциативны.
Приложение В
Таблица 1 Назначение и быстрый вызов опций отладчика Visual C++
Опция отладчика |
|
Назначение |
Комбинация клавиш |
||
1 |
|
|
2 |
|
3 |
Start Debugging |
|
Запуск |
отладчика |
F5 |
|
|
и/или |
выполнение |
|
||
|
программы до контрольной |
|
|||
|
точки или конца программы |
|
|||
Restart* |
|
Запуск |
программы в |
CTRL+SHIFT+F5 |
|
|
уже |
выбранном |
режиме |
|
|
|
отладки, но сначала |
|
|
||
Breakpoints |
|
Переход |
в |
окно |
ALT+F9 |
|
Breakpoints для установки и |
|
|||
|
редактирования |
точек |
|
||
|
прерывания |
|
|
|
|
Break all |
|
Снять |
все |
точки |
CTRL+ ALT+Break |
|
прерывания |
|
|
|
|
|
|
|
|
|
8 |
Объектно-ориентированное программирование. Лектор – к.т.н., доцент Петренко Т.Г. Лабораторные работы. 2012 -2013 уч.год.
Срок сдачи студентами лабораторной работы – последняя неделя сентября 2012 г.
|
|
|
|
|
|
|
Продолжение таблицы 1 |
|
1 |
|
|
|
2 |
|
|
|
3 |
Apply Code Changes, |
Сохранить |
изменения |
|
ALT+F10 |
||||
Edit and Continue* |
кода, сделанные в процессе |
|
|
|||||
|
отладки |
|
|
|
|
|
|
|
Show Next Statement |
Показать |
|
(окно |
|
ALT+NUM* |
|||
|
Variables) |
|
|
следующий |
|
|
||
|
оператор |
|
программного |
|
|
|||
|
кода или оператор в окне |
|
|
|||||
|
дизассемблера |
|
|
|
|
|
||
Step Into* |
Запуск |
|
|
отладчика |
|
F11 |
||
|
и/или |
|
|
выполнение |
|
|
||
|
программы |
|
в |
пошаговом |
|
|
||
|
режиме с входом в код |
|
|
|||||
|
функций |
|
|
|
|
|
|
|
Step Over* |
Запуск |
|
|
отладчика |
|
F10 |
||
|
и/или |
|
|
выполнение |
|
|
||
|
программы |
|
в |
пошаговом |
|
|
||
|
режиме без входа в код |
|
|
|||||
|
функций |
|
|
|
|
|
|
|
Step Out* |
Быстрый |
возврат |
в |
|
SHIFT+F11 |
|||
|
точку вызова |
из |
текущей |
|
|
|||
|
функции |
|
|
|
|
|
|
|
Run To Cursor* |
Запуск |
и |
выполнение |
|
CTRL+F10 |
|||
|
программы |
|
до |
позиции |
|
|
||
|
курсора |
|
|
|
|
|
|
|
Окно Quick Watch* |
Открытие |
окна Quick |
|
SHIFT+F9 |
||||
|
Watch для оценки значения |
|
|
|||||
|
переменной |
|
|
|
|
|
|
|
Окно Watch* |
Открытие |
окна Watch |
|
ALT+3 |
||||
|
для отображения |
имен |
и |
|
|
|||
|
значений |
переменных |
и |
|
|
|||
|
выражений |
|
|
|
|
|
|
|
Окно Trace* |
Запуск |
|
|
отладчика |
|
ALT+8 |
||
|
делает окно редактора кода |
|
|
|||||
|
окном |
|
|
трассировки |
|
|
||
|
(Disassembly) |
|
|
|
|
|
||
Окно Locals * |
Информация |
|
о |
|
ALT+4 |
|||
|
переменных |
текущего |
и |
|
|
|||
|
предыдущего операторов; |
о |
|
|
||||
|
значениях, |
|
|
|
которые |
|
|
|
|
возвращаются |
функциями |
|
|
||||
|
(Auto), |
о |
|
локальных |
|
|
||
|
переменных |
|
|
текущей |
|
|
||
|
функции (Locals) и об |
|
|
|||||
|
объекте, |
|
на |
|
который |
|
|
|
|
указывает this (This) |
|
|
|
||||
|
|
|
|
|
|
|
9 |
|
Объектно-ориентированное программирование. Лектор – к.т.н., доцент Петренко Т.Г. Лабораторные работы. 2012 -2013 уч.год.
Срок сдачи студентами лабораторной работы – последняя неделя сентября 2012 г.
|
|
|
|
|
Продолжение таблицы 1 |
|
|
1 |
|
2 |
|
|
3 |
Окно Registers* |
Отображение |
|
|
ALT+5 |
||
|
|
содержимого |
|
регистров |
|
|
|
|
общего назначения CPU |
|
|
||
Окно Memory* |
Отображение |
|
|
ALT+6 |
||
|
|
содержимого |
|
памяти |
|
|
|
|
программы |
|
|
|
|
Окно Call Stack* |
Показывает |
стек |
|
ALT+7 |
||
|
|
функций, вызванных, но не |
|
|
||
|
|
возвративших управление |
|
|
||
Окно Debug Output |
Информация |
о |
|
ALT+2 |
||
|
|
состоянии |
|
процесса |
|
|
|
|
построения программы |
|
|
||
Toggle Breakpoint |
Установить |
точку |
|
F9 |
||
|
|
прерывания |
в |
позицию |
|
|
|
|
курсора |
|
|
|
|
Clear Breakpoint |
Удалить |
все точки |
|
CTRL+SHIFT+F9 |
||
|
|
прерывания |
|
|
|
|
New |
Breakpoints-> |
Информация |
об |
|
CTRL+B |
|
Break at Function… |
установленных |
|
точках |
|
|
|
|
|
прерывания |
|
|
|
|
Stop Debugging* |
Завершение отладки |
|
SHIFT+F5 |
|||
Примечание:
1.Символом “звездочка” (*) отмечены опции, которые доступны и через значки панели инструментов Debug.
2.Дополнительная информация о работе отладчика может быть получена с помощью меню Help.
3.Наблюдение за значениями переменных в окне Watch может быть выполнено в различных форматах. Форматирующий символ вводится после имени переменной через запятую (десятичное целое со знаком – d,i; десятичное целое без знака - u; восмеричное целое без знака - o; шестнадцатеричное целое – x,X; вещественное с фиксированной точкой - f; вещественное с плавающей точкой - e; вещественное с фиксированной или с плавающей точкой, какое короче- g; символ - c; строка - s).
4.При отладке в случае ошибочного нажатия Step Into вместо Step Over (при попадании в стандартную функцию) выберите Step Out или нажмите Shift+F11.
5.Настройки отладчика выполняются в подпункте Debugging подпункта Options пункта Tools основного меню среды.
10
