|
Увод в програмирането
alpha
|
Масивът е n-мерна наредена съвкупност от елементи от един и същ тип. Преди да се използва един масив той трябва да се дефинира. NB! Има ограничения в размерността!
Примери за дефиниране на масив:
int arr[5]; // дефинираме масив с 5 елемента тип int
На мястото на "5" може да стои произволна целочислена константа.
Примери: 4,10,11,12,15,100,100000 ;
Работа с елементи на масив:
int vect[7] = { 1, 2, 3, 4, 5, 6, 7 };
// Дефинира масив с 7 елемента като същевременно инициализираме стойностите на масива
cout<<vect[0]<<endl;
// извежда първият елемент от масива ( 1 ) на екрана последван от нов ред;
cout<<vect[1]<<endl;
// извежда първият елемент от масива ( 2 ) на екрана последван от нов ред;
cout<<vect[2]<<endl;
// извежда първият елемент от масива ( 3 ) на екрана последван от нов ред;
cout<<vect[3]<<endl;
// извежда първият елемент от масива ( 4 ) на екрана последван от нов ред;
cout<<vect[4]<<endl;
// извежда първият елемент от масива ( 5 ) на екрана последван от нов ред;
cout<<vect[5]<<endl;
// извежда първият елемент от масива ( 6 ) на екрана последван от нов ред;
cout<<vect[6]<<endl;
// извежда първият елемент от масива ( 7 ) на екрана последван от нов ред;Пример:
int arr[5];
// Валидни индекси на елементи от масива са 0, 1, 2, 3, 4 .Едномерните масиви се използват за представяне на вектори: -> Последователните елементи се представят като последователни полета в оперативната памет.
Пример: Искаме да ползваме следния вектор: a ( 1, 2, 3) Като код представянето изглежда така:
int vector_a [3] = { 1, 2, 3};Представяне на матрици - двумерни масиви:
double mat[3][2];
Инициализиране на елементите на масива:
ляляляля
Обръщения към елементите на масива:
mat[0][0];
mat[0][1];
mat[1][0];
mat[1][1];
mat[2][0];
mat[2][1];Елементите на масива се записват в посочения ред в оперативната памет.
Общ модел на достъпване на елемент:
mat[i][j];
Пример за работа с 3мерен масив:
float table[4][3][2];
// дефиниране на 3мерен масив;
// Достъпване на елементи:
table[0][0][0];
table[0][0][1];
table[0][1][0];
table[0][1][1];
table[0][2][0];
table[0][2][1];
table[1][0][0];
table[1][0][1];
table[1][1][0];
table[1][1][1];
table[1][2][0];
table[1][2][1];
table[2][0][0];
table[2][0][1];
table[2][1][0];
table[2][1][1];
table[2][2][0];
table[2][2][1];
table[3][0][0];
table[3][0][1];
table[3][1][0];
table[3][1][1];
table[3][2][0];
table[3][2][1];Едномерен символен масив / масив от char-ове /
char str[12];
В C/C++ няма вграден тип низ от символи ( string ).
За това разглеждаме едномерни символни масиви като променливи от тип низ от символи.
Работа с низове:
char str[12];
// Грешно:
str = "abc"; // Невалидна команда!
// Правилно:
str[0] = 'a';
str[1] = 'b';
str[2] = 'c';
str[3] = '\0'; // специален символ; нулев байт; сигнализира край на низС дефинирането на един масив се определя диапазоните на индексите.
Не се прави вградена проверка дали индексът, който се използва, е в диапазоните.
Ако индексът не е в зададените диапазони се генерира адрес на поле, което е извън разпреленената памет за масива.
Стойността на елемента е неопределена.
Трябва да се оцени правилно колко памет изисква масивът.
Задача:
От клавиатурата се въвеждат n цели числа и се извеждат в обратен ред:
#include <iostream >
using namespace std;
int main()
{
int n,i;
int number[20];
cout<<"Въведете броя на числата: \n"
cin>>n;
i = 0;
while( i < n)
{
cout<<"Въведете "<< i <<"-то число: ";
cin>>number[i];
i++;
}
cout<<"\n Числата в обратен ред: \n";
i = n-1;
while( i >= 0 )
{
i--;
cout<<number[i]<<" ";
}
return 0;
}