- •Глава 2 36
- •1 Задание 1 62
- •Лабораторная работа №1
- •Краткие теоретические сведения
- •1.1Создание консольного приложения
- •1.2Отладка программы
- •1.2.1Установка точек останова (Add breakpoint)
- •2.2Идентификаторы
- •2.3Ключевые слова
- •2.4Знаки операций
- •2.5Константы
- •2.6Комментарии
- •2.7.1Понятие типа данных
- •2.7.2Основные типы данных
- •2.7.3Целый тип (int).
- •2.7.4Символьный тип (char).
- •2.7.5Логический тип (bool).
- •2.7.6Вещественный тип (float, double и long double).
- •2.8Переменные
- •2.9Функции и объекты ввода/вывода
- •2.9.1Основные функции ввода/вывода в стиле с:
- •2.10Операции
- •2.10.2Операция определения размера sizeof
- •2.10.4Деление (/) и остаток от деления (%).
- •2.10.8Логические операции (&& и ||).
- •2.10.10 Условная операция (?:).
- •2.11Выражения
- •2.11.1Преобразование типов в выражении.
- •Задание к лабораторной работе №1
- •Контрольные вопросы к лабораторной работе №1
- •1.1Оператор «выражение»
- •1.2Операторы ветвления
- •1.2.1Условный оператор if... Else
- •1.2.2Об условиях в операторе if
- •1.2.3Оператор выбора switch
- •1.3Операторы передачи управления
- •1.3.1Оператор goto
- •1.3.2Оператор break
- •2 Тестирование программ
- •Домашнее Задание
- •Задание к лабораторной работе №2
- •1Задание 1
- •2Задание 2
- •Содержание отчета
- •2Операторы цикла
- •2.1Цикл с предусловием (while)
- •2.2Цикл с постусловием (do … while)
- •2.3Цикл с параметром for
- •3Дополнительные операторы передачи управления
- •3.1Оператор break
- •3.2Оператор continue
- •4Вложенные циклы
- •Домашнее Задание
- •Задание к лабораторной работе №3
- •1Задание 1
- •2Задание 2
- •Содержание отчета
- •Контрольные вопросы к лабораторной работе №3
- •4Программа пузырьковой сортировки
- •Домашнее Задание
- •Задание к лабораторной работе №4
- •Содержание отчета
- •Контрольные вопросы к лабораторной работе №4
- •0 Строка
- •1 Строка
- •5 Строка
- •2Ввод и вывод многомерных массивов
- •Домашнее Задание
- •Задание к лабораторной работе №5
- •4Ссылки
- •5Динамическое распределение памяти
- •5.1Использование стандартных функций malloc и free
- •5.2Использование операторов new и delete
- •Домашнее Задание
- •Задание к лабораторной работе № 6
- •Содержание отчета
- •Контрольные вопросы к лабораторной работе №6
- •Лабораторная работа №7 отладка программы краткие теоретические сведения
- •6Отладочные пункты меню
- •7Элементы отладки
- •7.1Контрольные точки
- •7.1.1Контрольные точки в исходном коде
- •7.1.2Адресные контрольные точки
- •7.1.3Контрольные точки данных
- •7.2Команда Run to Cursor
- •7.3Команда Pause
- •8Наблюдение за переменными
- •8.1Быстрый просмотр данных
- •9Инспектор отладки
- •9.1Инспекция локальных переменных
- •10Другие инструменты отладки
- •10.1Диалог Evaluate/Modify
- •10.2Окно cpu
- •10.3Стек вызовов
- •10.4Команда Go to Address
- •10.5Команда Program Reset
- •Задание на лабораторную работу №7
- •Контрольные вопросы к лабораторной работе №7
- •Приложение I
- •Приложение II Блоки схем алгоритмов согласно гост 19.002 – 80 и 19.003 – 80
- •Приложение III Оформление алгоритма программы в виде блок-схемы
- •Приложение IV Базовая программа для выполнения лабораторных работ
- •Приложение V
- •Приложение VI
- •Список используемых источников
Задание на лабораторную работу №7
Записать алгоритм своего второго задания из лабораторной работы № 5.
Написать программу своего второго задания из лабораторной работы № 5.
Просмотреть пошаговое исполнение программы.
Открыть окно списка наблюдаемых переменных и ввести в список необходимые переменные, которые будут просматриваться при пошаговом выполнении программы.
Провести пошаговое выполнение программы с просмотром переменных.
Установить 3 простые контрольные точки и провести выполнение программы.
Установить контрольную точку со счетчиком проходов в теле цикла и провести выполнение программы.
Контрольные вопросы к лабораторной работе №7
Как установить контрольную точку и какие виды контрольных точек Вы знаете ?
Какие виды наблюдения за переменными Вы знаете ? Охарактеризуйте их.
Если наблюдаемый объект – массив, как его лучше наблюдать ? При ответе на вопрос выполнить самостоятельное исследование способов наблюдения.
Как выполняется инспекция локальных переменных ?
Чем отличаются команды пошагового выполнения программы Step Over и Trace Into ?
Приложение I
Таблица I.1. Список ключевых слов C++
asm
|
else
|
new
|
this
|
auto
|
enum
|
operator
|
throw
|
bool
|
explicit
|
private
|
true
|
break
|
export
|
protected
|
try
|
case
|
extern
|
public
|
typedef
|
catch
|
false
|
register
|
typeid
|
char
|
float
|
reinterpret_cast
|
typename
|
class
|
for
|
return
|
union
|
const
|
friend
|
short
|
unsigned
|
const_cast
|
goto
|
signed
|
using
|
continue
|
if
|
sizeof
|
virtual
|
default
|
inline
|
static
|
void
|
delete
|
int
|
static_cast
|
volatile
|
do
|
long
|
struct
|
wchar_t
|
double
|
mutable
|
switch
|
while
|
dynamic_cast
|
namespace
|
template
|
|
Таблица I.2. Константы в языке C++
Тип константы |
Формат
|
Примеры
|
Целая
|
Десятичный: последовательность десятичных цифр, начинающаяся не с нуля, если это не число нуль Восьмеричный: нуль, за которым следуют восьмеричные цифры (0,1,2,3,4,5,6,7) Шестнадцатеричный: 0х или 0Х, за которым следуют шестнадцатеричные цифры (0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F)
|
8, 0, 199226
01, 020, 07155
0хА, 0xlB8, 0X00FF
|
Вещественная
|
Десятичный: [цифры]. [цифры] Экспоненциальный: [цифры][.][цифры]{Е||е}[+;-][цифры]
|
5.7, .001, 35. 0.2Е6, .11е-3, .5Е10
|
Символьная
|
Один или два символа, заключенных в апострофы
|
'А', 'ю', '*', 'db', '\0', '\n', '\012', '\0x7\0x7'
|
Строковая
|
Последовательность символов, заключенная в кавычки
|
"Это строка\n" |
Таблица I.3. Управляющие последовательности в языке C++
Изображение
|
Шестнадцатеричный код
|
Наименование
|
\а
|
7
|
Звуковой сигнал
|
\b
|
8
|
Возврат на шаг
|
\f
|
С
|
Перевод страницы (формата)
|
\n
|
А
|
Перевод строки
|
\r
|
D
|
Возврат каретки
|
\t
|
9
|
Горизонтальная табуляция
|
\v
|
В
|
Вертикальная табуляция
|
\\
|
5С
|
Обратная косая черта
|
\’
|
27
|
Апостроф
|
\"
|
22
|
Кавычка
|
\?
|
3F
|
Вопросительный знак
|
\0ddd
|
–
|
Восьмеричный код символа
|
\0xddd
|
ddd
|
Шестнадцатеричный код символа
|
Таблица I.4. Основные операции языка C++
Операция |
Краткое описание |
Унарные операции |
|
++ |
увеличение на 1 |
-- |
уменьшение на 1 |
Sizeof |
Размер |
~ |
поразрядное отрицание |
!
|
логическое отрицание |
-
|
арифметическое отрицание (унарный минус) |
+ |
унарный плюс |
& |
взятие адреса |
* |
разадресация |
new |
выделение памяти |
delete |
освобождение памяти |
(type) |
преобразование типа |
Бинарные и тернарная операции |
|
* |
умножение |
/ |
деление |
% |
остаток от деления |
+ |
сложение |
- |
вычитание |
<< |
сдвиг влево |
>> |
сдвиг вправо |
< |
меньше |
<= |
меньше или равно |
> |
больше |
>= |
больше или равно |
== |
равно |
!= |
не равно |
& |
поразрядная конъюнкция (И) |
^ |
поразрядное исключающее ИЛИ |
| |
поразрядная дизъюнкция (ИЛИ) |
&& |
логическое И |
|| |
логическое ИЛИ |
?: |
условная операция (тернарная) |
= |
присваивание |
*= |
умножение с присваиванием |
/= |
деление с присваиванием |
%= |
остаток от деления с присваиванием |
+= |
сложение с присваиванием |
-= |
вычитание с присваиванием |
<<= |
сдвиг влево с присваиванием |
>>= |
сдвиг вправо с присваиванием |
&= |
поразрядное И с присваиванием |
|= |
поразрядное ИЛИ с присваиванием |
^= |
поразрядное исключающее ИЛИ с присваиванием |
, |
последовательное вычисление |
Таблица I.5. Элементы спецификатора преобразования
Элемент |
Символ |
Аргумент |
Описание |
флаг |
- |
|
Выровнять вывод по левому краю поля. |
|
0 |
|
Заполнить свободные позиции нулями вместо пробелов. |
|
+ |
|
Всегда выводить знак числа. |
|
пробел |
|
Вывести пробел на месте знака, если число положительное. |
|
# |
|
Вывести 0 перед восьмеричным или 0х перед шестнадцатеричным значением. |
поле |
число |
|
Минимальная ширина поля вывода. |
точность |
число |
|
Для строк – максимальное число выводимых символов; для целых – минимальное число выводимых цифр; для вещественных – число цифр дробной части. |
размер |
h |
|
Аргумент – короткое целое. |
|
l |
|
Аргумент – длинное целое. |
|
L |
|
Аргумент имеет тип long double. |
символ типа |
d |
целое |
Форматировать как десятичное целое со знаком. |
|
i |
целое |
То же, что и d. |
|
о |
целое |
Форматировать как восьмеричное без знака. |
|
u |
целое |
Форматировать как десятичное без знака. |
|
х |
целое |
Форматировать как шестнадцатеричное в нижнем регистре. |
|
Х |
целое |
Форматировать как шестнадцатеричное в верхнем регистре. |
|
f |
вещественное |
Вещественное в форме [-]dddd.dddd. |
|
е |
вещественное |
Вещественное в форме [-]d.dddde[+|-]dd. |
|
Е |
вещественное |
То же, что и е, с заменой е на Е. |
|
g |
вещественное |
Использовать форму f или е в зависимости от величины числа и ширины поля. |
|
G |
вещественное |
То же, что и g – но форма f или Е. |
|
с |
символ |
Вывести одиночный символ. |
|
s |
строка |
Вывести строку. |
|
n |
указатель |
Аргумент – указатель на переменную типа int. В нее записывается количество выведенных к данному моменту символов. |
|
р |
указатель |
Вывести указатель в виде шестнадцатеричного числа ХХХХХХХХ. |