Двовимірні масиви
Не завжди буває зручно нумерувати ящики на складі з 0 до певного числа, іноді хочеться привести склад у більш впорядкований вигляд, наприклад ввести ряди. Тепер кожен ящик має свій номер ряду і свій порядковий номер у цьому ряді. Нехай на нашому складі є дев'ять ящиків, які містять 1, 2 і так далі 9 апельсинів. Ящики на складі розташовуються в три ряди по три ящики, тоді ситуацію на складі можна представити так:Індекси | 0 | 1 | 2 |
---|---|---|---|
0 | 1 | 2 | 3 |
1 | 4 | 5 | 6 |
2 | 7 | 8 | 9 |
Приклад. Обробка двовимірного масиву
Підрахувати суму елементів двомірного масиву розміром 3х5, які знаходяться на його "периметрі", тобто крайніх рядках і стовпцях.Розв’язання. У задачі не сказано про тип елементів та спосіб ініціалізації масиву. Виберемо на власний розсуд: нехай елементами масиву є цілими випадковими з проміжку 0..50.
Лістинг
package masuv_2D;
public class Masuv_2D {
public static void main(String [ ]args) {
// масив з 3 рядків і 5 стовпців,
// це масив з 3 ел., кожен з яких - масив з 5 ел.
int [ ][ ] a = new int[3][5];
// ініціалізація масиву випадковими
// тут a.length - кількість рядків
// тут a[0].length - кількість стовпців, можна
// використати a[1].length чи a[2].length
for (int i=0; i<a.length; i++) {
for (int j=0; j<a[0].length; j++) {
a[i][j]=(int)(Math.random()*10);
}
}
System.out.println("Вхідний масив:");
// виведення вхідного масиву на екран
for (int i=0; i<a.length; i++) {
for (int j=0; j<a[0].length; j++) {
System.out.print("a["+i+"]["+j+"]="+a[i][j]+"\t");
}
// переведення курсору виведення на новий рядок
System.out.println();
}
// початкова ініціалізація змінної для суми
int s=0;
// обчислюємо суму ел. першого і ост. стовпця
for (int i=0; i<a.length; i++) {
s=s+a[i][0]+a[i][a[0].length-1];
}
// додаємо до суми ел. першого і останнього рядка,
// крім крайніх елементів, бо вони вже
// враховані у попередньому циклі
for (int j=1; j<a[0].length-1; j++) {
s=s+a[0][j]+a[a.length-1][j];
}
System.out.println("Сума по периметру масиву: "+s);
}
}
Результат
Вхідний масив:a[0][0]=4 a[0][1]=2 a[0][2]=9 a[0][3]=5 a[0][4]=4
a[1][0]=8 a[1][1]=5 a[1][2]=0 a[1][3]=7 a[1][4]=2
a[2][0]=9 a[2][1]=6 a[2][2]=4 a[2][3]=6 a[2][4]=5
Сума по периметру масиву: 64
Домашні завдання
Шилдт: ст.128…131.
Тести
Heller: Assesment Test: 11, 27,
practExam: 10,
Sanghera: ch.6: 10, ch.2: 16, (+ page 49)
Jaworsky: p. 72: 19, 20, Sierra5: ch.5: 12.