Інформація про новину
  • Переглядів: 774
  • Дата: 5-02-2022, 16:03
5-02-2022, 16:03

40. Двовимірні масиви в Python

Категорія: Інформатика





Попередня сторінка:  39. Візуалізація даних в Python
Наступна сторінка:   41. Практична робота 9. «Дії з двовимірн...

40.1.

Поняття двовимірного масиву

Ми вже познайомилися з опрацюванням одновимірних масивів. У мові Python є можливість опрацювання масивів, що містять більше одного рядка. Такі масиви називають двовимірними масивами або таблицями. В математиці двовимірні масиви називають матрицями.

Двовимірні масиви містять дані одного типу, де кожний елемент визначається двома числами: номером рядка та номером стовпця, на перетину яких його розташовано. Так, на рис. 40.1 наведено приклад цілочисельного двовимірного масиву, що містить 3 рядки та 4 стовпці.

Зверніть увагу, що нумерація як рядків, так і стовпців починається з нуля. Двовимірні масиви у мові Python реалізуються через списки, вкладені до списку. Отже, наведений вище приклад буде представлено таким чином:

Для

наочності списки можна подавати у наступному вигляді:

З наведеного прикладу видно, що весь масив обмежується квадратними дужками. Також квадратними дужками обмежуються рядки масиву.

40.2.

Створення двовимірного масиву

Розглянемо способи створення двовимірних масивів.

1 спосіб

Найпростіший спосіб — це присвоєння змінній списку із вкладеними списками. Нижче наведено загальний вигляд такого списку:

Так, нижче наведено приклад створення та виведення цілочи-сельного списку, що містить 3 рядки та 4 стовпці.

Якщо необхідно вивести не весь список, а один із його елементів, команда виведення буде мати таку загальну конструкцію:

Так, для виведення елемента масиву mas, що знаходиться у другому рядку та нульовому стовпці, необхідно скористатися командою:

ПРАКТИЧНЕЗАВДАННЯ 1

1. Уведіть програмний код створення та виведення масиву mas, наведеному в якості прикладу.

2. Запустіть програму та перевірте, як вона працює.

3. Додайте команду виведення елемента, що знаходиться у другому рядку та в нульовому стовпці.

4. Перевірте, як буде працювати програма тепер.

Для виведення кожного рядка списку з нового рядка потрібно скористатися оператором циклу:

5. Змініть команду виведення списку на команди, представлені вище, та перевірте, як буде здійснюватися виведення списку цим способом.

Зручним також буде представлення елементів двовимірного масиву без зайвих символів, а саме:

Для такого подання слід скористатися вкладеним циклом:

Тут і — номер поточного рядка, j — номер поточного стовпця, \t — символ табуляції, що дозволяє зробити відступ між елементами рядка.

6. Змініть команду виведення списку на команди, представлені вище, та перевірте, як буде здійснюватися виведення списку цим способом.

2 спосіб

Для заповнення масиву користувачем, за формулою або випадковим чином спочатку створюють масив, що має визначену кількість рядків та стовпців. Цей масив заповнюють деякими значеннями, наприклад, нулями. Після цього додають програмний код, в якому замінюють ці значення на ті, що вказані в умові завдання.

Так, для створення масиву, що має нульові значення, можна скористатися такою загальною конструкцією:

ПРАКТИЧНЕЗАВДАННЯ 2

1. Уведіть команди створення та виведення масиву, що має нульові значення з 3-х рядків та 5-ти стовпців.

2. Запустіть програму та перевірте, як вона працює.

3 спосіб

Коли значення елементів списку не має особливого значення, їх можна заповнити випадковим чином. Так, нижче наведено приклад створення двовимірного масиву, що має 5 рядків та 5 стовпців цілими випадковими числами від 0 до 9.

ПРАКТИЧНЕ ЗАВДАННЯ 3

1. Уведіть програмний код створення та виведення двовимірного масиву цілих випадкових чисел із діапазону [1,20], що має 4 рядки та 3 стовпці.

4 спосіб

Уводити елементи до списку може також користувач під час виконання програми. Для цього в попередній програмі слід замінити команду присвоєння на наступну:

ПРАКТИЧНЕ ЗАВДАННЯ 4

1. Уведіть програмний код створення та виведення двовимірного масиву, що має 3 рядки та 4 стовпці, значення до якого має ввести користувач.

40.3.

Пошук підсумкових значень, що задовольняють умову

Над елементами двовимірних масивів можна виконувати ті ж самі операції, що і над елементами одновимірних масивів. Розглянемо пошук підсумкових значень, що задовольняють задану умову, виконавши практичну вправу.

ВПРАВА 40.1

Завдання. Заповнити двовимірний масив цілих чисел розміром 3x4 випадковими числами з інтервалу [10, 90]. Знайти у цьому масиві суму парних чисел та кількість тих, що закінчуються цифрою 5.

1. Уведіть команди створення масиву:

Як і у випадку опрацювання одновимірних масивів для знаходження суми або кількості елементів, що задовольняють вказану умову, у програмі створюються змінні, яким надають початкове значення, рівне 0.

2. Перед оператором циклу додайте команди встановлення початкових значень змінним для знаходження суми та кількості:

3. У тілі попереднього циклу додайте команди обчислення суми парних елементів:

if mas[i][j]%2==0: s=s+mas[i][j]

Так, у першому рядку здійснюється перевірка, чи є поточний елемент масиву парним, якщо умова виконується, то даний елемент додається до значення змінної s. Після чого здійснюється перехід до перевірки наступного елемента.

4. Самостійно додайте команду виведення значення суми.

5. Запустіть програму та переконайтеся, що суму знайдено правильно.

6. У тілі цього ж циклу додайте команди обчислення кількості чисел, що закінчуються цифрою 5:

Так, у першому рядку здійснюється перевірка, чи закінчується поточний елемент масиву на 5, якщо умова виконується, то значення змінної k збільшується на 1.

7. Самостійно додайте команду виведення значення кількості.

8. Запустіть програму та переконайтеся, що кількість знайдено правильно.

ВПРАВА 40.2

Завдання. Заповнити двовимірний масив розміром 3x5 випадковим чином 0 та 1. З’ясувати, чого у масиві більше: 1 чи 0.

ВПРАВА 40.3

Завдання. Заповнити двовимірний масив розміром 5x3 випадковими цілими трицифровими числами. Знайти кількість паліндромів у цьому масиві (наприклад, 121,767).

40.4.

Квадратні масиви

Особливої уваги при роботі з двовимірними масивами заслуговують квадратні масиви. Квадратним є масив, кількість рядків та стовпців у якого є однаковою. У такому масиві виділяють головну та побічну діагоналі (рис. 40.2).

З наведеного прикладу добре видно, що індекси елементів головної діагоналі по рядках та стовпцях збігаються. А саме, головна діагональ містить такі елементи масиву: mas[0][0], mas[1],[1] і т. д. Отже, якщо і — це індекс, яким позначаються рядки масиву, то поточний елемент головної діагоналі можна позначити mas[i][i]. Значення індексів в елементів побічної діагоналі також можна виразити через індекс рядка і, а саме, mas[n+1-i][i], де n — кількість рядків (стовпців) масиву.

Завдання. Створити квадратний масив розмірністю nxn, усі елементи якого дорівнюють 0, а елементи, розташовані на діагоналях, — одиниці.

1. Уведіть команди введення змінної n та створення масиву, що має лише нульові елементи.

2. Додайте команди присвоєння одиниці елементам, розташованим по діагоналях.

3. Додайте команди виведення масиву.

ВПРАВА 40.5

Завдання. Створити квадратний масив розмірністю nxn, усі елементи якого дорівнюють 0, а елементи, розташовані на зовнішніх сторонах масиву, — одиниці.

ВПРАВА 40.6

Завдання. Створити та вивести квадратний масив, що містить випадкові числа в діапазоні [-10,10] розмірністю nxn. Знайдіть середнє арифметичне елементів головної діагоналі та кількість від’ємних елементів побічної діагоналі.

1. Самостійно уведіть команди: імпорту модуля random; введення змінної n;

створення масиву, що має лише нульові елементи; заповнення масиву випадковими числами в діапазоні [-10,10] та виведення його у вікні консолі.

2. Додайте команди знаходження середнього арифметичного елементів головної діагоналі та кількості від’ємних елементів побічної діагоналі:

3. Додайте команди виведення середнього арифметичного елементів головної діагоналі та кількості від’ємних елементів побічної діагоналі.

40.5.

Перегляд кожного рядка або стовпця

Далі розглянемо приклади складання програм за відомими алгоритмами знаходження суми, кількості, добутку тощо. Але ці алгоритми застосовують до елементів кожного рядка (стовпця) двовимірного масиву. Причому, якщо потрібно щось знайти у кожному стовпці, то

масив переглядають по стовпцях (1 стовпець, 2 стовпці, ...), а якщо потрібно щось знайти у кожному рядку, то масив переглядають по рядках (1 рядок, 2 рядок,..).

При перегляді масиву по рядках (це звичайний перегляд, з уведенням елементів масиву) зовнішній цикл буде здійснюватися по номерах рядків (першому індексу), а внутрішній цикл по номерах стовпців (другому індексу). При перегляді масиву по стовпцях зовнішній цикл буде здійснюватися по номерах стовпців (другому індексу), а внутрішній цикл — по номерах рядків (першому індексу).

ВПРАВА 40.7

Завдання. Дано масив 5x5, елементами якого є випадкові числа в діапазоні [0,9]. Створити масиви Sr та Sc, елементами якого будуть суми рядків та суми стовпців заданого масиву відповідно.

Приклад роботи програми

1. Уведіть команди створення двовимірного масиву mas з розмірністю 5х5.

2. Додайте команди створення масиву Sr, елементи якого є суми рядків масиву mas.

Зверніть увагу, що в задачах даного типу початкове значення суми встановлюється всередині зовнішнього циклу, перед внутрішнім циклом.

3. Додайте один із способів команд створення масиву Sc. Елементами даного масиву є суми стовпців масиву mas. (Червоним у наведених кодах показано відмінність від попереднього коду.)

ВПРАВА 40.8

Завдання. Дано масив 4x3, елементами якого є випадкові числа в діапазоні [-10,10]. Створити масиви vid та pos, елементами якого будуть кількість від’ємних та кількість додатних елементів у кожному рядку відповідно.

Контрольні запитання та завдання

1. Що таке двовимірний масив?

2. Як представлено двовимірні масиви у середовищі Python?

3. Яким є синтаксис команди звернення до елемента двовимірного масиву?

4. Що таке квадратний масив? Як називаються діагоналі квадратного масиву?

5. Як створити двовимірний масив із нульових елементів?

Питання для роздумів

1*. Як знайти добуток елементів головної діагоналі квадратного масиву?

2*. Як створити двовимірний масив з розмірністю nxm, що містить 0 та 1, заповнені випадковим чином?

Завдання для досліджень

1*. Дізнайтеся, як знайти максимальний (мінімальний) елемент двовимірного масиву.

 

 

Це матеріал з підручника Інформатика 9 клас Казанцева, Стеценко 2022

 




Попередня сторінка:  39. Візуалізація даних в Python
Наступна сторінка:   41. Практична робота 9. «Дії з двовимірн...



^