Увод в програмирането
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; }