![]() Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву ![]() Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Программировапние циклических вычислительных процессовСодержание книги
Поиск на нашем сайте
Цель работы: Изучить циклические операторы 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); }
Вложенные циклы В случае вложенных циклов один цикл находится внутри другого, например: 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”); }
Пример 1: Вычислить Текст программы может иметь вид: #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(); }
Пример 2:
Вывести таблицу значений функции #include <conio.h> #include <stdio.h> #include <math.h> #define PI 3.14159265358 void main() { double x,y,a,b,h,dy,ypred,ymax,ymin; int i,inc; char *vs; clrscr(); puts("Введите значения a,b и h"); scanf("%lf %lf %lf",&a,&b,&h); /* ВЫВОД ШАПКИ ТАБЛИЦЫ */ printf("Номер| x | Y(x) |Возрастает/убывает|Разность \n"); printf("------------------------------------------------------\n"); x=a; /* ВЫЧИСЛЕНИЕ НАЧАЛЬНОГО ЗНАЧЕНИЯ ФУНКЦИИ */ ymax=ymin=ypred=y=exp(x*cos(PI/4))*cos(x*sin(PI/4)); printf("%5d|%9.4lf|%9.4lf| |\n",1,x,y); for(x=a+h,i=2; x<=b+h/2; x+=h,i++) { y=exp(x*cos(PI/4))*cos(x*sin(PI/4)); if (y>ymax) ymax=y; /* ПОИСК МАКСИМАЛЬНОГО ЗНАЧЕНИЯ */ if (y<ymin) ymin=y; /* ПОИСК МИНИМАЛЬНОГО ЗНАЧЕНИЯ */ dy=y-ypred; /* ВЫЧИСЛЕНИЕ РАЗНОСТИ МЕЖДУ СОСЕДНИМИ ЗНАЧЕНИЯМИ ФУКНЦИИ */ ypred=y; if (dy>0) vs="Возрастает"; else vs="Убывает"; printf("%5d|%9.4lf|%9.4lf|%18s|%9.4lf\n",i,x,y,vs,dy); } printf("\nymax=%lf ymin=%lf \nPress any key...",ymax,ymin); getch(); }
Варианты индивидуальных заданий Составить программу для определения таблицы значений функции у в произвольном диапазоне [a,b] изменения аргумента х с произвольным шагом h. Значения a, b, h вводятся с клавиатуры. Таблица должна содержать следующие столбцы: порядковый номер, значение аргумента x, значение функции, сообщение о возрастании или убывании функции, разность двух соседних значений функции. Определить максимальное и минимальное значения функции. 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. Дано действительное число а. Найти среди чисел 1, 1+1/2, 1+1/2+1/3+… первое, большее а. 19. Дана последовательность 20. Определить количество слагаемых в сумме вида S=2+4+6+… при условии, что S≤2m, где m – целое число, вводимое с клавиатуры. Даны действительные числа х и eps. Вычислить приближенно значение бесконечной суммы S. Приближение считается полученным, если найдена сумма нескольких сланаемых, и очередное слагаемое оказалось по модулю меньше eps. 21. S= 22. S= 23. S= 24. S= 25. S= 26. Ввести натуральное число m. Получить наибольшую цифру числа m, которая является нечетной, и номер ее позиции в числе m. 27. Ввести натуральное число m. Найти и вывести наименьшее значение суммы двух цифр этого числа. 28. Ввести натуральное число m. Определить сколько раз среди соседних разрядов числа встречается 2 одинаковые цифры. Например, в числе 1122234 встречается 3 соседние цифры. 29. Ввести натуральное число m. Выбросить из записи числа цифры 5 и 3, оставив прежний порядок цифр. 30. Определить количество трехзначных натуральных чисел, делящихся на каждую из своих цифр. 31. Ввести натуральные числа а и b. Определить, можно ли получить запись числа а путем вычеркивания одной или более цифр числа b.
Контрольные вопросы 1. Какой процесс называется “циклическим”? 2. Чем отличаются операторы while и do…while?
3. Поясните понятие “вложенный цикл”?
Лабораторная работа № 3
|
|||||||
Последнее изменение этой страницы: 2016-04-23; просмотров: 394; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.145.38.77 (0.01 с.) |