Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ПР Одномерные массивы.docx
Скачиваний:
2
Добавлен:
01.07.2025
Размер:
41.72 Кб
Скачать

Использование функции time.

Местоположение функции - библиотека time.h.

Если функцию time вызвать с параметром NULL, то на место своего вызова в программе, эта функция вернет количество миллисекунд прошедших с 1 января 1970 года. Эта величина каждый раз будет разной.

srand(time(NULL));

Функция srand устанавливает в качестве стартовой точки число, представляющее собой количество, миллисекунд прошедших с 1 января 1970 года.

#include<iostream>

#include<stdlib.h>// в этом файле содержатся функции rand и srand

#include<time.h>// в этом файле содержится функция time

using namespace std;

void main()

{ srand(time(NULL));

int a;

a=rand();//генерация случайного числа и запись его в переменную a

cout<<a<<"\n";

}

Установка диапазона для генератора.

Числа, которые получаются путем вызова функции rand, находятся в диапазоне от 0 до 32767. Нам не всегда требуется такой масштабный разброс данных. Что делать, если необходимо генерировать числа от 0 до 10 или от 0 до 100 и так далее?! На помощь, в таких случаях, приходит старое, доброе - деление по модулю.

Возьмем для примера произвольное число - 23. Согласитесь, что какое бы число вы не разделили на 23 по модулю, вы получите либо 0 (если остатка нет), либо остаток в диапазоне от 1 до 22. Этим свойством мы и воспользуемся, разделив сгенерированное случайное число по модулю:

int a=rand()%23;

На основании этого правила можно вывести формулу:

ЧИСЛО В ДИАПАЗОНЕ ОТ НУЛЯ ДО Х-1:

rand() % X

ЧИСЛО В ДИАПАЗОНЕ ОТ НУЛЯ ДО Х:

rand() % X+1

Но, диапазон не всегда начинается с нуля. Пусть нам необходим диапазон от 11 до 16. Все просто. Необходимо сгенерировать числа от 0 до 5 (разница между 16 и 11), а потом "сдвинуть" полученный результат на 11 единиц.

int a=rand()%5+11;

И, на основании уже модифицированного правила можно вывести формулу:

ЧИСЛО В ДИАПАЗОНЕ ОТ Y ДО Х:

rand() % (X+1-Y) + Y

Пример 3. Использование генератора случайных чисел – заполнение массива случайными числами.

#include<iostream>

#include<stdlib.h> // в этом файле содержатся функции rand() и srand()

#include<time.h> // в этом файле содержится функция time()

using namespace std;

void main()

{ srand(time(NULL));

int array[10];

for (int i=0;i<10;i++)

{// генерация случайного числа и запись его в текущий элемент массива

array[i]=rand()%100;

cout<<array[i]<<”\n”;// показ значения элемента на экран

}

}

1. В приведенном выше примере на экран будет выведен массив из 10 элементов, заполненный случайными числами.

2. На каждой итерации цикла генерируется новое случайное число.

3. При каждом запуске программы массив будет заполнен по-разному, благодаря строке srand(time(NULL));

4. Числа располагающиеся, в массиве будут варьироваться в диапазоне от нуля до 99, так как результат генерации делится на 100 по модулю.

Задачи для самостоятельного выполнения

  1. В одномерном массиве, состоящем из n вещественных элементов, вычислить: 1) сумму отрицательных элементов массива; 2) произведение элементов массива, расположенных между максимальным и ми­нимальным элементами.

  2. В одномерном массиве, состоящем из n вещественных элементов, вычислить: 1) сумму положительных элементов массива; 2)произведение элементов массива, расположенных между

  3. В одномерном массиве, состоящем из n вещественных элементов, вычислить: 1) сумму элементов массива с нечетными номерами; 2)сумму элементов массива, расположенных между первым и последним отрица­тельными элементами.

  4. В одномерном массиве, состоящем из n вещественных элементов, вычислить: 1) максимальный элемент массива; 2) сумму элементов массива, расположенных до последнего положительного эле­мента.

  5. В одномерном массиве, состоящем из n вещественных элементов, вычислить: 1) минимальный элемент массива; 2) сумму элементов массива, расположенных между первым и последним поло­жительными элементами.

  6. В одномерном массиве, состоящем из n целых элементов, вычислить: 1) номер максимального элемента массива; 2) произведение элементов массива, расположенных между первым и вторым ну­левыми элементами.

  7. В одномерном массиве, состоящем из n вещественных элементов, вычислить: 1) номер минимального элемента массива; 2) сумму элементов массива, расположенных между первым и вторым отрицатель­ными элементами.

  8. В одномерном массиве, состоящем из n вещественных элементов, вычислить: 1) максимальный по модулю элемент массива; 2) сумму элементов массива, расположенных между первым и вторым положи­тельными элементами.

  9. В одномерном массиве, состоящем из n целых элементов, вычислить: 1) минимальный по модулю элемент массива; 2) сумму модулей элементов массива, расположенных после первого элемента, рав­ного нулю.

  10. В одномерном массиве, состоящем из n вещественных элементов, вычислить: 1) номер минимального по модулю элемента массива; 2) сумму модулей элементов массива, расположенных после первого отрицатель­ного элемента.

  11. В одномерном массиве, состоящем из n вещественных элементов, вычислить: 1) номер максимального по модулю элемента массива; 2) сумму элементов массива, расположенных после первого положительного эле­мента.

  12. В одномерном массиве, состоящем из n вещественных элементов, вычислить: 1) количество элементов массива, лежащих в диапазоне от А до В; 2) сумму элементов массива, расположенных после максимального элемента.

  13. В одномерном массиве, состоящем из n вещественных элементов, вычислить: 1) количество элементов массива, равных 0; 2) сумму элементов массива, расположенных после минимального элемента.

  14. В одномерном массиве, состоящем из n вещественных элементов, вычислить: 1) количество элементов массива, больших С; 2) произведение элементов массива, расположенных после максимального по мо­дулю элемента.

  15. В одномерном массиве, состоящем из n вещественных элементов, вычислить: 1) количество отрицательных элементов массива; 2) сумму модулей элементов массива, расположенных после минимального по мо­дулю элемента.

  16. В одномерном массиве, состоящем из n целых элементов, вычислить: 1) количество положительных элементов массива; 2) сумму элементов массива, расположенных после последнего элемента, равного нулю.

  17. В одномерном массиве, состоящем из n вещественных элементов, вычислить: 1) количество элементов массива, меньших С; 2) сумму целых частей элементов массива, расположенных после последнего от­рицательного элемента.

  18. В одномерном массиве, состоящем из n вещественных элементов, вычислить: 1) произведение отрицательных элементов массива; 2) сумму положительных элементов массива, расположенных до максимального элемента.

  19. В одномерном массиве, состоящем из n вещественных элементов, вычислить: 1) произведение положительных элементов массива; 2) сумму элементов массива, расположенных до минимального элемента.

  20. В одномерном массиве, состоящем из n вещественных элементов, вычислить: 1) сумму отрицательных элементов массива; 2) произведение элементов массива, расположенных между максимальным и ми­нимальным элементами.

  21. В одномерном массиве, состоящем из n вещественных элементов, вычислить: 1) сумму положительных элементов массива; 2)произведение элементов массива, расположенных между

  22. В одномерном массиве, состоящем из n вещественных элементов, вычислить: 1) сумму элементов массива с нечетными номерами; 2)сумму элементов массива, расположенных между первым и последним отрица­тельными элементами.

  23. В одномерном массиве, состоящем из n вещественных элементов, вычислить: 1) максимальный элемент массива; 2) сумму элементов массива, расположенных до последнего положительного эле­мента.

  24. В одномерном массиве, состоящем из n вещественных элементов, вычислить: 1) минимальный элемент массива; 2) сумму элементов массива, расположенных между первым и последним поло­жительными элементами.

  25. В одномерном массиве, состоящем из n целых элементов, вычислить: 1) номер максимального элемента массива; 2) произведение элементов массива, расположенных между первым и вторым ну­левыми элементами.

  26. В одномерном массиве, состоящем из n вещественных элементов, вычислить: 1) номер минимального элемента массива; 2) сумму элементов массива, расположенных между первым и вторым отрицатель­ными элементами.

  27. В одномерном массиве, состоящем из n вещественных элементов, вычислить: 1) максимальный по модулю элемент массива; 2) сумму элементов массива, расположенных между первым и вторым положи­тельными элементами.

  28. В одномерном массиве, состоящем из n целых элементов, вычислить: 1) минимальный по модулю элемент массива; 2) сумму модулей элементов массива, расположенных после первого элемента, рав­ного нулю.

  29. В одномерном массиве, состоящем из n вещественных элементов, вычислить: 1) номер минимального по модулю элемента массива; 2) сумму модулей элементов массива, расположенных после первого отрицатель­ного элемента.

  30. В одномерном массиве, состоящем из n вещественных элементов, вычислить: 1) номер максимального по модулю элемента массива; 2) сумму элементов массива, расположенных после первого положительного эле­мента.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]