Одномерные массивы

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

Доступ к отдельной переменной осуществляется по индексу.

Индекс определяет положение элемента в массиве. Индекс элемента массива и его содержимое – это разные понятия.

Объявление одномерного массива, синтаксис: тип_ массива имя_массива [ число элементов массива ]   

 

Правила объявления массива:

  1. Индекс первого элемента массива в С++ равен 0 (нулю).
  2. Объявление массива в С++ влечет за собой точное определение числа его элементов (количество элементов массива должно быть всегда целым числом).
  3. Доступ к отдельным элементам массива осуществляется по имени массива и индексу элемента массива:    a[0] = 1; a[1] = 2.
  4. В инструкции объявления массива удобно использовать константу, объявленную в директиве    # define N 5

Правила использования элементов массива:

  1. Необходимо присваивать значение элементу массива до того, как он будет считываться
  2. При решении задач использовать допустимый индекс

    int mas[10];      // объявленный массив

     x = mas[11];     // ошибка, элементы с таким индексом не существуют

  3. В качестве индекса элемента массива можно использовать выражение целого типа – константу или переменную

      x[2*i - 1];  mas[i + 1];    a[2*i] 

Инициализация массивов

Инициализацию массивов можно проводить при их объявлении.

int mas[12] = {2, 4, 7, 11, 12, 13, 8, 5, 1, 2, 6, 9};

mas[0] = 2;         mas[4] = 12;    mas[8] = 1;    mas[11] = 9;

Если в списке инициализации значений указано меньше, чем объявлено в размере массива, то имеет место частичная инициализация. В этом случае иногда после последнего значения в инициализирующем выражении для наглядности ставят запятую:

int mas[12] = {2, 4, 7, };  или   int mas[12] = {2, 4, 7};

остальные элементы принимают значение равные нулю.

int mas[10] = {0} – массив mas [10]  инициализирован нулевыми элементами.

При объявлении массива с одновременной его инициализацией, разрешается опускать значение размера в квадратных скобках. При этом компилятор самостоятельно подсчитает количество элементов в списке инициализации.

int mas[ ] = {0, 2, 4, 6, 8, 10};

Если в программе потребуется определить, сколько элементов в массиве, то можно воспользоваться формулой

int size = sizeof (mas) / sizeof (mas[0]); где

sizeof (mas)       определяет возвращает общий размер, занимаемый массивом mas[ ] в памяти (в байтах);

sizeof (mas[0]) -   размер одного элемента массива/

sizeof – оператор для определения числа байтов, необходимых для хранения объекта

Ввод элементов массива

а) инициализация при объявлении массива

float a[5] = {1.3, 2.5, 4.4, 7.9}

б)      float a[10];      // объявление массива

cout << “Ввод элементов массивап“<<’ \ n’;

for (int i=0; i<10; i++)    cin >> a[i]; 

в) ввод по формуле:

double a[7];  int i;  // объявление

for (i=0; i<=6; i++)     a[i] = cos(i*i);

г) использование генератора случайных чисел

# include < stdlib.h >

main ( )

{ randomize( ); 

int a[10];

for (int i = 0; i < 10; i++)   a[i] = random(30);      [в интервале 0÷30]

( или  a[i] = 10 + random[41]).

Вывод элементов массива

а)      for (i=0; i<=9; i++)

cout << a[i] << ‘\n’;            //вывод в столбик

б)      for (i=0; i<=9; i++)

cout << a[i] << ‘\t’;          // вывод в строку

cout << ‘ \ n’;             

Пример с одномерным массивом (Решение задачи можно посмотреть, скачав файл "Задача-8"):

Дан одномерный массив целых чисел. Найти сколько раз введенное с клавиатуры число встречается в массиве.

#include<iostream.h>
#define n 10
main ()
{int mas [n], i, a, kol=0;
 cout<<"Vvedite masiv"<<'\n';
 for (i=0; i<n; i++)
      cin>>mas[i];
 cout<<"Vvedite chislo dlya poiska"<<'\n';
 cin>>a;
 for (i=0; i<n; i++)
     if (a==mas[i]) kol++;
 if (kol==0) cout<<"Vvedennogo chisla v massive net"<<'\n';
     else cout<<"Vvedenoe chislo vstrechaetsya "<<kol<<" raz(a)"<<'\n';
 return 0;
}

Четверг, 09.05.2024, 02:54
Приветствую Вас Гость