4388

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

Реферат

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

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

Русский

2012-11-18

55.5 KB

10 чел.

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

  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


 

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

35057. Психология ответы к экзамену 405.5 KB
  В дальнейшем стало очевидно что в промежутке между действием стимула и поведенческими реакциями происходит какаято активная переработка поступающей информации что это процессы без учета которых не удается объяснить реакцию животного или человека на наличные стимулы. Фрейда действия человека управляются глубинными побуждениями ускользающими от ясного сознания. Фрейд создал метод психоанализа с помощью которого можно исследовать глубинные побуждения человека и управлять ими. Корни поведения человека в его детстве.
35058. Общий психологический практикум 233 KB
  Предисловие 5 Требование ГОС 7 Учебная программа 8 Расчет часов учебного времени 16 Методические рекомендации по изучению дисциплины 17 Планы групповых занятий 19 Методические рекомендации по организации самостоятельной работы 25 Методические рекомендации по выполнению контрольных заданий 27 Темы и направления контрольных заданий 31 Методические рекомендации по подготовке к зачету 33 Вопросы для подготовки к зачету 34 Методические рекомендации по проведению экспериментальнопсихологического исследования 39 Рекомендуемая...
35059. Права и их защита 142.42 KB
  Понятие прав и свобод человека и гражданина и их классификация. права и свободы подразделяют на индивидуальные и коллективные относятся право на объединение ст. 31 право на забастовку Права и свободы можно разделить на основные и дополнительные посредством которых реализуются основные в управлении делами государства ч. 32 Конституции РФ реализуется в том числе и через право граждан избирать и быть избранными в органы государственной власти и органы местного самоуправления участвовать в отправлении правосудия поступать на...
35060. Организация сельскохозяйственного производства в ООО «Редькинское» Дзержинского района Калужской области 127 KB
  Обоснование фактической и перспективной специализации хозяйства Планирование качественных показателей хозяйства на перспективу Планирование урожайности сельскохозяйственных культур Планирование продуктивности сельскохозяйственных животных Установление типа кормления животных Расчет площади условной пашни Расчет посевной площади необходимой для обеспечения внутрихозяйственных нужд и выполнения договоров по растениеводческой продукции Расчет кормовых площадей для производства единицы животноводческой продукции Планирование...
35061. Осложнения при кастрации 22.54 KB
  С лечебной целью кастрируют животных при интравагинальных грыжах орхитах периорхитах при ранениях семенников и заболеваниях семенного канатика. Наиболее часто наблюдаются: кровотечение выпадение общей влагалищной оболочки культи семенного канатика сальника и кишечной петли. К ним относят: воспалительные отеки воспаление общей влагалищной оболочки воспаление и некроз культи семенного канатика и др. Источником кровотечения могут быть артерии и вены мошонки семенного канатика и семяпровода.
35062. Организация строительного производства 154.47 KB
  Разработчики: проектировщики. Состав ПОС: Календарный план строительства или комплексный укрупненный сетевой график Календарный план работ выполняемых в подготовительный период График производства СМР Ведомость основных объемов работ Ведомость потребности в конструкциях изделиях и оборудовании Организационнотехнологические схемы возведения зданий и сооружений Строительные генеральные планы для подготовительного и основного периодов Ситуационный план района строительства График потребности в основных машинах и транспорте по...
35063. Менеджмент и стратегии в туризме 477 KB
  Менеджмент организации CД. Требования к обязательному минимуму содержания образовательной программы по специальности Менеджмент организации Индекс Основные дидактические единицы учебной дисциплины СД. СТРАТЕГИЧЕСКИЙ МЕНЕДЖМЕНТ Стратегические проблемы развития производства и структура промышленности; стратегия предприятия стратегическое управление; стратегический маркетинг; ситуационный анализ; формирование стратегических целей и стратегии предприятия; стратегия и техническая политика предприятия; стратегия внешнеэкономической...
35064. Документаційне забезпечення сучасного медичного закладу на прикладі клініки “Боріс” 1.56 MB
  У дослідженні використані загальнонаукові методи аналізу, синтезу, порівняльний метод та метод описання. Метод аналізу застосовано під час дослідження документаційного забезпечення медичної організації та діяльності кожного її підрозділу в кліниці. Порівняльний метод використані при виявлені місця медичного підрозділу установи. Метод описання застосовується при розгляді основ діяльності та функцій. Метод синтезу використано для підбиття підсумків дослідження.
35065. Экономическая оценка инвестиций, Экономическое содержание инвестиций и их значение 81 KB
  Содержание инвестиционного проекта. Инвестиционный цикл: содержание стадий разработки и реализации инвестиционного проекта. По совместимости реализации инвестиционные проекты подразделяются...