Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЛАБ_ПРОГР.doc
Скачиваний:
8
Добавлен:
12.11.2019
Размер:
1.67 Mб
Скачать
    1. Оператор do … while

В противоположность циклам for и while, сначала проверяющим условие, цикл dowhile проверяет условие в конце. То есть, цикл dowhile всегда выполняется, по крайней мере один раз. Стандартный вид цикла dowhile следующий:

do {

последовательность операторов;

} while (условие);

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

Данный цикл dowhile осуществляет чтение чисел с клавиатуры, пока одно из них станет меньше либо равно 100:

do {

scanf(“%d”, &num);

} while (num > 100);

Возможно, наиболее типичным использованием цикла dowhile является процедура выбора пунктов меню. Когда набран корректный ответ, она возвращает значение функции. Неправильный ответ приводит к повторному вводу. Следующий пример являет собой программу проверки орфографии:

void menu(void)

{

char ch;

printf(“1. Проверка орфографии\n”);

printf(“2. Корректировка ошибок орфографии\n”);

printf(“3. Вывод ошибок орфографии на экран\n”);

printf(“ Сделайте ваш выбор: “);

do {

ch = getche(); /* чтение клавиатуры */

switch (ch) {

case ‘1’ :

check_spelling();

break;

case ‘2’ :

correct_errors();

break;

case ‘3’ :

display_errors();

break;

}

} while (ch!=’1’ && ch!=’2’ && ch=’3’);

}

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

    1. Оператор break

Оператор break имеет два назначения. Первое – это окончание работы оператора switch. Второе – это принудительное окончание цикла, минуя стандартную проверку условия. Данное значение здесь и рассматривается.

Когда оператор break встречается в теле цикла, цикл немедленно заканчивается и выполнение программы переходит на строку, следующую за циклом. Например:

#include <stdio.h>

main(void)

{

int t;

for (t=0; t<100; t++) {

printf(“%d “, t);

if (t = = 10) break;

}

}

Данная программа выводит числа от 0 до 10 включительно и заканчивает работу, поскольку break вызывает немедленный выход из цикла, минуя условие t < 100.

Оператор break вызывает выход из самого внутреннего цикла. Например:

for (t=0; t<100; ++t) {

count = 1;

for( ; ; ) {

printf(“%d “, count);

count ++;

if (count = = 10) break;

}

}

выводит числа от 1 до 10 включительно 100 раз. Каждый раз, когда встречается break, контроль передается внешнему циклу for.

    1. Оператор continue

Работа оператора continue чем-то похожа на работу оператора break. Но вместо форсированного окончания continue переходит с следующей итерации цикла, пропуская оставшийся код цикла. Например, следующая процедура выводит только положительные числа:

do {

scanf(“%d”, &x);

if (x<0) continue;

printf(“%d “, x);

} while (x != 100);

В циклах while и dowhile оператор continue вызывает переход к проверке условия и затем продолжает работу цикла. В случае for выполняется часть увеличения, затем проверяется условие и, наконец, выполняется само тело цикла. Предыдущий пример может быть изменен для вывода только 100 чисел следующим образом:

for (t=0; t<100; ++t) {

scanf(“%d”, &x);

if (x<0) continue;

printf(“%d “, x);

}

  1. Варианты задания

  1. Вводить последовательность чисел до тех пор, пока их сумма не достигнет М(М вводится и больше 0).Ввести, какое количество чисел составили искомую сумму (саму сумму тоже).

  2. Вводить последовательность до тех пор, пока не встретятся 3 подряд идущих положительных числа. Тогда прервать ввод и сообщить, сколько во введенной последовательности было:

а) всего чисел,

б) положительных чисел,

в) отрицательных чисел.

  1. Вычислить приближенное значение бесконечной суммы с точностью до =0,0001.

  1. Вычислить приближенное значение бесконечной суммы с точностью до =0,05.

  2. Вычислить приближенное значение бесконечной суммы с точностью до =0,00005.

  3. Вычислить приближенное значение бесконечной суммы с точностью до =0,0001.

  4. Вычислить приближенное значение бесконечной суммы с точностью до =0,001.

  5. Вычислить приближенное значение бесконечной суммы с точностью до =0,005.

  6. Вычислить приближенное значение бесконечной суммы с точностью до =0,0005.

  7. Вычислить приближенное значение бесконечной суммы с точностью до =0,01.

Вычислить приближенное значение бесконечной суммы с точностью до =0,05.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]