КАТЕГОРИИ:
АстрономияБиологияГеографияДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРиторикаСоциологияСпортСтроительствоТехнологияФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника
|
Формирование псевдодинамических массивовПри описании массива в программе надо обязательно указывать количество элементов массива для того, чтобы компилятор выделил под этот массив нужное количество памяти. Это не всегда бывает удобно, т. к. число элементов в массиве может меняться в зависимости от решаемой задачи. Динамические массивы реализуются с помощью указателей (см. далее). Псевдодинамические массивы реализуются следующим образом: 1) при определении массива выделяется достаточно большое количество памяти: const int MAX_SIZE=100;//именованная константа int mas[MAX_SIZE]; 2) пользователь вводит реальное количество элементов массива меньшее N. int n; cout<<”\nEnter the size of array<”<<MAX_SIZE<<”:”;cin>>n; 3) дальнейшая работа с массивом ограничивается заданной пользователем размерностью n.
Т. о. используется только часть массива. 6.2.3. Использование датчика случайных чисел для формирования Датчик случайных чисел (ДСЧ) – это программа, которая формирует псевдослучайное число. Простейший ДСЧ работает следующим образом: 1) Берется большое число К и произвольное . 2) Формируются числа х1=дробная_часть(х0*К); х2=дробная_часть(х1*К); и т. д. В результате получается последовательность чисел х0, х1, х2,. . . беспорядочно разбросанных по отрезку от 0 до 1. Их можно считать случайными, а точнее псевдослучайными. Реальные ДСЧ реализуют более сложную функцию f(x). В Си++ есть функция int rand() – возвращает псевдослучайное число из диапазона 0..RAND_MAX=32767, описание функции находится в файле <stdlib.h>. Пример формирования и печати массива с помощью ДСЧ: #include<iostream.h> #include<stdlib.h> void main() { int a[100]; int n; cout<<”\nEnter the size of array:”;cin>>n; for(int I=0;I<n;I++) {a[I]=rand()%100-50; cout<<a[I]<<” “; } } В этой программе используется перебор массива по одному элементу слева направо с шагом 1. Задача 1
|