Лабораторнаяработа
«Операторыцикла в языке программирования Си++»
Цель работы: ознакомиться сциклическими алгоритмами и операторами, реализующими эти алгоритмы. Освоитьособенности применения каждого оператора. Составить программы с использованием всехоператоров цикла.
1. Теоретическиесведения
Оператор цикла while
Описание: while(выражение) оператор;
Действие:
Выполняется оператор до техпор, пока значение выражения в скобках истинно. Проверка значения выраженияпроисходит перед каждым выполнением оператора. Когда значение выражения ложно,цикл while заканчивается. Если выражение ложно с самого начала, оператор невыполняется ни разу.
Комментарий:
Следует заметить, чтопосле ключевого слова while и выражения, заключенного в круглые скобки, точка сзапятой не ставится.
Оператор иногданазывается телом цикла. В теле цикла должны выполняться действия, в результатекоторых меняется значение управляющего выражения. В противном случае можемполучить бесконечный цикл.
Пример:
/*Демонстрация циклаwhile*/
#include
main( )
{
int i=1
while (getchar()!=’R’)i++;
/*оператор getchar()вводит любой символ с клавиатуры*/
printf(«Символ R %d-й»,i);
}
Приведенная программа позволяет определить порядковыйномер первой введенной буквы R в последовательности символов. Она показываетиспользование цикла while, в теле которого всего одна инструкция (i++ — увеличение значения целого числа i на единицу). Если запустить эту программу навыполнение и ввести последовательность символов, например: abFk!Rgm, то наэкране появится строка: Символ R 6-й.
Оператор цикла do-while
Описание: do операторwhile (выражение);
Действие: В оператореdo-while тело цикла выполняется по крайней мере один раз. Тело цикла будетвыполняться до тех пор, пока выражение в скобках не примет ложное значение.Если оно ложно при входе в цикл, то его тело выполняется ровно один раз.
Комментарий: после словаwhile и выражения, заключенного в скобки, ставится точка с запятой. Если в телецикла содержится более одной инструкции, то операторы цикла заключаются вфигурные скобки.
Пример:
/*Демонстрация циклаdo-while */
#include
main()
{
int i=0;/*i=0, а не единице*/
do i++; while(getchar()!=’R’);
printf(«Символ R %d-й»,i);
}
Программа, представленная выше, теперь написана сциклом 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
Каждое из выражений можетсостоять из нескольких выражений, объединенных операцией «запятая».Например:for(i=0, j=1; i
Тело цикла заключается вфигурные скобки, если в нем более одного оператора.
Пример:
/*демонстрация циклаfor*/
#include
main()
{int i,j=1,k;
for(i=1;i
printf(«Минск\t»);
/*В цикле for три разавыполняется функция вывода*/
/*Здесь i-управляющаяпеременная цикла*/
printf("\nУкажитечисло повторений цикла\n");
scanf("%d",&k);
for(i=1;i
{j*=i;
printf("%d",j);}
/*Здесь две инструкции(более одной), поэтому они заключаются в фигурные скобки*/
j=i;
printf("\n");
/*Переменной jприсваивается значение 1 и осуществляется перевод курсора*/
/*В следующем цикле for выполняютсяте же действия, что и в предыдущем*/
for(i=1;i
}
Результаты выполненияпрограммы следующие:
Минск Минск Минск
Укажите число повторенийцикла; 5
1 2 6 24 120
1 2 6 24 120
Оператор break
Описание:
Break используется дляпрекращения выполнения цикла из-за обнаружения ошибки, для организациидополнения к условию в заголовке цикла, для прекращения бесконечного цикла.
Пример:
while (st>0&& st
{
ifst==4||st==8||st==12)
break;
}
Работа цикла полностьюпрекращается, как только условие в операторе if становится истинным.
Оператор continue
Действие: Этот операторможет использоваться во всех трех типах циклов. Как и в случае оператора break,он приводит к изменению характера выполнения программы. Однако вместозавершения работы цикла наличие оператора continue вызывает пропуск «оставшейся»части итерации и переход к началу следующей.
Пример. Заменим впредыдущей программе оператор break на continue.
while (st>0&& st
{
if (st==4||st==8||st==12)
continue;
}
При истинном условии воператоре if оператор continue вызывает пропуск идущих за ним операторов телацикла и осуществляется переход к началу следующей итерации.2. Задание
1. Задание взять изтаблицы 1 и таблицы 2 согласно варианту.
2. Разработатьблок-схемы алгоритма.
3. Написать иотладить программы.
Таблица 1№ варианта Задание 1.
/> 2.
/> 3.
/> 4.
/> 5.
/> 6.
/> 7.
/> 8.
/> 9.
/> 10.
/> 11.
/> 12.
/> 13.
/> 14.
/> 15.
/> 16.
/> 17.
/> 18.
/> 19.
/> 20.
/>/> 21.
/> 22.
/> 23
/>/> 24.
/> 25.
/> Таблица 2№ варианта Задание 1.
/> 2.
/> 3.
/> 4.
/> 5.
/>/> 6.
/> 7.
/> 8.
/> 9.
/> 10.
/> 11.
/> 12.
/> 13.
/> 14.
/> 15.
/> 16.
/> 17.
/> 18.
/> 19.
/> 20.
/>/> 21.
/> 22.
/> 23
/> 24.
/> 25.
/>
Литература
1. Подбельский В.В.Язык Cu ++: Учебное пособие. — М.: Финансы истатистика,1995, — 560 с.
2. Страуструп Б.Язык программирования Сг ++. — М.: Радио и связь, 1991. — 352 стр.
3. Собоцинский В.В.Практический курс Turbo Cu ++. Основы объктно- ориентированногопрограммирования. — М.: Свет, 1993. — 236 с.
4. Романов В.Ю.Программирование на языке Cu ++.Практический подход. — М.: Компьтер, 1993. — 160 с.
5. Уинер Р. Языктурбо Cu. — М.: Мир, 1991. — 384 с.
6. Юлин В.А.,Булатова И.Р. Приглашение к Cu. — Мн.: Высш. Шк., 1990,- 224 с.
7. Котлинская Г.П.,Галиновский О.И. Программирование на языке Cu. -Мн.: Высш. Шк., 1991. — 156 с.