Студопедия КАТЕГОРИИ: АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция |
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); } Примеры бесконечных циклов: 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; просмотров: 234. stydopedya.ru не претендует на авторское право материалов, которые вылажены, но предоставляет бесплатный доступ к ним. В случае нарушения авторского права или персональных данных напишите сюда... |