Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Уч пос Информатика.doc
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
396.8 Кб
Скачать

14. Функции для генерации случайных чисел

Функции генерации случайных чисел определены в файле stdlib.h.

Функция rand использует мультипликативный генератор случайных чисел с периодом 232, чтобы получать числа в диапазоне от 0 до RAND_MAX (215 – 1). Функция объявлена следующим образом:

int rand(void);

Пример программы, которая печатает на экране 10 случайных целых чисел в диапазоне от 0 до 99:

#include <stdio.h>

#include <stdlib.h>

void main(void)

{

int i;

printf("10 случайных чисел от 0 до 99:\n\n");

for (i=0; i<10; i++) printf("%d\n", rand()%100);

}

Макрос random возвращает случайное число в диапазоне от 0 до (n1) . Функция объявлена следующим образом:

int random(int n);

Макрос randomize инициализирует генератор случайных чисел значением текущего системного времени. Функция объявлена следующим образом:

void randomize(void);

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

Вызов randomize производится в программе только один раз (перед началом цикла генерации случайных чисел).

Так как randomize использует вызов функции time, при использовании этой функции следует подключить также файл time.h.

Пример программы, которая печатает на экране случайную десятичную цифру:

#include <stdio.h>

#include <stdlib.h>

#include <time.h>

Void main(void)

{

randomize();

printf("%d\n", random(10));

}

При каждом запуске эта программа выводит на экране новую цифру, а без использования randomize всегда выводилась бы одна и та же цифра.

Функция srand инициализирует генератор чисел заданным значением seed. Функция объявлена следующим образом:

Void srand(unsigned seed);

15. Пузырьковая сортировка

Сортировка представляет собой процесс упорядочения множества подобных друг другу информационных объектов в порядке возрастания или убывания их значений.

Наиболее известной, простой и медленной является сортировка пузырьковым методом. Пузырьковая сортировка использует метод обменной сортировки – она основана на выполнении в цикле операций сравнения и при необходимости обмена соседних элементов. Ее название происходит из-за подобия процессу движения пузырьков в резервуаре с водой: вверх всплывают более легкие элементы, а самые тяжелые опускаются вниз.

Функция для сортировки элементов массива по возрастанию содержит два вложенных цикла. Внутренний цикл выполняет сравнение j-го элемента массива с элементом с индексом (j-1) и выполняет перестановку элементов, если j-й меньше (j-1)-го.

Внешний цикл повторяется (n-1) раз, где n – количество элементов массива. После первой итерации в конец массива будет перемещен элемент, имеющий максимальное значение. В следующий раз внутренний цикл продолжается до (n-1)-го элемента, так как последний элемент проверять не требуется, и с каждой итерацией внешнего цикла число операций в внутреннем сокращается.

Пример функции, реализующей пузырьковую сортировку целых чисел по возрастанию значений: