Trendy:

Едномерни масиви

Съставен тип данни. Едномерни масиви

 

 

1.          Структура от данни

Под структура от данни се разбира организирана информация, която може да бъде описана, създадена и обработена с помощта на програма.

Когато елементите на една структура се състоят от една компонента, те се наричат прости, или скаларни.

Структури от данни, компонентите на които са редици от елементи, се наричат съставни.

Структури от данни, за които операциите включване и изключване на елемент не са допустими, се наричат статични, в противен случай - динамични.

 

2.    Масив a. Логическо описание

 

Масивът е крайна редица от фиксиран брой елементи от един и същ тип. Към всеки елемент от редицата е възможен пряк достъп, който се осъществява чрез индекс. Операциите включване и изключване на елемент в/от масива са недопустими, т.е. масивът е статична структура от данни.

b.     Физическо представяне

Елементите на масива се записват последователно в паметта на компютъра, като за всеки елемент на редицата се отделя определено количество памет.

В езика C++ структурата масив се реализира чрез типа масив. Разглежда се като крайна редица от елементи от един и същ тип с пряк достъп до всеки елемент, осъществяващ се чрез индекс с цели стойности, започващи от 0 и нарастващи с 1 до указана горна граница. Дефинира се от програмиста.

3. Дефиниране на едномерен масив

тип_на_елементите променлива_масив [брой_на_елементите];

Типът на елементите може да бъде всеки стандартен или предварително дефиниран тип.Нарича се базов тип.

 Променливата_масив се задава с идентификатор.

 Броят на елементите на масива се задава с константен израз от целочислен тип с положителна стойност. Той се загражда в квадратни скоби. Броят на елементите на масива не може да се променя след дефинирането.

Примери:

int x[10];

char name[20];

тип_на_елементите променлива_масив [брой на елементите] = { стойност1, стойност2,...};

Tип  <променлива>[size] = {<редица_от_константни_изрази>}

се нарича дефиниция на масив с инициализация, а фрагмента {<редица_от_константни_изрази>} - инициализация. При нея е възможно size да се пропусне. Тогава за стойност на size се подразбира броят на константните изрази, изброени в инициализацията. Ако size е указано и изброените константни изрази в инициализацията са по-малко от size, останалите се приемат за 0.

Пример:

int q[5]={8, 2, 3, 15, 6};

 

След тази дефиниция елементите на масива q приемат следните начални стойности:

 

q[0] приема стойност 8, q[1] - a 2, q[2] – a3, q[3] – a15, q[4] – a6.

 

1.          Дефиницията

 

int q[5] =  {1, 2, 3};

 

е еквивалентна на

 

int q[] =  {1, 2, 3, 0, 0};

 

т.е. ако инициализаторът предостави по-малко елементи, за останалите се предполага стойност 0.

 

2.          Дефиницията  int r[] = {0, 1, 2, 3};

 

e еквивалентна на    int  r[4] = {0, 1, 2, 3};

 

Забележка: Не са възможни конструкции от вида:

 

int q[5];      q = {0, 1, 2, 3, 4};

 

т.е. не съществува присвояване на масив, подобно на инициализирането!



Ще отбележим, че Фрагментите

 

<променлива>[size] и

 

<променлива>[size] = {<редица_от_константни_изрази>}

 

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

 

Пример: Дефиницията

 

        int m1[20], m2[35], proben[30];

 

е еквивалентна на дефинициите:

       int m1[20];

       int m2[35];

       int proben[30];

 

4.          Достъп до елементите на масива

 

Елементите на масива се наричат още променливи с индекс или индексирани

 

променливи. Индексът може да бъде израз с положителна стойност, по-малка от броя на

 

елементите на масива. До всеки елемент на масива има пряк достъп. Достъпът се осъществява

 

посредством индекса, който се загражда в квадратни скоби. В езика С/C++ винаги първият

 

елемент на масива има индекс нула.

 

Пример: int  m[20];

 

m[0]=5; //първият елемент на масива приема стойност 5

       

5.          Операции и вградени функции

        Не са възможни операции над масиви като цяло, но всички операции и вградени функции, които базовият тип допуска, са възможни за индексираните променливи, свързани с масива.

        Пример: Нека

        int a[5], b[5];

Недопустими са:

cin >> a >> b;

        a = b;

а също a == b или a != b.

        Операторът

        cout << a;

е допустим и извежда адреса на a[0].



Задача.Да се напише програма, която въвежда елементите на едномерен масив от цели числа и след това ги извежда в обратен ред.

#include <iostream>

using namespace std;

int main()

{

   cout << "Vavedete broa na elementite:  "; int n; cin >> n;

   int a[20];

 

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

 

    {cout << "a[" << i << "]= ";  cin >> a[i]; }

 

    for (int i =n-1; i >= 0; i--)

 

    cout << "arr[" << i << "]= " << arr[i] << ‘\n’;

 

  return 0;

}

Сподели тази страница

Submit to FacebookSubmit to TwitterSubmit to LinkedIn

Login Form


IV ОУ "Св.Св.Козма и Дамян" -гр Сандански

Cookies make it easier for us to provide you with our services. With the usage of our services you permit us to use cookies.
More information Ok