4388

Использование циклов в языке С++

Реферат

Информатика, кибернетика и программирование

Использование циклов в языке С++ Оператор goto Для решения ряда задач требуется многократное повторение одних и тех же действий. На практике это реализуется либо с помощью рекурсии, либо с помощью итерации. Итерация – это повторение одних...

Русский

2012-11-18

55.5 KB

6 чел.

Использование циклов в языке С++

  1.  Оператор goto

Для решения ряда задач требуется многократное повторение одних и тех же действий. На практике это реализуется либо с помощью рекурсии, либо с помощью итерации. Итерация – это повторение одних и тех же действий определенное количество раз. Основным методом итерации является цикл. На заре компьютерной эры программы были простыми и короткими. Циклы состояли из метки, нескольких команд и оператора безусловного перехода.

В С++ метка представляет собой имя, за которым следует двоеточие (:). Метка размещается слева от того оператора С++, к которому будет выполнен переход по оператору goto с соответствующим именем метки.

Листинг 4.1. Цикл на основе оператора goto

1: #include <iostream>

2: int main()

3: {

4: using namespace std;

5: int counter=0;  // инициализировать счетчик

6:  loop:    //метка – начало цикла

7: counter ++;   //инкрементируем счетчик

8: cout << “counter: “ << counter << “\n”;

9: if (counter < 5)  //проверка значения

10: goto loop;   //перейти к началу

11:

12: cout << “Complete. Counter: ” << counter << “.\n”;

13: return 0;

14: }

РЕЗУЛЬТАТ

counter: 1

counter: 2

counter: 3

counter: 4

counter: 5

Complete. Counter: 5.

Как правило, программисты избегают оператора goto, и на то есть причины. Оператор goto позволяет перейти в любую точку программы – как вперед, так и назад. Беспорядочное использование операторов goto приводит к сознанию запутанного, трудно читаемого кода, прозванного «спагетти». Чтобы избежать оператора goto, используют более сложные, управляемые операторы цикла: for, while, do..while.

  1.  Оператор цикла while

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

Рис. 4.1. Обозначение цикла while на блок-схеме алгоритма программы

Листинг 4.2. Цикл на основе оператора while

1: #include <iostream>

2: int main()

3: {

4: using namespace std;

5: int counter=0; // присвоить начальное значение

6:  while (counter < 5) //проверка истинности условия

7: {

8: counter ++;   //инкрементируем счетчик

9: cout << “counter: “ << counter << “\n”;

10: }

11: cout << “Complete. Counter: ” << counter << “.\n”;

12: return 0;

13: }

РЕЗУЛЬТАТ

counter: 1

counter: 2

counter: 3

counter: 4

counter: 5

Complete. Counter: 5.

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

  1.  Операторы break и continue 

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

Операторы continue и break следует использовать осторожно. Это наиболее опасные команды после оператора goto. Программы, которые внезапно меняют свое поведение, тяжело понять, а свободное применение операторов continue и break способно запутать даже маленький цикл while и сделать его непонятным. Необходимость в операторе безусловного выхода из цикла зачастую свидетельствует о плохо продуманной логике условия выхода из цикла. Как правило, внутри тела цикла можно использовать оператор if, чтобы пропустить несколько строк кода, а не прибегать к оператору break.

  1.  Оператор цикла do..while

Рис. 4.2. Обозначение цикла do..while на блок-схеме алгоритма программы

Вполне возможен вариант, когда тело цикла while вовсе не будет выполнено.  Оператор цикла while проверяет выражение условия цикла до того, как приступит к выполнению операторов тела цикла, и если условие ложно с самого начала, то тело цикла будет пропущено.

Цикл do..while сначала выполняет тело цикла, а условие продолжения проверяет потом. Это гарантирует выполнение операторов цикла, по крайней мере, один раз. Оператор do..while имеет следующий синтаксис:

do

оператор;

while (условие);

Пример:

// считать до 10

int x=0;

do

cout << “x: “ <<x++;

while (x<10);

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

Рис. 4.3. Обозначение цикла c заданным числом повторений

Синтаксис этого оператора следующий:

for (инициализация; условие; приращение)

оператор;

Оператор инициализация устанавливает начальное значение счетчика. Следующий оператор: условие – это любое выражение языка С++, результат которого проверяется на каждом цикле. Если результат этого выражения является истинным, то выполняется тело цикла, а затем, после изменения счетчика на величину приращения (по умолчанию – увеличение на единицу), действия повторяются.

Пример:

// вывести Hello десять раз

for (int i=0; i<10; i++)

cout << “Hello! “;

Цикл, организованный в теле другого цикла, называется вложенным. В этом случае внутренний цикл полностью выполняется на каждой итерации внешнего. Листинг 4.3 демонстрирует заполнение элементов матрицы случайными числами с помощью вложенного цикла for.

Листинг 4.3. Вложенный цикл for

#include <iostream>

#define rnd (rand()/32768.0)  /* директива #define задает переменную rnd, которая изменяется случайным образом в диапазоне от 0 до 1 */

int main (){

using namespace std;

int i, j, n, m;

float a[50][50];

cout<<"Input n: ";

cin>>n;

cout<<"Input m: ";

cin>>m;

cout<<endl;

cout<<"Random Array \n";

for (i=0; i<n; i++){

 cout<<endl;

 for (j=0; j<m; j++){

  a[i][j]=rnd*10-5;

  cout<<a[i][j]<<"  \t";

 }

}

char response;

cin>>response;

return 0;

}


  Условие

   Действие

Да

ет

  Условие

   Действие

Да

Нет

   Действие

  i=n1, n2, h


 

А также другие работы, которые могут Вас заинтересовать

11377. ГИПЕРТЕНЗИВНЫЕ СРЕДСТВА 30.5 KB
  ГИПЕРТЕНЗИВНЫЕ СРЕДСТВА Гипотензия может быть острой и хронической. При оказании помощи при острой гипотензии необходимо учитывать причину патологического состояния. Гипотония может быть результатом: а нарушения сердечной деятельности острая сердечная недостат...
11378. ГИПЕРТОНИЯ, АНТИГИПЕРТЕНЗИВНЫЕ СРЕДСТВА 103.5 KB
  В зависимости от этиологии гипертонию подразделяют на два типа:первичную и вторичную симптоматическую. симптоматическая гипертония симптом заболевания какоголибооргана: почек эндокринных желез сосудов сердца ЦНС... Лечат основ...
11379. МОЧЕГОННЫЕ СРЕДСТВА (ДИУРЕТИКИ) 97.5 KB
  МОЧЕГОННЫЕ СРЕДСТВА ДИУРЕТИКИ Изменение объема и электролитного состава жидкостей организма наблюдаются довольно часто и являются серьезными клиническими проблемами. Задержка солей и воды в организме с увеличением гидратации тканей образованием отеков и скоплен...
11380. Стимуляторы дыхания (Дыхательные аналептики) 76 KB
  При лечении острых и хронических заболеваний органов дыхания которые широко распространены в медицинской практике могут быть использованы лекарственные средства из различных групп в том числе противомикробные противоаллергические и другие противовирусные. В данн
11381. Средства, влияющие на ЖКТ. Средства, влияющие на аппетит 194 KB
  Лекции по курсу Фармакология тема: Средства влияющие на ЖКТ I. Средства влияющие на аппетит Физиологическая система регуляции аппетита включает центральное и периферическое звенья. Центральные механизмы: в ядрах гипоталамуса находятся центр голода и цен...
11382. Средства, влияющие на гемопоэз 98 KB
  Средства влияющие на гемопоэз Введение. Кровь состоит из форменных элементов и плазмы. Форменные элементы имеют небольшую продолжительность жизни от несколько дней до нескольких месяцев эритроциты = 120 дней тромбоциты = 10 дней. В организме постоянно идет процесс р
11383. ЛЕКАРСТВЕННЫЕ СРЕДСТВА, ВЛИЯЮЩИЕ НА СВЕРТЫВАНИЕ КРОВИ 211.5 KB
  ЕКАРСТВЕННЫЕ СРЕДСТВА ВЛИЯЮЩИЕ НА СВЕРТЫВАНИЕ КРОВИ I Введение В организме две эти системы находятся в динамическом равновесии и в зависимости от конкретных условий преобладает одна или другая. Если равновесие нарушается то либо повышается к...
11384. Моторика и тонус миометрия регулируется нейрогуморальными механизмами 48.5 KB
  Введение. I. Моторика и тонус миометрия регулируется нейрогуморальными механизмами. А В миометрии находятся МХР α1 и β2 АР Возбудители МХР и α –АР стимулирующее действие. Возбудители β2 – АР угнетающее действие Б Стимулирующее влияние на сократительную актив
11385. Гормональные препараты, Механизм действия гормонов 119 KB
  СПХФА Кафедра фармакологии Лекции по курсу Фармакология тема: Гормональные препараты доц. Н.А. Анисимова 2008 г. Схема организации эндокринной системы В гипоталамус поступает и