Символьні масиви

елементи рівні -1. Таким чином, всього три одиничних елемента і три елементи зі значенням -1, інші дорівнюють нулю.

Лістинг 3.4. Створення тривимірного масиву

public static void main (String [] args)

// Індексні змінні: int i, j, k;

// Обнулення елементів масиву: for (i = 0; i<3;i++) for(j=0;j<3;j++) for(k=0;k<3;k++) epsilon[i][j][k]=0;

// Поодинокі елементи масиву: epsilon [0] [1] [2] = epsilon [1] [2] [0] = epsilon [2] [0] [1] = 1;

// Елементи зі значенням -1: epsilon [1] [0] [2] = epsilon [0] [2] [1] = epsilon [2] [1] [0] = - 1;

Оголошується тривимірний масив epsilon командою byte [] [] [] epsilon = new byte [3] [3] [3]. Для надійності всіх елементів масиву привласнюються нульові значення, для чого використовується три вкладених інструкції циклу. Далі командою epsilon [0] [1] [2] = epsilon [1] [2] [0] = epsilon [2] [0] [1] = 1 задаються поодинокі значення для трьох елементів масиву і ще для трьох елементів значення - 1 (командою epsilon [1] [0] [2] = epsilon [0] [2] [1] = epsilon [2] [1] [0] = - 1).

- Чи не бачите? Стріляю!

- Дивний спосіб прикрашати будинок монограмою королеви.

З к / ф «Пригоди Шерлока Холмса і доктора Ватсона»

У мові програмування С ++ символьні масиви мають особливий ареол, оскільки там символьні масиви - один із засобів реалізації текстових рядків. В Java щодо символьних масивів все йде набагато простіше - це звичайний, з точки зору створення та застосування, масив, елементами якого є символи. Правда, і в Java в використанні символьних масивів є деякі особливості. Однак ці особливості скоріше пов'язані

зі специфікою типу char. ніж зі структурою або властивостями безпосередньо масиву. У лістингу 3.5 приведений простий приклад.

Лістинг 3.5. символьний масив

public static void main (String [] args)

Лістинг 3.6. кодування слова

public static void main (String [] args)

for (int i = 0; i

У програмі виконується досить просте кодування слова, записаного по буквах в масив words. Цей масив оголошується і инициализируется значеннями елементів, відповідними слову Слово. Далі оголошується ще один символьний масив code. Його розмір дорівнює розміру масиву words. Заповнення елементів масиву code виконується в рамках інструкції циклу. Для цього в тілі циклу використана команда code [i] = (char) (words [i] + i + 1).

В даному випадку при обчисленні виразу words [i] + i + 1 символ words [i] перетвориться в числовий формат (код символу) і до нього додається значення i + 1. Отримане число завдяки інструкції явного приведення типу

Присвоєння і порівняння масивів

перетвориться в символ. Цей символ записується в масив code. Далі обидва масиви виводяться на екран. В результаті виконання програми отримуємо наступне:

Для «розшифровки» отриманого «слова» можна застосувати зворотну процедуру. Пропонуємо читачеві зробити це самостійно.

Присвоєння і порівняння масивів

Прості речі розучилися робити!

З к / ф «Пригоди Шерлока Холмса і доктора Ватсона»

В принципі, один масив може бути привласнений як значення іншому масиву, якщо їх типи збігаються. Масиви також можна порівнювати. Правда, все зазначені операції виконуються досить специфічно і в деякій мірі можуть здивувати. Щоб звести таке здивування до мінімуму, має сенс ще раз зупинитися на тому, що ж таке масив і як його технічна реалізація пов'язана синтаксичними конструкціями мови Java.

Змінна, що позначає масив (змінна масиву), оголошується незалежно від фактичного виділення пам'яті під масив. Іншими словами, безпосередньо масив і змінна масиву - це далеко не одне і те ж. У цьому сенсі показовим є двоетапний (двома командами) процес з- будівлі масиву. наприклад:

Глава 3. Масиви

тимчасової nums. Тепер нескладно здогадатися, яким буде результат виконання наступних команд:

int [] nums, data; nums = new int []; data = nums;

При порівнянні масивів за допомогою операторів одно == і не дорівнює! = (Наприклад, nums == data або nums! = Data) порівнюються значення змінних масиву, а не елементи в цих масивах. Тому результатом вираження nums == data є true. якщо обидві змінні масиву nums і data посилаються на один і той же масив.

Приклад програми, в якій має місце присвоювання масиву, приведений в лістингу 3.7.

Лістинг 3.7. Присвоєння масиву

public static void main (String [] args)

У програмі оголошуються два цілочисельних масиву: масив nums з 10 елементів і масив data з 20 елементів. За допомогою інструкції циклу ці масиви заповнюються: масив nums заповнюється непарними числами, масив data - парними. Після цього командою data = nums масиву data в якості значення присвоюється масив nums. Звертаємо увагу, що хоча ці масиви мають

Присвоєння і порівняння масивів

однаковий тип, у них різні розміри. Далі за допомогою ще однієї інструкції циклу елементи масиву data виводяться з інтервалом в один рядок (для виведення значень без переходу до нового рядка використовуємо метод print ()). В результаті ми отримуємо числовий ряд:

1 3 5 7 9 11 13 15 17 19

Це ті значення, якими ініціалізувати масив nums. Інтерес в даному випадку представляє ту обставину, що в інструкції циклу, що забезпечує висновок значень масиву data. верхня межа для індексів елементів масиву визначається через властивість length масиву data. Масив ініціалізувати за розміром 20, а в кінцевому підсумку його розмір дорівнював 10! Причина очевидна. Після виконання команди data = nums змінна масиву data починає посилатися на той же масив, що і змінна масиву nums.

Особливості порівняння масивів на предмет рівності (нерівності) ілюструються програмним кодом лістингу 3.8.

Лістинг 3.8. порівняння масивів

public static void main (String [] args)

// Перевірка збігу посилань:

System.out.println ( "Співпадаючі масиви!"); return;>

// Поелементна перевірка масивів: for (int i = 0; iSystem.out.println ( "Незбіжні елементи!"); return; >>

Програма призначена для порівняння двох цілочисельних масивів. У програмі оголошуються два цілочисельних масиву nums і data і не започатковано однаковими наборами значень. Далі безпосередньо виконується перевірка. Складається вона з трьох етапів. Спочатку виконується перевірка рівності змінних масивів nums і data. Якщо посилання рівні, то, очевидно, масиви однакові (збігаються). Перевірка рівності посилань на масиви виконується

Схожі статті