|
|||||||
АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция |
Оператор цикла forBЛабораторная работа №3
“Операторы цикла в языке программирования Си++” Цель работы: ознакомиться с циклическими алгоритмами и операторами, реализующими эти алгоритмы. Освоить особенности применения кождого оператора. Составить программы с использованием всех операторов цикла.
Теоретические сведения Оператор цикла while Описание: while (выражение) оператор; Действие: Выполняется оператор до тех пор, пока значение выражения в скобках истинно. Проверка значения выражения происходит перед каждым выполнением оператора. Когда значение выражения ложно, цикл while заканчивается. Если выражение ложно с самого начала, оператор не выполняется ни разу. Комментарий: Следует заметить, что после ключевого слова while и выражения, заключенного в круглые скобки, точка с запятой не ставится. Оператор иногда называется телом цикла. В теле цикла должны выполняться действия, в результате которых меняется значение управляющего выражения. В противном случае можем получить бесконечный цикл. Пример: /*Демонстрация цикла while*/ #include "stdio.h" #include "conio.h" #include "iostream.h" main() { int i=1; while (getchar()!=’R’) i++; /*оператор getchar() вводит любой символ с клавиатуры*/ printf(“simbol R is %d”,i); getch(); return 0; }
Приведенная программа позволяет определить порядковый номер первой введенной буквы R в последовательности символов. Она показывает использование цикла while, в теле которого всего одна инструкция (i++ - увеличение значения целого числа i на единицу). Если запустить эту программу на выполнение и ввести последовательность символов, например: abFk!Rgm, то на экране появится строка: Символ R 6-й.
Оператор цикла do-while Описание: do оператор while (выражение); Действие: В операторе do-while тело цикла выполняется по крайней мере один раз. Тело цикла будет выполняться до тех пор, пока выражение в скобках не примет ложное значение. Если оно ложно при входе в цикл, то его тело выполняется ровно один раз. Комментарий: после слова while и выражения, заключенного в скобки, ставится точка с запятой. Если в теле цикла содержится более одной инструкции, то операторы цикла заключаются в фигурные скобки. Пример: /*Демонстрация цикла do-while */ #include "stdio.h" #include "conio.h" #include "iostream.h" main() { int i=0; /*i=0, а не единице*/ do i++; while (getchar()!=’R’); printf(“simbol R is %d",i); getch(); return 0; } Программа, представленная выше, теперь написана с циклом do-while. Результат программы будет таким же.
Оператор цикла for Описание: for (выражение 1; выражение 2; выражение 3) оператор; Действие: В круглых скобках содержится три выражения. Первое из них служит для инициализации счетчика. Она осуществляется только один раз – когда цикл for начинает выполняться. Второе выражение необходимо для проверки условия, которая осуществляется перед каждым возможным выполнением тела цикла. Когда выражение становится ложным, цикл завершается. Третье выражение вычисляется в конце каждого выполнения тела цикла, происходит приращение числа на шаг. Комментарий: в операторе цикла for точка с запятой после закрывающейся круглой скобки не ставится. Любое из трех или все три выражения в операторе могут отсутствовать, однако разделяющие их точки с запятыми опускать нельзя. Если отсутствует выражение 2, имеем бесконечный цикл. Например: for (scanf(“%d”,&p);;p++) оператор; В языке СИ предусмотрены две нетрадиционные операции: (++) – для увеличения на единицу и (--) – для уменьшения на единицу значения операнда. Операции ++ и -- можно записывать как перед операндом, так и после него. В первом случае (++n или --n) значение операнда (n) изменяется перед его использованием в соответствующем выражении, а во втором (n++ или n--) – после его использования. Если отсутствуют выражения 1 и 3, цикл становится эквивалентным while. Например: for (;a<20;) оператор; Каждое из выражений может состоять из нескольких выражений, объединенных операцией «запятая». Например: for(i=0, j=1; i<100; i++, j++) a[i]=b[j]; Тело цикла заключается в фигурные скобки, если в нем более одного оператора. Пример 1: #include "stdio.h" #include "conio.h" #include "iostream.h" main() { int i; for (i=1;getchar()!='R';i++) printf("before simbol R is %d simbols\n"); getch(); return 0; }
Пример 2: /*демонстрация цикла for*/ #include "stdio.h" #include "conio.h" #include "iostream.h" main() { int i, j=1, k; for (i=1;i<=3;i++) printf("Minsk\t"); /*В цикле for три раза выполняется функция вывода*/ /*Здесь i-управляющая переменная цикла*/ printf(“\nУкажите число повторений цикла\n”); scanf("%d",&k); for (i=1;i<=k;i++) { j*=i; printf("%d ",j); } /*Здесь две инструкции (более одной), поэтому они заключаются в фигурные скобки*/ j=1; printf("\n"); /*Переменной j присваивается значение 1 и осуществляется перевод курсора*/ /*В следующем цикле for выполняются те же действия, что и в предыдущем*/ for (i=1;i<=k;i++) printf("%d ", j*=i); getch(); return 0; } Результаты выполнения программы следующие: Минск Минск Минск Укажите число повторений цикла 1 2 6 24 120 1 2 6 24 120
Оператор break Описание: Break используется для прекращения выполнения цикла из-за обнаружения ошибки, для организации дополнения к условию в заголовке цикла, для прекращения бесконечного цикла. Пример: while (st>0 && st<25) if (st==4||st==8||st==12) break; } Работа цикла полностью прекращается, как только условие в операторе if становится истинным. Поиск по сайту: |
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.015 сек.) |