Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АрхитектураБиологияГеографияДругоеИностранные языки
ИнформатикаИсторияКультураЛитератураМатематика
МедицинаМеханикаОбразованиеОхрана трудаПедагогика
ПолитикаПравоПрограммированиеПсихологияРелигия
СоциологияСпортСтроительствоФизикаФилософия
ФинансыХимияЭкологияЭкономикаЭлектроника

Заполнение массива случайными числами



Читайте также:
  1. IX. Заполнение листка нетрудоспособности
  2. А1. Ввод массива с клавиатуры
  3. Анализ элементов массива
  4. В качестве контрольного примера используйте пример пятиэлементного массива целых чисел из первого способа
  5. Ввод и вывод на экран двумерного массива
  6. Ввод и вывод элементов двумерного массива.
  7. Ввод и вывод элементов массива

int rand;

Функция rand возвращает псевдослучайное целое в интервале от 0 до 32767. Процедура srand может использоваться перед вызовом rand для установки начальной случайной точки. Возвращаемое значение. Функция rand возвращает псевдослучайное число.

Функция srand() устанавливает свой аргумент как основу (seed) для новой последовательности псевдослучайных целых чисел, возвращаемых функцией rand(). Эту последовательность можно воспроизвести. Для этого необходимо вызвать srand() с соответствующей величиной seed.

#include <iostream>

#include <cstdlib>

#include <time.h>

using namespace std;

int main()

{

const int n=10;

int a[n];

int i,imax,imin,count;

srand(time(NULL));

for (i=0;i<n;i++) a[i]= rand()%20;

for (i=0;i<n;i++)

{

cout<<"A["<<i<<"]="<<a[i]<<endl;

}

 

for (i=imax=imin=0;i<n;i++)

{

if (a[i]>a[imax]) imax=i;

if (a[i]<a[imin]) imin=i;

}

cout <<" max= "<<a[imax]<<" min= "<<a[imin];

int ibeg=imax < imin? imax: imin;

int iend=imax > imin? imax: imin;

cout <<" ibeg= "<<ibeg<<" iend= "<<iend;

for (count=0,i=ibeg+1;i<iend;i++)

if (a[i]>0) count++;

cout <<"Koli4estvo polozitelnih: "<<count<<endl;

cin.get();cin.get();

return 0;

}

 


Замечание: в С++ нельзя присваивать один массив другому.

Например:

float x[7], y[7];

x=y; // ошибка

Для того, чтобы реализовать такое присваивание, нужно использовать цикл, например:

for (i=0; i<7; i++) x[i]=y[i];

Замечание: компилятор С++ не контролирует выход за границы массива. Программист сам должен следить за значениями индексов, иначе программа будет нарушена.

Например:

float MAS[10];

for (i = 0; i < 100; i++)

MAS[i] = i+5;

Здесь будет выполнено 100 итераций, несмотря на то, что массив MAS имеет длину 10.

Было принято решение: поскольку С++ - язык профессионалов, то компилятор не будет тратить время на проверку принадлежности индекса определенному диапазону.

При работе с массивами очень часто требуется одинаково обработать все элементы или часть элементов массива. Для этого организуется перебор массива.

Перебор элементов массива характеризуется:

· направлением перебора;

· количеством одновременно обрабатываемых элементов;

· характером изменения индексов.

По направлению перебора массивы обрабатывают:

· слева направо (от начала массива к его концу);

· справа налево (от конца массива к началу);

· от обоих концов к середине.

Индексы могут меняться

· линейно (с постоянным шагом);

· нелинейно (с переменным шагом).

Перебор массива по одному элементу. Элементы можно перебирать:

· Слева направо с шагом 1, используя цикл с параметром

for(int i=0;i<n;i++){обработка a[i];}

· Слева направо с шагом отличным от 1, используя цикл с параметром

for (int i=0;i<n;i+=step){обработка a[i];}

· Справа налево с шагом 1, используя цикл с параметром

for(int i=n-1;i>=0;i--){обработка a[i];}

· Справа налево с шагом отличным от 1, используя цикл с параметром

for (int i=n-1;i>=0;i-=step){обработка a[i];}


Дата добавления: 2015-07-11; просмотров: 76 | Нарушение авторских прав






mybiblioteka.su - 2015-2024 год. (0.007 сек.)