Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Мет-каС++.doc
Скачиваний:
18
Добавлен:
31.05.2015
Размер:
734.21 Кб
Скачать

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

  1. Какие типы переменных применяются в алгоритмическом языке С?

  2. Перечислите основные отличия функций printf() и scanf().

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

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

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

Программировапние циклических вычислительных процессов

Цель работы:

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

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

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

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

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

for (выражение_1; выражение_2; выражение_3 )

оператор;

где выражение_1– инициализация начального значения параметра цикла;

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

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

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

Схема работы оператора следующая: только один раз вначале вычисляется выражение_1, затем проверяется выражение_2, и если оно - «истина», то выполняется циклический участок программы, затем производится коррекция параметра, и так до тех пор, пока выражение_2 не примет значение «ложь».

Например:for (k=1; k<5; k++)

printf(“\n %d”, k);

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

В качестве параметра цикла можно использовать переменную любого базового типа. Например:for(ch=’a’; ch<=’z’; ch++) /*вывод на экран БУКВ */

printf(“ %c”,ch); /* латинского алфавита*/

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

Например: for(k=10; k>6;k++)

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

Выйти из цикладосрочно можно следующими способами:

- по дополнительному условию;

- используя операторы:

  • break;- завершения работы цикла, в котором находитсяbreak, управление передается на первый после цикла выполняемый оператор;

  • exit(int Kod); - происходит выход из программы;

  • return;- осуществляется выход из функции;

  • с помощью оператора безусловного перехода 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 и do–while допустимы те же способы досрочного выхода из цикла и досрочное завершение текущего шага цикла, как и в операторе for, но в последнем случае в отличие от цикла for управление передается на проверку условия. Для предотвращения бесконечного цикла, внутри циклов while и do–while нужно предусмотреть изменение переменных, входящих в условие.

Например: int i;

for (i=1;i<=300;i++) /*печать целых чисел, кратных 5 */

{

if (i%5!=0) continue;

printf(“%5d”,i);

}