Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Плещёв ВУМИП 2012-07-06.doc
Скачиваний:
66
Добавлен:
13.05.2015
Размер:
9.35 Mб
Скачать

6.2.10.9.Итерационный цикл ‑For

for ([<выражение-1>];[<выражение-2>];[< выражение-3>]) <оператор>

Формально правила выполнения этого оператора можно описать так:

  1. Если первое выражение присутствует, то оно вычисляется.

  2. Вычисляется второе выражение (если оно присутству­ет). Если вы­ра­­ба­ты­вается значение 0 (false), то цикл пре­кращается, в противном случае цикл будет продолжен.

  3. Исполняется тело цикла (<оператор>).

  4. Вычисляется третье выражение (если оно присутствует).

  5. Переход к пункту 2.

Появление в любом месте тела цикла оператора continue или break при­во­дит к переходу к шагу 4 или к выходу из цикла соответственно.

Пример программы подсчета суммы ряда 1+1/2+1/3+1/4+...1/1000:

int main(int argc, char **argv) {

float s, i; for (s=0,i=1;i<=1000; s+=1/i++); printf ( «\n%20.8f», s); getch(); }

Пример программы подсчета среднего числа массива чисел 1,2,..,100:

# define size 100 // макроподстановка размерности массива - 100

Int main(int argc, char **argv) { // основная функция

int data [size]; extern float average (int a[ ], int s ); int i;

for (i=0; i<size; i++) data [i]= i; // заполнение массива числами от 0 до 99

printf( «\nСреднее значение массива data=%f\n»,average(data,size));getch(); }

float average( int a [ ], int s ) // функция подсчета среднего числа массива

{ float sum = 0.0; int i; for (i = 0; i < s; i++) sum += a [ i ]; return sum / s; }

Пример программы вычисление максимальных и минимальных зна­чений элементов массива случайных чисел:

# define size 100 // макроподстановка size=100 ‑ размерность массива

Int main(int argc, char **argv) { // основная функция

float scores [size]; // объявление массива из ста вещественных чисел

float max(float data[ ],int s), min(float data[ ],int s); // объявление функций

int i; randomize(); // включение счетчика случайных чисел

for (i =0; i < size; i++ ) scores[ i ]= rand(); // заполнение массива случ.чисел

printf (« \nМаксимальное значение = %f», max( scores, size ));

printf («\nМинимальное значение = %f\n», min( scores, size )); getch(); } float max(float data [ ], int s ) { // функция поиска максимального числа

float maximum = data [ 0 ]; int i; for(i=1;i <s; i++)

if (data[i]>maximum ) maximum=data[i]; return maximum; }

float min( float data [ ], int s ) { // функция поиска минимального числа

float minimum = data [0]; int i; for (i = 1; i < s; i++)

if ( data [1] < minimum ) minimum = data [i]; return minimum; }

Пример программы сортировки «методом пузырька» массива из десяти случайных чисел. В основной функции в массив data заносится size (десять) вещественных чисел, затем вызывается функция сортировки bubble_sort, после чего от­сортированный массив распечатывается.

На первом проходе алгоритма сортировки все элементы массива, начиная с последнего, сравниваются попарно, и если элемент а[j] оказы­вает­ся меньше, чем элемент а[j-l], то элементы меняются мес­тами. После завершения первого прохода наименьший элемент массива будет помещен в a[0]. На втором проходе выполняются те же действия, однако про­ход заканчивается на элементе a[1]. После второго прохода второй по значе­нию элемент будет в a[1] и т.д. Название «метод пузырька» дано алго­рит­му потому, что при каждом просмотре наименьшие элементы как бы мед­ленно всплывают «наверх», подобно пузырьку воздуха в воде.

# define size 10 // макроподстановка size=10 ‑ размерность массива