- •Глава 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
- •Список используемых источников
3Дополнительные операторы передачи управления
3.1Оператор break
Оператор прерывает выполнение не только оператора switch, но циклов. Управление передается следующему за циклом оператору.
Пример. Программа вычисляет значение гиперболического синуса вещественного аргумента х с заданной погрешностью eps с помощью разложения в бесконечный ряд.
sh х = x + х3/3! + х5/5! + х7/7! + ...
Вычисление заканчивается, когда абсолютная величина очередного члена ряда, прибавляемого к сумме, станет меньше заданной погрешности. В программе предусмотрено прерывание цикла с помощью оператора break , если ряд расходится.
const int MaxIter = 500; // ограничитель количества итераций
double x, eps;
cout « RUS("\nВведите аргумент и точность: ");
cin >> x >> eps;
bool flag = true; // признак успешного вычисления
double у = x, ch = x; // сумма и первый член ряда
for (int n = 0; fabs(ch) > eps; n++)
{
ch *= x * x /(2 * n + 2)/(2 * n + 3); // очередной член ряда
у += ch;
if (n > MaxIter){
cout << RUS("\nРяд расходится!");
flag = false; break;}
}
if (flag) cout << RUS("\nЗначение функции: ") <<у;
3.2Оператор continue
Оператор перехода к следующей итерации цикла. При его выполнении все операторы следующие за ним в теле цикла не выполняются, а управление передается на начало следующей итерации.
П ример:
for(int j=2; j<i; j++)
{
if(i%j) continue;
else
{dev=true; break;}
}
Если остаток от деления i на j не равен нулю, осуществляется продолжение цикла по оператору continue. Если остаток от деления равен нулю, выполняется выход из цикла по оператору break с установкой признака деления в логической переменной dev.
4Вложенные циклы
Разрешено и широко используется вложение рассмотренных выше циклов друг в друга. В этом случае границы циклов не должны пересекаться.
В инициализации внутреннего цикла for может быть определена переменная с таким же именем, что и переменная, определенная во внешнем цикле. Это определение остается действительным до конца внешнего цикла. Но, чтобы не было путаницы, лучше этого не делать. Тогда параметры вешнего цикла можно использовать в качестве переменных во внутреннем цикле, но менять их там нельзя.
Пример: программа нахождения простых чисел,
bool def = false;
for(int i=2; i<50; i++)
{
for(int j=2; j<i; j++)
{
if(i%j) continue;
else
{dev=true; break;}
}
if(!dev) cout<<i<<”\n”;
dev=false;
}
Программа организована в виде двух вложенных циклов таким образом, что осуществляется перебор и проверка остатка от деления пары чисел, первое из которых изменяется от 2 до 50 во внешнем цикле, а второе – от 2 до значения первого числа во внутреннем. Если остаток от деления не равен нулю, осуществляется продолжение внутреннего цикла по оператору continue. Если остаток от деления равен нулю, выполняется выход из внутреннего цикла по оператору break с установкой признака деления в логической переменной def. После выхода из внутреннего цикла производится анализ переменной def и вывод простого числа.
Домашнее Задание
Изучите теоретические сведения и подготовьте блок-схемы и текст программ по заданию на лабораторную работу. Блок-схемы и программы записываются в «черновом» варианте в лекционной тетради. Комментарии должны составлять не менее 10% от текста. Студенты, не выполнившие домашнего задания, не допускаются к выполнению лабораторной работы.