- •4. 1. Базовые средства языка
- •Алфавит языка
- •4.1.5. Типы данных Си
- •Логический тип
- •4.1.8. Операции и выражения
- •Операции присваивания
- •Арифметические операции
- •Логические операции
- •4.1.10. Структура программы
- •4.1.11. Ввод и вывод данных
- •Функции ввода- вывода
- •Объектно-ориентированные средства ввода-вывода.
- •4.2. Операторы управления
- •4.2.1. Понятие алгоритма
- •4.2.2. Изображение алгоритма в виде блок-схемы
- •2.3. Составной оператор
- •2.4. Операторы ветвления
- •If (выражение) оператор;
- •4.2.5. Примеры программ
- •4.2.6. Оператор варианта
- •4.2.7. Алгоритмы циклической структуры
- •Оператор цикла с предусловием
- •Оператор цикла с постусловием
- •Оператор цикла с параметром
- •Операторы передачи управления
- •4.2.8. Решение задач с использованием циклов
- •4.3. Обработка массивов
- •4.3.1. Описание массивов
- •4.3.2. Основные операции над массивами
- •4.3.3. Ввод-вывод элементов массива
- •4.3.4. Вычисление суммы элементов массива
- •4.3.5. Вычисление произведения элементов массива
- •4.3.6. Поиск максимального элемента и его номера
- •4.3.7. Сортировка элементов в массиве
- •4.3.8. Удаление элемента из массива
- •4.3.9. Решение задач с использованием массивов
- •4.4. Обработка матриц
- •4.4.1. Ввод-вывод матрицы
- •4.4.2. Примеры алгоритмов обработки матрицами
- •4.5.1. Передача параметров в функцию
- •4.5.2. Возврат результата с помощью оператора return
- •4.6. Указатели и динамические массивы
- •5. Примеры организации вычислительного процесса
- •5.1 Организация разветвляющегося вычислительного процесса
- •5.2. Организация циклов с известным числом повторений»
- •Блок-схема
- •Текст программы
- •Блок-схема
- •Текст программы
- •5.4.Обработки одномерного массива с перестановкой элементов
- •5.5. Обработка матрицы.
- •Литература
4.2.7. Алгоритмы циклической структуры
Циклический процесс или просто цикл это повторение одних и тех же действий. Последовательность действий, которые повторяются в цикле, называют телом цикла. Один проход цикла называют шагом или итерацией. Переменные, которые изменяются внутри цикла, и влияют на его окончание, называются параметрами цикла.
Оператор цикла с предусловием
Алгоритм работы цикла с предусловием показан на рис. 9.
Рис. 9. Цикл с предусловием
Оператор, реализующий этот алгоритм в С++ имеет вид:
while (выражение) оператор;
Работает цикл так. Вычисляется значение выражения. Если оно истинно (¹0), выполняется оператор. В противном случае цикл заканчивается, и управление передается оператору, следующему циклом. Выражение вычисляется перед каждой итерацией цикла. Если при первой проверке выражение = 0, цикл не выполнится ни разу. Если тело цикла состоит более чем из одного оператора, используют составной оператор:
while условие
{
оператор 1;
…
оператор n;
}
ЗАДАЧА 7. Вывести на экран таблицу значений функции y=esin(x)cos(x) на отрезке [0;p] с шагом 0.1.
#define PI 3.14159
int main()
{float x=0, y;
while (x<=PI) //Цикл с предусловием.
{y=exp(sin(x))*cos(x);
cout<<x<<"\t"<<y;
x+=0.1;
} //Конец цикла.
}
Оператор цикла с постусловием
Алгоритм цикла с постусловием представлен на рис. 10.
Рис. 10. Цикл с постусловием
В С++ цикл с постусловием реализован конструкцией
do оператор while (выражение);
Если тело цикла состоит более чем из одного оператора, то используют составной оператор:
do
{ оператор_1;
…
оператор_n;
}
while (выражение);
Работает цикл так. Выполняется оператор, представляющий собой тело цикла. Вычисляется значение выражения. Если оно истинно (≠0), оператор тела цикла выполняется еще раз. В противном случае цикл завершается, и управление передается оператору, следующему за циклом.
Цикл с постусловием всегда будет выполнен хотя бы один раз, в отличие от цикла с предусловием, который может не выполниться ни разу.
ЗАДАЧА 8. Вывести на экран таблицу значений функции y=esin(x)cos(x) на отрезке [0;p] с шагом 0.1.
#define PI 3.14159
int main()
{float x=0, y;
do //Цикл с постусловием.
{ y=exp(sin(x))*cos(x);
cout<<x="\t"<<y<<endl;
x+=0.1;
}
while(x<=PI);
}
Оператор цикла с параметром
Цикл с параметров в языке Си реализован оператором:
for (начальные_присваивания;выражение; приращение)
оператор;
где начальные_присваивания – оператор или группа операторов, которые выполняются один раз в начале цикла; применяются для присвоения начальных значений величинам, используемым в цикле, в том числе параметру цикла; выражение – определяет условие выполнения цикла, если значение выражения истинно (≠0), то цикл выполняется; приращение – оператор или группа операторов, которые выполняются после каждой итерации и служат для изменения параметра цикла; оператор – любой оператор языка, представляющий собой тело цикла.
Приращение или оператор должны влиять на условие, иначе цикл никогда не закончится. Любой из трех параметров в записи оператора for может отсутствовать, но при этом точки с запятой должны оставаться на своих местах.
Если приращение или начальные_присваивания это не один оператор, а группа, то они отделяются запятой. Здесь запятая это операция последовательного выполнения.
Алгоритм работы цикла for:
1. Выполняются начальные_присваивания.
2. Вычисляется значение выражения, если оно ≠0(true), то выполняется переход к п.3.
В противном случае, выполнение цикла завершается.
3. Выполняется оператор.
4. Выполняется оператор приращение и осуществляется переход к п.2, то есть опять вычисляется значение выражения и т.д.
Этот алгоритм представляет собой цикл с предусловием рис. 11.
Рис. 11. Алгоритм работы цикла for.
В дальнейшем в блок-схемах цикл for будем изображать так как показано на рис. 12.
Рис. 12. Цикл с параметром for
Если тело цикла состоит более чем из одного оператора, используют составной оператор:
for (начальные_присваивания; выражение; приращение)
{ оператор_1;
…
оператор_n;
}
ЗАДАЧА 9. Вывести на экран таблицу значений функции y=esin(x)cos(x) на отрезке [0;p] с шагом 0.1.
#define PI 3.14159
int main()
{float x, y;
for (x=0;x<=PI; y=exp(sin(x))*cos(x),
cout<<x<<"\t"<<y<<endl, x+=0.1);
}