Матрице

Када смо причали о листама, рекли смо да елемент листе може да буде број или текст, али и друга листа, на пример:

Листу којој су сви елементи такође листе називамо матрица (eng. matrix) и користимо да запишемо елементе неке табеле. Како свака табела има редове и колоне, те термине користићемо и у раду са матрицама.

Посматрајмо табелу:

1

2

3

4

5

6

7

8

a

b

c

d

она има 3 реда и 4 колоне и можемо је записати на следећи начин:

Ово смо могли записати и у једном реду, без помоћних променљивих:

Наредбом print(matrica) добили смо запис који не личи на табелу. Напиши функцију која исписује матрицу тако што исписује редове један испод другог

У лекцији Листе и петље подсети се начина на које смо исписивали листу. На сличан начин исписујемо матрицу:

Приступ пољима матрице

Посматрајмо поново табелу из претходног примера:

1

2

3

4

5

6

7

8

a

b

c

d

Ако нас неко пита „Шта се налази у првом реду ове табеле?” рекли бисмо да се налазе бројеви 1, 2, 3 и 4. Како смо у претходном примеру ову табелу представили као листу њених редова, први ред биће први елемент те листе:

Како знамо да издвојимо први ред табеле, на питање „Које је треће поље првог реда ове табеле?” можемо одговорити исписом трећег елемента листе prvi_red:

Краће смо ово могли записати на следећи начин:

Пољу матрице приступамо навођењем редом индекса реда и колоне у засебним угластим заградама

Имајући у виду да први елемент листе има индекс 0, размисли шта исписује следећи програм:

matrica = [[1,2,3,4], [5,6,7,8], ["a","b","c","d"]]
print(matrica[2][1])

Шта исписује претходни програм?

2

5

b

7

Напиши програм који за унети број исписује квадрат испуњен звездицама те ширине.

Подсетимо се како можемо направити листу звездица одређене дужине:

На сличан начин правимо матрицу звездица:

Краће ово можемо записати на следећи начин:

Користећи функцију ispisi_matricu коју смо раније написали сада можемо исписати тражени квадрат:

Напиши програм који за унети број звездицама исписује оквир квадрата те ширине.

Нaпиши програм који учитава 9 бројева и уписује их у матрицу од 3 реда и 3 колоне тако што прва три броја уписује редом у први ред, следећа три у други ред и последња у трећи ред. Добијену матрицу испиши користећи функцију ispisi_matricu.

Нaпиши функцију која за дату матрицу висине и ширине 3 исписује да ли представља магични квадрат. Матрица је магични квадрат ако се у њој налазе бројеви 1, 2, 3, 4, 5, 6, 7, 8 и 9 тако да је збир елемената у сваком реду, колони и дијагонали једнак. Матрицу унети и исписати као у претходном задатку.

Пример магичног квадрата:

2

7

6

9

5

1

4

3

8

Збир поља у сваком реду, колони и дијагонали је 15.