Студопедия

КАТЕГОРИИ:

АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция

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

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

Оператор dowhile – оператор цикла с постусловием, т.е. сначала выполняется оператор, а затем проверяется условие на истинность. Так как в цикле 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);

  }

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

    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”);

}

 

Пример использования оператора for

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

Текст программы может иметь вид

#include <stdio.h>

#include <conio.h>

void main(void)

{

float s;

int k,N;

clrscr( );                     

    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, Press any key...",s);

getch( );                             

}

 

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

 

    Составить программу для определения таблицы значений функции у в произвольном диапазоне [a,b] изменения аргумента хс произвольным шагом h. Значения a, b, hвводятся с клавиатуры. Таблица должна содержать следующие столбцы: порядковый номер, значение аргумента x, значение функции, сообщение о возрастании или убывании функции, разность двух соседних значений функции.

Определить максимальное и минимальное значения функции.

1.                         a=-p; b=p; h=0,4.

2.                    a=0,7; b=1,8; h=0,1.

3.      a=-0,5; b=2,5; h=0,2.

4. a=-0,9; b=2,7; h=0,3.

5.        a=-2; b=0,8; h=0,2.

6.        a=-1,9; b=2,7; h=0,3.

7. a=-0,4p; b=0,4p; h=0,5.

8.                       a=-0,3p; b=1,3p; h= p/10.

9.               a=-p/2; b= p/2; h=p/10.

10.             a=-3; b=3; h=0,5.

11.           a=-p; b=p; h= p/6.

12.        a=-0,9; b=1, h=0,3.

13. a=-0,9; b=2,7; h=0,3.

14.                  a=-0,1; b=2; h=0,1.

15.            a=p; b=2p; h= p/15.

 

Значение аргумента x изменяется от a до b с шагом h. Для каждого x найти значение суммы S(x). Значения a,b,h и n вводятся с клавиатуры. Работу программы проверить для a=0,1; b=1,0; h=0,1; n выбрать максимально возможным!

16. .

17. .

18. .

19. .

20. .

 

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

 

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

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

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

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

ЛАБОРАТОРНАЯ РАБОТА № 3

 










Последнее изменение этой страницы: 2018-05-10; просмотров: 198.

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