Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология
Образование Политология Производство Психология Стандартизация Технологии


Циклы с неизвестным количеством повторений



Циклы 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; Нарушение авторского права страницы


lektsia.com 2007 - 2024 год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! (0.018 с.)
Главная | Случайная страница | Обратная связь