Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Высокоуровневые методы информатики и программир...docx
Скачиваний:
25
Добавлен:
12.11.2019
Размер:
6.53 Mб
Скачать

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 ‑ размерность массива

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

float data [size]; // объявление массива

extern void bubble_sort(float a[ ], int s); // объявление функции сортировки

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

for (index=0;index<size;index++) data[index]=rand(); // заполнение массива

bubble_sort ( data, size ); // обращение к функции сортировки массива

for (index=0;index<size; index++)// цикл вывода отсортированного массива

printf( “\ndata [ %d ] = %f“, index, data [ index ]); getch(); }

Void bubble_sort( float a [ ], int s ) { // функция сортировки массива

int i, j; float temp; // объявление переменных

for ( i=0;i<s-1;i++) // внешний цикл

for(j=s-1;j>1;j--) // внутренний цикл

if (a[j]<a[j-1]) {temp=a[j]; a[j]=a[j-1];a[j-1]=temp;} }

6.2.10.10. Пустой оператор

Пустой оператор представляется символом “;”, перед которым нет вы­ра­жения. Пустой оператор используют там, где синтаксис языка тре­бует присутствия в данном месте программы оператора, однако по логике прог­раммы оператор должен отсутство­вать.

Необходимость в использовании пустого оператора часто возника­ет при программировании циклов, когда дей­ствия, которые могут быть вы­пол­нены в теле цикла, цели­ком помещаются в заголовок цикла.