- •Практическая работа «одномерные массивы» Понятие массива
- •Создание массива и заполнение его данными. Синтаксис объявления массива.
- •Вариант первый.
- •Вариант второй.
- •Обращение к элементам массива.
- •Варианты инициализации массива.
- •Показ содержимого массива на экран.
- •Пример 1. Программа для нахождения суммы отрицательных элементов массива
- •Пример 2. Программа для нахождения минимального и максимального элементов массива.
- •Генератор случайных чисел Использование функции rand.
- •Использование функции srand.
- •Использование функции time.
- •Установка диапазона для генератора.
- •Пример 3. Использование генератора случайных чисел – заполнение массива случайными числами.
- •Задачи для самостоятельного выполнения
Использование функции 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 по модулю.
Задачи для самостоятельного выполнения
В одномерном массиве, состоящем из n вещественных элементов, вычислить: 1) сумму отрицательных элементов массива; 2) произведение элементов массива, расположенных между максимальным и минимальным элементами.
В одномерном массиве, состоящем из n вещественных элементов, вычислить: 1) сумму положительных элементов массива; 2)произведение элементов массива, расположенных между
В одномерном массиве, состоящем из n вещественных элементов, вычислить: 1) сумму элементов массива с нечетными номерами; 2)сумму элементов массива, расположенных между первым и последним отрицательными элементами.
В одномерном массиве, состоящем из n вещественных элементов, вычислить: 1) максимальный элемент массива; 2) сумму элементов массива, расположенных до последнего положительного элемента.
В одномерном массиве, состоящем из n вещественных элементов, вычислить: 1) минимальный элемент массива; 2) сумму элементов массива, расположенных между первым и последним положительными элементами.
В одномерном массиве, состоящем из n целых элементов, вычислить: 1) номер максимального элемента массива; 2) произведение элементов массива, расположенных между первым и вторым нулевыми элементами.
В одномерном массиве, состоящем из n вещественных элементов, вычислить: 1) номер минимального элемента массива; 2) сумму элементов массива, расположенных между первым и вторым отрицательными элементами.
В одномерном массиве, состоящем из n вещественных элементов, вычислить: 1) максимальный по модулю элемент массива; 2) сумму элементов массива, расположенных между первым и вторым положительными элементами.
В одномерном массиве, состоящем из n целых элементов, вычислить: 1) минимальный по модулю элемент массива; 2) сумму модулей элементов массива, расположенных после первого элемента, равного нулю.
В одномерном массиве, состоящем из n вещественных элементов, вычислить: 1) номер минимального по модулю элемента массива; 2) сумму модулей элементов массива, расположенных после первого отрицательного элемента.
В одномерном массиве, состоящем из n вещественных элементов, вычислить: 1) номер максимального по модулю элемента массива; 2) сумму элементов массива, расположенных после первого положительного элемента.
В одномерном массиве, состоящем из n вещественных элементов, вычислить: 1) количество элементов массива, лежащих в диапазоне от А до В; 2) сумму элементов массива, расположенных после максимального элемента.
В одномерном массиве, состоящем из n вещественных элементов, вычислить: 1) количество элементов массива, равных 0; 2) сумму элементов массива, расположенных после минимального элемента.
В одномерном массиве, состоящем из n вещественных элементов, вычислить: 1) количество элементов массива, больших С; 2) произведение элементов массива, расположенных после максимального по модулю элемента.
В одномерном массиве, состоящем из n вещественных элементов, вычислить: 1) количество отрицательных элементов массива; 2) сумму модулей элементов массива, расположенных после минимального по модулю элемента.
В одномерном массиве, состоящем из n целых элементов, вычислить: 1) количество положительных элементов массива; 2) сумму элементов массива, расположенных после последнего элемента, равного нулю.
В одномерном массиве, состоящем из n вещественных элементов, вычислить: 1) количество элементов массива, меньших С; 2) сумму целых частей элементов массива, расположенных после последнего отрицательного элемента.
В одномерном массиве, состоящем из n вещественных элементов, вычислить: 1) произведение отрицательных элементов массива; 2) сумму положительных элементов массива, расположенных до максимального элемента.
В одномерном массиве, состоящем из n вещественных элементов, вычислить: 1) произведение положительных элементов массива; 2) сумму элементов массива, расположенных до минимального элемента.
В одномерном массиве, состоящем из n вещественных элементов, вычислить: 1) сумму отрицательных элементов массива; 2) произведение элементов массива, расположенных между максимальным и минимальным элементами.
В одномерном массиве, состоящем из n вещественных элементов, вычислить: 1) сумму положительных элементов массива; 2)произведение элементов массива, расположенных между
В одномерном массиве, состоящем из n вещественных элементов, вычислить: 1) сумму элементов массива с нечетными номерами; 2)сумму элементов массива, расположенных между первым и последним отрицательными элементами.
В одномерном массиве, состоящем из n вещественных элементов, вычислить: 1) максимальный элемент массива; 2) сумму элементов массива, расположенных до последнего положительного элемента.
В одномерном массиве, состоящем из n вещественных элементов, вычислить: 1) минимальный элемент массива; 2) сумму элементов массива, расположенных между первым и последним положительными элементами.
В одномерном массиве, состоящем из n целых элементов, вычислить: 1) номер максимального элемента массива; 2) произведение элементов массива, расположенных между первым и вторым нулевыми элементами.
В одномерном массиве, состоящем из n вещественных элементов, вычислить: 1) номер минимального элемента массива; 2) сумму элементов массива, расположенных между первым и вторым отрицательными элементами.
В одномерном массиве, состоящем из n вещественных элементов, вычислить: 1) максимальный по модулю элемент массива; 2) сумму элементов массива, расположенных между первым и вторым положительными элементами.
В одномерном массиве, состоящем из n целых элементов, вычислить: 1) минимальный по модулю элемент массива; 2) сумму модулей элементов массива, расположенных после первого элемента, равного нулю.
В одномерном массиве, состоящем из n вещественных элементов, вычислить: 1) номер минимального по модулю элемента массива; 2) сумму модулей элементов массива, расположенных после первого отрицательного элемента.
В одномерном массиве, состоящем из n вещественных элементов, вычислить: 1) номер максимального по модулю элемента массива; 2) сумму элементов массива, расположенных после первого положительного элемента.
