Матрице¶
Када смо причали о листама, рекли смо да елемент листе може да буде број или текст, али и друга листа, на пример:
Листу којој су сви елементи такође листе називамо матрица (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.