
- •Красноярск
- •Федеральное агентство по образованию гоу впо «Сибирский государственный технологический университет»
- •220301 Автоматизация технологических процессов и производств,
- •230201 Информационные системы и технологии,
- •230105 Программное обеспечение вычислительной техники и автоматизированных систем всех форм обучения Красноярск
- •Содержание
- •Введение
- •1 Состав языка
- •1.1 Алфавит языка
- •1.2 Идентификаторы
- •1.3 Ключевые слова
- •1.4 Знаки операций
- •1.5 Константы
- •1.6 Комментарии
- •2.1 Концепция типа данных
- •2.2 Основные типы данных
- •3 Структура программы
- •4 Ввод/вывод
- •5 Переменные и выражения
- •5.1 Переменные
- •5.2 Операции
- •5.3 Выражения
- •6 Базовые конструкции структурного программирования
- •6.1 Оператор «выражение»
- •6.1.1 Задачи для решения на тему «линейные алгоритмы»
- •6.2 Операторы ветвления
- •6.2.1 Условный оператор if
- •6.2.2 Оператор switch
- •6.2.3 Задачи для решения на тему «условные алгоритмы»
- •6.3 Операторы цикла
- •6.3.1 Цикл с предусловием (while)
- •6.3.2 Цикл с постусловием (do while)
- •6.3.3 Цикл с параметром (for)
- •6.3.4 Задачи для решения на тему «сочетание цикла и разветвления»
- •6.4 Операторы передачи управления
- •6.4.1 Оператор goto
- •6.4.2 Оператор break
- •6.4.3 Оператор continue
- •6.4.4 Оператор return
- •6.4.5 Задачи для решения на тему «вложенные циклы (вычисление суммы ряда)»
- •7 Указатели и массивы
- •7.1 Указатели
- •7.1.1 Инициализация указателей
- •7.1.2 Операции с указателями
- •7.2 Ссылки
- •7.3 Массивы
- •7.3.1 Задачи для решения на тему «одномерные массивы»
- •7.3.2 Задачи для решения на тему «двумерные массивы»
- •7.4 Строки
- •7.4.1 Функции стандартной библиотеки
- •7.4.2 Задачи для решения на тему «строки»
- •8.1 Переименование типов (typedef)
- •8.2 Перечисления (enum)
- •8.3 Структуры (struct)
- •8.4 Битовые поля
- •8.5 Задачи для решения на тему «структуры»
- •9 Функции
- •9.1 Объявление и определение функций
- •9.2 Глобальные переменные
- •9.3 Возвращаемое значение
- •9.4 Параметры функции
- •9.5 Передача массивов в качестве параметров
- •9.6 Параметры со значениями по умолчанию
- •9.7 Функции с переменным числом параметров
- •9.8 Рекурсивные функции
- •9.9 Задачи для решения на тему «функции»
- •10 Директивы препроцессора
- •10.1 Директива #include
- •10.2 Директива #define
- •11 Динамические структуры данных
- •11.1 Линейные списки
- •11.2 Стеки
- •11.3 Очереди
- •11.4 Бинарные деревья
- •11.5 Задачи на тему «динамические структуры»
- •Задание на курсовую работу
- •Библиографический список
- •660049, Красноярск, пр. Мира, 82
6.3.4 Задачи для решения на тему «сочетание цикла и разветвления»
Протабулировать кусочную функцию F на интервале Xstart до Xfinish с шагом dX, где a,b,c, Xstart, Xfinish, dX – действительные числа (вводятся с клавиатуры).
Вариант 1
|
Вариант 2
|
Вариант 3
|
Вариант 4
|
Вариант 5
|
Вариант 6
|
Вариант 7
|
Вариант 8
|
Вариант 9
|
Вариант 10
|
Вариант 11
|
Вариант 12
|
Вариант 13
|
Вариант 14
|
Вариант 15
|
Вариант 16
|
Вариант 17
|
Вариант 18
|
Вариант 19
|
Вариант 20
|
6.4 Операторы передачи управления
В С++ есть четыре оператора, изменяющих естественный порядок выполнения вычислений:
оператор безусловного перехода goto;
оператор выхода из цикла break;
оператор перехода к следующей итерации цикла continue;
оператор возврата из функции return.
6.4.1 Оператор goto
Оператор безусловного перехода goto имеет формат:
goto метка;
В теле той же функции должна присутствовать ровно одна конструкция вида:
метка: оператор;
Оператор goto передает управление на помеченный оператор. Метка - это обычный идентификатор, областью видимости которого является функция, в теле которой он задан.
Использование оператора безусловного перехода оправдано в двух случаях:
принудительный выход вниз по тексту программы из нескольких вложенных циклов или переключателей;
переход из нескольких мест функции в одно (например, если перед выходом из функции всегда необходимо выполнять какие-либо действия).
В остальных случаях для записи любого алгоритма существуют более подходящие средства, а использование goto приводит только к усложнению структуры программы и затруднению отладки. Применение goto нарушает принципы структурного и модульного программирования, но которым все блоки, из которых состоит программа, должны иметь только один вход и один выход.
В любом случае не следует передавать управление внутрь операторов if, switch и циклов. Нельзя переходить внутрь блоков, содержащих инициализацию переменных, на операторы, расположенные после нее, поскольку в этом случае инициализация не будет выполнена:
int k; ...
goto metka; ...
{int а = 3, b = 4;
k = а + b;
metka: int m = k + 1; ...
}
После выполнения этого фрагмента программы значение переменной m не определено.
6.4.2 Оператор break
Оператор break используется внутри операторов цикла или switch для обеспечения перехода в точку программы, находящуюся непосредственно за оператором, внутри которого находится break.
Пример.
Программа вычисляет значение
гиперболического синуса вещественного
аргумента х
с
заданной точностью eps
с
помощью разложения в бесконечный ряд
.
Вычисление заканчивается, когда
абсолютная величина очередного члена
ряда, прибавляемого к сумме, станет
меньше заданной точности.
#include <iostream.h>
#include <math.h>
int main(){
const int MaxIter = 500; // ограничитель количества итераций
double х, eps;
cout « "\nВведите аргумент и точность: ";
cin » х » eps;
bool flag = true; // признак успешного вычисления
double у = х, ch = х; // сумма и первый член ряда
for (int n = 0; fabs(ch) > eps; n++) {
ch *= x * x /(2 * n + 2)/(2 * n + 3); // очередной член ряда
у += ch;
if (n > MaxIter){
cout «"\nРяд расходится!";
flag = false; break;}
}
if (flag) cout « "\nЗначение функции: " « у;
return 0;
}