Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология Образование Политология Производство Психология Стандартизация Технологии |
Циклы с неизвестным количеством повторений
Циклы while или repeat используются тогда, когда количество повторений цикла заранее неизвестно и не может быть вычислено. Цикл while состоит из заголовка и тела цикла. В заголовке после слова while в круглых скобках записывается условие, при котором цикл продолжает выполняться. Когда это условие нарушается (становится ложно), цикл заканчивается. В условии можно использовать знаки логических отношений и операций > < больше, меньше > = < = больше или равно, меньше или равно == равно ! = не равно Если условие неверно в самом начале, то цикл не выполняется ни разу (это цикл с предусловием). Если условие никогда не становится ложным (неверным), то цикл никогда не заканчивается; в таком случае говорят, что программа «зациклилась» — это серьезная логическая ошибка. В языке Си любое число, не равное нулю, обозначает истинное условие, а ноль - ложное Условие while ( 1 ){... } // бесконечный цикл while ( 0 ){... } // цикл не выполнится ни разу Тело цикла заключается в фигурные скобки; если в теле цикла стоит всего один оператор, скобки можно не ставить. В тело цикла могут входить любые другие операторы, в том числе и другие циклы (такой прием называется «вложенные циклы»). Для того, чтобы легче разобраться в программе, все тело цикла и ограничивающие его скобки сдвигаются вправо на 2-3 символа. Цикл do-while также используется тогда, когда количество повторений цикла заранее неизвестно и не может быть вычислено. Цикл do-while состоит из заголовка do, тела цикла и завершающего условия. Условие записывается в круглых скобках после слова while, цикл продолжает выполняться, пока условие верно; когда условие становится ложным, цикл заканчивается. Условие проверяется только в конце очередного шага цикла (это цикл с постусловием), таким образом, цикл всегда выполняется хотя бы один раз. Если условие никогда не становится ложным (неверным), то цикл никогда не заканчивается, т.е. программа зацикливается. Тело цикла также заключается в фигурные скобки; если в теле цикла стоит всего один оператор, скобки можно не ставить. В тело цикла могут входить любые другие операторы, в том числе и другие циклы.
Рассмотрим пример из предыдущей работы - вычисление суммы квадратов натурального ряда чисел от 1 до n. S= = 12 + 2 2 +... + n 2. Изменим условие в этом примере: Определить число n, при котором сумма чисел S предыдущего ряда не превысит величину K, введенную с клавиатуры. Такую программу можно реализовать с помощью циклов предусловия или постусловия следующим образом:
//lab3_2 циклы while и do…while #include< stdio.h> #include< conio.h> main() {int K, S, i; clrscr(); // очистка экрана перед выводом printf (“Введите К ”); scanf (“%d”, & K); // цикл с предусловием //цикл с постусловием S=0; S=0; i=0; i= 0; do while ( S< K) { i++; S+=i*i }; { i++; S+=i*i; } while ( S< K); printf (“n=%d S=%d\n”, i, S); getch(); } Отличие этих программ: если ввести К< 1, то в программе с предусловием получим S=0, i=0; а в программе с постусловием S=1, i=1.
ВЫПОЛНЕНИЕ РАБОТЫ Составить 3 варианта программ циклической структуры типа for и while, сравнить полученные результаты.
Варианты заданий 1. . 2. . 3. . 4. . 5. . 6. . 7. 8. 9. . 10. . 11. 12.
КОНТРОЛЬНЫЕ ВОПРОСЫ 4.1. Какой алгоритм является алгоритмом циклической структуры? 4.2. Типы циклов в языке Си. 4.3. Какой цикл выполнится хотя бы один раз? А какой - ни разу?
Лабораторная работа №4 Обработка статических массивов 1. ЦЕЛЬ РАБОТЫ: приобретение практических навыков в составлении программ с массивами.
ОСНОВНЫЕ СВЕДЕНИЯ Массивы - структурированный тип данных с элементами одного и того же типа, имеющий одно имя и определенное количество элементов. Количество элементов определяет размер массива. Порядковый номер элемента массива называется его индексом. Число индексов называется размерностью массива, например, массив с двумя индексами называется двумерным массивом. Строка символов является массивом символов, вектор – массив чисел, матрица – массив векторов. Обработка массивов выполняется следующим образом: объявление, ввод или инициализация элементов массива, преобразование и вывод. Объявление массива Чтобы использовать массив, надо его объявить – выделить место в памяти компьютера, объём которой зависит от количества элементов и типа массива. Тип массива - это тип входящих в него элементов. Массивы могут быть разных типов: — int, float, char, и т.д. Массив объявляют так же, как и обычные переменные, но после имени массива в квадратных скобках записывается его размер. int A[10], B[20]; // 2 массива по 10 и 20 целых чисел float C[12]; // массив из 12 вещественных чисел При объявлении массива можно сразу заполнить его начальными значениями, перечисляя их внутри фигурных скобок: int A[4] = { 2, 3, 12, 76 }; Если в списке в фигурных скобках записано меньше чисел, чем элементов в массиве, то оставшиеся элементы заполняются нулями. Если чисел больше, чем надо, компилятор сообщает об ошибке. Например, int A[4] = { 2 }; // последние три элемента равны 0 Для повышения универсальности программы размер массива лучше определять через константу. В этом случае для переделки программы для массива другого размера надо только поменять значение этой константы: const int N = 20; //N - константа main() { int A[N]; // размер массива задан через константу ... }
Популярное:
|
Последнее изменение этой страницы: 2016-03-17; Просмотров: 1520; Нарушение авторского права страницы