![]()
Масивът е един от най-използваните в програмирането типове данни. Почти винаги, когато в програмата се появява необходимост от работа с редица еднотипни стойности се въвежда и съответен масив.
Пр. 1 Необходимост от обработване на редица от еднотипни данни
В програма се обработва средният успех на учениците от един клас (например с цел намиране на средния успех на целия клас или определяне на ученика с най-висок среден успех). Масивът е удобно средство за представяне на редицата от данни за средния успех, а именно – всеки елемент на масива ще съответства на средния успех на един ученик. Ще отбележим следните три характеристики на масива: а) елементите на масива са краен брой (в случая – равен на броя на учениците в класа); б) елементите на масива са от един и същи тип (в разглеждания пример средният успех на всеки ученик е реално число) и в) елементите на масива са подредени по някакъв признак (тук например може да считаме, че елементите са подредени според номерата на учениците).
Масивът е структурен тип данни, чиито стойности се представят с крайна редица от еднотипни стойности.
| Номер в класа (индекс) | 1 | 2 | … |
| Среден успех | 4,66 | 6.00 | … |
На всеки елемент на масива може да се съпостави неговият пореден номер в установената наредба между елементите, наречен индекс на елемента. Индексът определя мястото на елемента в масива. В случая с учениците на всеки среден успех се съпоставя поредният номер на ученика (таблица 1).
Възможно е елементите на масив да са подредени по два и повече признака. Така например оценките на всеки ученик в класа могат да се подредят по номера на ученика и по изучавания предмет (таблица 2). Броят на признаците, по които са подредени елементите на масива, се нарича размерност на масив.
При двумерните масиви мястото на елемента в масива се определя от два индекса. Например в таблица 2 оценката 3.00 съответства на двойката индекси 1 и Английски език.
Таблица 2:
| Номер в класа | Учебен предмет | |||
| Английски език | Биология | Информатика | … | |
| 1 | 3,00 | 5,00 | 6,00 | … |
| 2 | 5,00 | 6,00 | 6,00 | … |
| 3 | 4,00 | 5,00 | 5,00 | … |
| … | … | … | … | … |
Едномерните и двумерните масиви са най-използваните структури от еднотипни данни в ЕП.
Масивът в Java е променлива и като такава, преди използването му трябва да бъде деклариран. Декларацията може да се извърши по два начина – тип, следван от [] или тип и име, следвано от []. Тази декларация не заделя памет за масива. Заделянето се извършва с помощта на оператора new т.е. масивът в Java е обект.
Стъпките за създаване на масив са три: деклариране, заделяне на памет и нейната инициализация.
Пр. 1
int [] ArrInteger = new int[5];
Ако се извърши само декларация на името на масива, в паметта се заделя място, което се инициализира по-късно с оператора new. Декларирането на променливата на масива и заделянето на памет могат да се извършат с отделни оператори.
Пр. 2
int [] ArrInteger; //деклариране на променливата масив
ArrInteger = new int[5]; //заделяне на памет за 5 елемента
За достъп до елемент на масива се използва индекс, като индексирането започва от 0. Следователно последният елемент има индекс, равен на размера на масива минус единица. Тогава последният елемент на масива от Пр. 2 ще има индекс 4. За да се обърнем към елемент на масива, се изписва името на масива, последвано от квадратни скоби с индекса на елемента, към който искаме достъп.
Пр. 3
ArrInteger[2];
Инициализацията на масива може да се извърши по два начина:
- Инициализация, чрез присвояване на начални стойности на всеки елемент на масива поотделно:
ArrInteger[0]=10;
ArrInteger[1]=15;
ArrInteger[2]=20;
ArrInteger[3]=21;
ArrInteger[4]=13;
- Инициализиране при деклариране на масива, без да се използва оператора new:
int ArrInteger [] = {10, 15, 20, 21, 13};
boolean array2 [] = {true, false, true};
в този случай компилаторът сам определя брой на елементите (размера на масива), заделя необходимата памет и я инициализира със зададените стойности.
Елементите на масива може да са от всеки тип, позволен за езика. Те може дори да са също от тип масив.
Масивът поддържа свойство lentgh, което връща дължината му и е удобно за определяне на горната граница при индексиране. Долната е винаги 0.
Пр. 4
for (int I=0; I<ArrInteger.length;I++)
ArrInteger[I]=0; // нулиране на масива от горния пример
Многомерни масиви
Двумерният масив в езика Java се декларира с използване на две размерности. По същество той се явява едномерен масив от скрити указатели към едномерни масиви.
Пр. 5
int [][] matrix = new int [10][100];
//матрица с размерност 10х100
Съответно достъпът до елемент от двумерен масив се извършва чрез посочване на два индекса:
Пр. 6
matrix [2][35];
Инициализиране на многомерни масиви:
а) int myarrayX [][] = {{5, 6, 3},
{7, 2, 1},
{4, 0, 9}};
б) int myarrayY [][] = {{1},
{2, 3},
{4, 5, 6},
{7, 8, 9}};
При обработка на масиви, когато се налага обхождане на всички техни елементи, обикновено се използва операторът за цикъл for.
Пр. 7
- Извеждане на едномерен масив на екран
int myarray [] = {1, 2, 3, 4, 5};
for (int I=0; I<myarray.length; I++)
{
Syatem.out.println(myarray[I]);
}
- Извеждане на многомерен масив на екран
int myarray2 [][]={{1, 2, 3},
{4, 5, 6}};
for (int I=0; I<myarray2.length;I++)
{
for (int K=0; K<myarray2.length; K++)
{
System.out.println(myarray[I][K]);
}
}
Примерна програма
Пр. 8 Съставете програма, която по дадени стойности х1, х2,…, х12, отговарящи на месечния оборот (в левове) на фирма за всеки от дванадесетте месеца на изминалата година, определя средномесечната стойност на оборота.
Проектиране: Програмата въвежда и обработва еднотипно 12 стойности от реален тип, които е най-добре да се представят като реален масив (например с име ) с 12 елемента. Средномесечната стойност на оборота се определя по формулата за намиране на средно аритметично:
Изчисляването по формулата може да се програмира с помощта на оператор за цикъл с параметър, защото предварително е известно, че трябва да се съберат 12 числа.
Popularity: 1% [?]
No related posts.
Related posts brought to you by Yet Another Related Posts Plugin.
RSS Feed
Twitter

януари 26th, 2010
admin
Posted in 
