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


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

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



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

 

Оператор цикла 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, чтобы не получился бесконечный цикл (из которого нет выхода).

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

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

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

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 (условие);

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

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

В циклах типа while и do–while допустимы те же способы досрочного выхода из цикла и досрочное завершение текущего шага цикла, как и в операторе for, но в последнем случае в отличие от цикла for управление передается на проверку условия.

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

Примеры бесконечных циклов:

1) for(;;) оператор;

2) while(любое_число_не_0) оператор; // Всегда истинно!

3) do

              оператор;

    while(любое_число_не_0);                 // Всегда истинно!

Среди таких операторов цикла обязательно должно быть условие выхода.

Вложенные циклы

В случае вложенных циклов один цикл находится внутри другого, например:     for(i = nn; i < nk; i++)

                       for(j = mn; j < mk; j++)

оператор;

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

Пример:    

int i,j;

 for(i=1;i<10;i++)    {            // Печать таблицы умножения

for(j=1;j<4;j++) printf(“\n %d*%d=%2d”, i, j, i*j);

printf(“\n”);

}

 

Пример: вычислить , на печать выводить промежуточные и окончательный результаты:

#include <stdio.h>

#include <conio.h>

void main(void) {

float s;

int k,N;

    puts(“ Введите N”);

    scanf(“%d”,&N);

for (s=0, k=1; k <= N; k++) { // В заголовке цикла можно выпол-

// нять и двойное присваивание

    s += 1.0/k;

    printf(" \n k = %d s = %f ", k, s);

    }

printf("\n ОТВЕТ: s = %f ",s);

}

 

Варианты заданий

Значение аргумента x изменяется от a до b с шагом h. Для каждого x найти значения функции Y(x), суммы S(x) и |Y(x)-S(x)| и вывести в виде таблицы. Значения a,b,h и n вводятся с клавиатуры. Так как значение S(x) является рядом разложения функции Y(x). Значения S и Y для данного аргумента x должны совпадать в целой части и в первых двух-четырех позициях после десятичной точки.

Работу программы проверить для a=0,1; b=1,0; h=0,1; n выбрать максимально возможным!

1. .

2.  .

3.  .

4.  .

5.  .

6. .

7. .

8.  .

9.  .

    10.  .

    11.  .

12.  .

13.  .

14.  .

    15.  .

        

 

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

1. Какой процесс называется “циклическим”?

2. Чем отличаются операторы while и do - while?

3. Объясните работу оператора for.

4. Поясните понятие “вложенный цикл”?

5. Какие переходы допустимы между вложенными циклами?

 


ЗАДАНИЕ 4. Функции пользователя

 

Цель работы: познакомиться с механизмом составления и организации взаимодействия пользова­тельских функций языка Си.

 



Поделиться:


Последнее изменение этой страницы: 2020-11-28; просмотров: 90; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.221.85.142 (0.015 с.)