Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабы / C++ / C++ / 03_циклы_a5.doc
Скачиваний:
41
Добавлен:
17.04.2013
Размер:
257.02 Кб
Скачать

Лабораторная работа № 3

Разработка программ на языке C++

С использованием циклов

Цель работы: научиться составлять программы с использованием операторов циклаfor, while, do-while.

Теоретические сведения

Цикл- это автоматическое повторение оператора или блока операторов конечное число раз.

Оператор цикла for

Общая форма записи оператора цикла for имеет вид:

for (инициализация управляющих переменных цикла;

проверка на продолжение цикла;

закон изменения управляющих переменных цикла) оператор;

Оператор цикла for содержит три выражения, каждое из которых не является обязательным. Первое выражение инициализирует управляющие переменные цикла. Второе выражение описывает условие, которое определяет, будет ли выполняться следующая итерация цикла. Благодаря третьему выражению оператора цикла происходит увеличение или уменьшение значения управляющей переменной цикла.

Классический вариант записи оператора цикла for:

for (n=1;n<=10;n++)y=n*n;

Оператор цикла допускает изменение управляющей переменной в сторону уменьшения:

for (n=10; n>=0; n--)

cout << n << "секунд !" <<endl;

cout<< " Пуск !" <<endl;

При желании можно изменять шаг цикла:

for (n=2; n<60; n=n+13) cout << n << endl;

Параметром оператора цикла может быть не только числовая, но и символьная переменная:

for (ch='a'; ch<='z'; ch++)

cout<< "Символ " <<ch<<endl;

При выполнении приведенного примера будут выведены на экран все буквы от a до z.

Можно сделать так, чтобы значение некоторой величины возрастало в геометрической, а не в арифметической прогрессии, т.е. чтобы вместо прибавления фиксированного значения на каждом шаге цикла выполнялось умножение:

for (d=1; d<15; d=d*2)

cout << d << endl;

В цикле for может отсутствовать одно или более выражений (но при этом обязательно наличие символов "точка с запятой"). Необходимо только включить в тело цикла один или несколько операторов, которые рано или поздно приведут к завершению его работы:

a=2;

for ( n=3; a<=25;) a=a * n;

Тело цикла

for ( ; ; )

cout << "Мы написали бесконечный цикл" << endl;

будет выполняться бесконечное число раз, поскольку пустое условие всегда считается истинным.

Выход из программы в среде BC3.1 в случае "зацикливания"–Ctrl+Break.

Если в цикле оставлены пустыми все три компонента, как в последнем из приведенных примеров, то такойцикл называетсяоткрытым.

Выход из такого цикла может осуществлятьсядвумя способами:

1) оператор break служит для продолжения работы программы после окончания текущего цикла и используется, если после выхода из цикла необходимо выполнить оставшуюся часть программы;

2) функция exit(), объявленная в заголовочном файлеstdlib.h, позволяет выйти из программы. Эта функция используется в том случае, если нужно прекратить выполнение шагов цикла и выйти из программы.

Оператор continueслужит для завершения текущей итерации цикла и перехода к следующей итерации этого же цикла, но не является способом выхода из цикла.

В состав цикла for входит операция "запятая", которая увеличивает гибкость его использования, позволяя включать в описание оператора несколько инициализирующих или корректирующих выражений.

Рис. 3.1. Обозначение цикла for в схеме алгоритма.

Пример 3.1. Пусть на некотором переговорном пункте действуют следующие тарифы: первая минута разговора стоит 2 рубля, каждая следующая - 1,5 рубля. Определить, сколько будет стоить каждая минута 10-минутного разговора.

#include<iostream.h>

#define FIRST 2

#define NEXT 1.5

void main()

{

int minutes;

float cost;

cout << "Минута Стоимость" << endl;

for (minutes=1, cost=FIRST; minutes<=10; minutes++, cost+=NEXT)

cout << setw(3) << minutes << setw(7) << cost;

}

Здесь операция "запятая" используется в первом и третьем выражениях: в первом она позволяет инициализировать переменные minutes и cost; во втором - на каждой итерации увеличивать значения minutes на 1, а cost - на 1,5 (величину константы NEXT). Все вычисления осуществляются в описании оператора цикла for.

Соседние файлы в папке C++