Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методичка по ОИиП под ред Бусько.DOC
Скачиваний:
18
Добавлен:
11.05.2015
Размер:
732.67 Кб
Скачать

Варианты индивидуальных заданий

Составить программу вычисления с применением условного оператора. Все данные в правых частях формул выбрать самостоятельно и ввести с клавиатуры.

Контрольные вопросы

  1. Какие формы записи операторов if применяются в языке С ?

  2. Чем отличается оператор if от оператора switch?

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

Циклические процессы

Цель работы

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

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

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

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

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

for (выражение 1; выражение 2; выражение 3 ) оператор;

Тут:

выражение 1 – установление начального значения переменной-параметра цикла (инициализация);

выражение 2 – проверка условия на продолжение цикла;

выражение 3 – изменение параметра цикла (коррекция параметра);

оператор – простой или составной оператор языка.

Схема работы оператора следующая. Сначала выполняется выражение 1, а затем выполняется циклический участок программы до тех пор, пока выражение 2 – истина.

Примероператора цикла for:

for (K=1;K<5;K++) printf(“\n %d”,K);

В результате выполнения этого оператора печатаются в столбик цифры от 1 до 4.

В качестве параметра цикла необязательно использовать переменную целого(int) типа. Фрагмент С – программы, которая выводит на экран дисплея буквы латинского алфавита:

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

printf(“ %c”,ch);

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

for(k=10; k>6;k++)

printf(“бесконечный цикл\n”);

Отметим, что можно выйти из цикла досрочно по дополнительному условию и управляющему оператору break, который передаст управление на первый после цикла выполняемый оператор (или использовать goto <метка> для выхода на помеченный оператор).

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

Передавать управление извне внутрь цикла запрещается.

Любое из выражений цикла for в круглых скобках может отсутствовать, но символ «;» опускать нельзя. Например:

int i=0;

for(; i<3; i++) puts(“Hello!”);

Циклы типа while и do – while

Основная форма циклического оператора while:

While (условие) оператор;

где оператор – это простой, составной или пустой операторы.

Цикл выполняется до тех пор, пока условие принимает значение «истина», т.е выражение в скобках возвращает ненулевой результат. Это цикл с предусловием – сначала проверяется условие, затем выполняется оператор. Поэтому цикл while не выполнится ни разу, если изначально результатом выражения будет 0.

В цикле do – while условие проверяется в конце оператора цикла.

Основная форма оператора do – while следующая:

do {последовательность операторов}

while (условие);

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

В циклах типа while и do – while также допустимы досрочный выход из цикла по дополнительному условию и оператору break (goto); а также досрочное завершение текущего шага цикла, но в последнем случае в отличие от цикла for управление будет передано на проверку условия. Кроме того, чтобы избежать бесконечного цикла, внутри цикла нужно предусмотреть изменение переменных, входящих в условие.

Фрагмент программы, печатающей целые числа кратные 5:

int i;

for (i=1;i<=300;i++)

{

if (i%5!=0) continue;

printf(“%5d”,i);

}