Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
а и п СИ.doc
Скачиваний:
57
Добавлен:
07.06.2015
Размер:
2.32 Mб
Скачать

Контрольные вопросы для подготовки и самостоятельной работы

  1. Какой тип должно иметь выражение в операторах if и switch?

  2. Можно ли использовать оператор goto для передачи управления на else, метку case…; default:?

  3. С помощью каких операторов можно досрочно завершить выполнение операторов if…else, switch?

  4. Можно ли использовать в качестве выражения в операторе switch указатель?

  5. Можно ли использовать в качестве константного выражения в операторе switch константу?

  6. Обязательно ли использовать оператор break в операторе switch? Каково его действие? Что происходит при отсутствии break?

  7. Какому из вложенных операторов if относится else при наличии и отсутствии операторных скобок  и .

  8. Какие типы операндов допустимы в условной операции (? :)?

  9. Объясните работу операторов в приведенных примерах.

  10. Как объявить и использовать метки в программе?

Лабораторная работа 7 Программирование разветвляющегося циклического вычислительного процесса.

Цель работы: Изучить написание программ на языке С, используя итерационные (циклические) методы, освоить основные операторы, поддерживающие работу с циклами (for, while, do... while). Научиться писать программы, используя данные операторы.

            1. Теоретические сведения

Каждый оператор С заканчивается оператором (;), который является пустым оператором. Циклы или итерационные процедуры позволяют выполнять отдельные операторы или блоки операторов (составные операторы {…}). Число повторов определяется выражением в скобках, значение которого сравнивается с (-прекращение цикла). Циклы бывают с проверкой значения выражения перед началом выполнения тела цикла (с предусловием), по окончанию выполнения тела (с постусловием) или внутри тела цикла. В С определено три вида операторов цикла: оператор цикла с предусловием - while, оператор цикла с постусловием do... while и оператор цикла for. Рассмотрим эти операторы детально:

Цикл while имеет следующий формат:

while (<выражение>) <оператор>

Условие выполнения итерации в цикле while предварительно проверяется и в случае истинности выражения (не равно ) выполняются те операторы, которые описаны в теле цикла. В противном случае цикл заканчивается, и программа продолжает свое выполнение с того места, где закончилось тело цикла. Если тело цикла содержит несколько операторов, оно ограничивается операторными скобками: "{" и "}" и является составным оператором.

Прервать выполнение цикла можно, используя операторы break, goto, return. Ниже продемонстрировано два примера работы с циклом while в виде фрагментов программ.

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

Пример 1

Пример 2

int i=10,k,s =;

printf ("ввести шаг приращения к: "); scanf("%i",&k );

while (i) //выполнять цикл, пока i не

// равно

{ s+=k; // увеличить s на k

i- - ; // уменьшить i на 1

if (i=k) break; //выйти, если выполнится

// условие: i=k

}...

...

char ch =’a’;

do // начать циклdo while

{ printf("\n Отвечайте yes илиno(y/n):");

scanf(ch!=’y’ &&ch!= 'n'); // выполнять

цикл до тех пор, пока не будет нажата

// буква ‘y’ или ‘n’

Оператор цикла do while() является циклом с постусловием. В этом случае тело цикла всегда выполнится хотя бы один раз.

Формат оператора цикла следующий:

do <оператор>

while(<выражение>);

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

Пример 1

Пример 2

int i=10, k, s=;

printf ("ввести шаг приращенияк: ");scanf("%i", &k);

do // начать цикл do while

{ s+=k; //увеличитьsнаk

i-- ; //уменьшить i

if (i=k) break; //выйти, если // выполнится условие: i= =k

while (i); // выполнять цикл, пока i // не равно

char ch;

do //начать циклdo while

printf ("\nОтвечайтеyesилиno (y/n):");

scanf("%c",&ch);

while (ch!='y' && ch!='n'); // выполнять //цикл до тех пор, пока не будет нажата //буква 'y' или 'n'

Оператор цикла for является наиболее удобным и мощным средством организации циклических вычислений в С.

Формат цикла for:

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

где : <выражение1> - производит инициализацию тех переменных, которые будут непосредственно изменяться в цикле, в частности, задаётся начальное значение переменной-счётчика

<выражение2> - определяет условие выхода из цикла. При равенстве его значения цикл прерывается;

<выражение3> - это выражение задает изменение на каждом шаге переменных, проинициализированных в <выражении1>. Можно задавать также изменение других переменных, не связанных с <выражением1>.

Каждое из описанных выражений может отсутствовать. Оператор цикла for, заданный как for(;;){<тело_цикла>}, является бесконечным циклом.

Соседние файлы в предмете Алгоритмизация и программирование