Двовимірні масиви

Двовимірний масив (таблиця), як і одновимірний, може містити елементи будь-якого типу, але лише одного. Масив складається з фіксованої кількості рядків і стовпців. У побуті двовимірні масиви часто називають таблицями, а в математиці — матрицями. 

Можна сказати що двовимірний масив – це одновимірний масив елементами якого є одновимірні масиви.


Кожен елемент масиву має два  індекси, які вказані в квадратних дужках (його номери позицій) у масиві, перед дужками його ім’я

Наведемо приклад ма­сиву цілих чисел із трьома рядками та чотирма стовпцями 

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

[[34, 23, 6, 9], [35, 11, 54, 23], [15, 40, 3, 44]]

Але для наочності краще подавати його в такому вигляді:

[[34, 23, 6, 9],

 [35, 11, 54, 23], 

 [15, 40, 3, 44]]

Із прикладу видно, що елементи двовимірного масиву беруться у квадратні дужки, елементи кожного рядка теж беруться у квадратні дужки, які відокремлюються комою. Усередині рядка його елементи також відокремлюються комою. 

Звернення до елемента масиву здійснюється за такою формою:

ім’я масиву  [номер рядка][номер стовпця]

mas=[[34, 23, 6, 9], [35, 11, 54, 23], [15, 40, 3, 44]]

print (mas[2][3])

44

>>> 

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

Створити двовимірний масив у мові Python можна різними способами:

Наприклад, у результаті виконання оператора 

mas = [[1, 2, 3],[4, 5, 6],[7, 8, 9]] 

елементи масиву з іменем mas набувають таких значень: 

mas[0][0] = 1, mas[0][1] = 2, mas[0][2] = 3, 

mas[1][0] = 4, mas[1][1] = 5, mas[1][2] = 6, 

mas[2][0] = 7, mas[2][1] = 8, mas[2][2] = 9. 


Нумерація елементів у масивах мови Python починається з нуля.

Задача №1. Створення двовимірного масиву, елементи якого по одному рядку виводяться на екран. https://replit.com/ 

mas=[[34, 23, 6, 9], [35, 11, 54, 23], [15, 40, 3, 44]]#введення масиву

for i in range (3):#цикл для рядків

    for j in range (4):#цикл для стовпців

      print(mas[i][j], end=' ')#виведення елементів в один рядок

    print('\n')#перехід на новий рядок

34 23 6 9 


35 11 54 23 


15 40 3 44 


>>> 

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

Задача № 2 Обчислення загальної суми і середнього значення елементів двовимірного масиву https://replit.com/ 

Нехай дано масив чисел: 

1 2 3 4

5 6 7 8

9 10 11 12 

Обчислити суму значень елементів масиву можна різними способами. Але найчастіше застосовується алгоритм «накопичення», за яким до початкового значення суми додається елемент, розташований у нульовому рядку нульового стовпця, до якого поступово додається решта елементів цього стовпця. Потім здійснюється перехід на другий рядок і виконуються аналогічні дії, і так далі. 

Отже, алгоритм можна записати в такому вигляді.

mas=[[1,2,3,4], [5,6,1,8], [9,10,11,12]]#введення масиву

n=3#кількість рядків

m=4#кількість стовпців

s=0#початкова сума

for i in range (3):#цикл для рядків - зовнішній цикл

    for j in range (4):#цикл для стовпців - внутрішній цикл

      print(mas[i][j], end=' ')#виведення елементів в один рядок

      s=s+mas[i][j]#обчислення суми

    print('\n')#перехід на новий рядок

print('сума=', s)#виведення суми

print('Обчислення і виведення середнього арифметичного')

print('Середнє значення=', s/(m*n))

1 2 3 4 


5 6 1 8 


9 10 11 12 


сума= 72

Обчислення і виведення середнього арифметичного

Середнє значення= 6.0

>>> 

Задача № 3. 

Пошук максимального та мінімального значень. https://replit.com/  

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

mas=[[23,17,60], [10,5,25], [13,27,4]]#масив з 3 рядками та 3 стовпцями

max=mas[0][0]#початкове значення максимального елемента

min=mas[0][0]#початкове значення мінімального елемента

for i in range (3):#зовнішній цикл

    for j in range (3):#внутрішній цикл

      if mas[i][j]>max:#чи більше поточний елемент максимального?

          max=mas[i][j]#поточне максимальне значення

      if mas[i][j]<min:#чи менше поточний елемент мінімального?

          min=mas[i][j]#поточне мінімальне значення

print('Максимальне значення=', max)#виведення максимального значення

print('Мінімальне значення=', min)#виведення мінімального значення

Максимальне значення= 60

Мінімальне значення= 4

>>> 

Задача № 4. Обчислення суми значень елементів кожного рядка й загальної суми масиву. https://replit.com/ 

Сума елементів рядків двовимірного масиву обчислюється так само, як і одновимірного масиву.

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


Зверніть увагу що S і s це різні змінні.

mas=[[1,2,3,4],

     [5,6,7,8],

     [9,10,11,12]]#створення масиву

S=0#Початкова сума масиву

for i in range (3):#зовнішній цикл

    s=0#Початкова сума рядку

    for j in range (4):#внутрішній цикл

      print(mas[i][j], end=' ')#виведення масиву

      s=s+mas[i][j]#обчислення суми рядка

    print()

    print('Сума', i, 'рядка=', s)

    print('Середнє значення', i, 'рядка=', s/4)

S=S+s#Обчислення загальної суми масиву

print('Загальна сума масиву=', S)

1 2 3 4 

Сума 0 рядка= 10

Середнє значення 0 рядка= 2.5

5 6 7 8 

Сума 1 рядка= 26

Середнє значення 1 рядка= 6.5

9 10 11 12 

Сума 2 рядка= 42

Середнє значення 2 рядка= 10.5

Загальна сума масиву= 42

>>> 

Задача № 5. Обчислення кількості заданого елемента двовимірному масиві. https://replit.com/  

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

mas=[[37,44,20,16,21],#створення масиву з 3 рядками

     [91,45, 16, 5, 40],

     [21,16, 8, 9, 22]]#і з 5 стовпцями

c=int(input('c='))#уведення шуканого елемента

k=0#Початкова кількість елемента у масиві

for i in range (3):#зовнішній цикл

    for j in range (5):#внутрішній цикл

      if c==mas[i][j]:#чи є елемент у масиві?

        k=k+1#збільшення кількості елементів

if k>0:#перевірка наявності елемента

    print('Таких елементів=', k)

else:

    print('Немає')

c=21

Таких елементів= 2

>>> 

c=1

Немає

>>> 

ЗАПИТАННЯ ДЛЯ САМОПЕРЕВІРКИ ЗНАНЬ

Практичні завдання https://replit.com/ 

Практичне завдання до уроку №45-7.pdf