Skip to content

Commit

Permalink
Update matrice
Browse files Browse the repository at this point in the history
Update matrice
  • Loading branch information
programerbg committed Nov 17, 2024
1 parent 66b5cee commit 679d558
Showing 1 changed file with 160 additions and 14 deletions.
174 changes: 160 additions & 14 deletions _sources/10_Matrice/matrice.rst
Original file line number Diff line number Diff line change
Expand Up @@ -2,13 +2,86 @@
============================


1. **Шта су матрице у програмирању?**
**Шта су матрице у програмирању?**

У програмском контексту, **матрица** је структура података која се користи за чување података у дворазмерном формату, тј. као табела која има редове и колоне. У програмима, матрице су представљене као **листови у листовима** или као **нумерички масиви**.
Матрице у програмирању представљају структуре података које нам омогућавају да чувамо и организујемо информације у облику табеле. Табела се састоји од **редова** и **колона**,
што значи да је матрица дводимензионална, за разлику од једнодимензионалних структура попут листи или низова.

Пример:
На пример, замислите табелу оцена у разреду где сваки ред представља једног ученика, а свака колона одговара различитом предмету. Матрице су изузетно корисне када желимо да
организујемо податке на овај начин.

У програмирању, матрице најчешће реализујемо коришћењем **листова у листовима**. Сваки ред матрице је један лист, а сви ти редови заједно чине матрицу. Ево једноставног примера
у програмском језику Python:

.. activecode:: matrice4201
:coach:

# Матрица оцена
ocene = [
[5, 4, 3], # Оцене првог ученика
[4, 5, 5], # Оцене другог ученика
[3, 4, 4] # Оцене трећег ученика
]


У овом примеру, матрица "ocene" има 3 реда и 3 колоне. Оцене сваког ученика организоване су у једном реду.



Зашто су матрице важне?

Матрице су веома моћан алат у програмирању јер омогућавају рад са подацима који имају логичку структуру. Ево неких примера примене матрица:

1. **Чување табеларних података:** Матрице се користе за складиштење података попут оцена ученика, температура у градовима или резултата анкета.
2. **Рачунарска графика:** У графици, матрице се користе за трансформације слика, као што су ротирање, увећање или померање.
3. **Наука и инжењерство:** Матрице се често користе у симулацијама, анализи података и решавању сложених математичких проблема.
4. **Игре:** У играма, матрице могу представљати табле, мапе или позиције објеката.



Како приступамо подацима у матрицама?

У матрицама, сваки елемент има своју позицију, која је дефинисана редом и колоном. Индекси у програмирању почињу од 0. На пример:

.. activecode:: matrice4202
:coach:

# Приступање елементима матрице
ocene = [
[5, 4, 3], # Ред 0
[4, 5, 5], # Ред 1
[3, 4, 4] # Ред 2
]

# Испис оцене из другог реда и треће колоне
print(ocene[1][2]) # Резултат је 5


У овом примеру, "ocene[1][2]" значи: пронађи елемент у реду 1 (други ред) и колони 2 (трећа колона).



Основне операције са матрицама

1. **Сабирање и одузимање матрица:**
Матрице могу бити сабране или одузете ако имају исте димензије, тако што сабирамо или одузимамо елементе на истим позицијама.

2. **Множење матрица:**
Ово је мало сложенија операција где се сваки елемент резултирајуће матрице израчунава множењем и сабирањем одговарајућих редова и колона.

3. **Транспоновање:**
Замена редова и колона у матрици.



Матрице у програмирању су основни алат за организовање и манипулацију подацима. Њихово разумевање је важно за решавање проблема у различитим областима, од науке до видео-игара.
Са матрицама, ученици ће научити како да примене знања из математике на практичне проблеме у програмирању.



1. **Дефинисање матрице 2x3**

.. activecode:: argumenti3200
.. activecode:: matrice4203
:coach:

# Пример матрице 2x3 у Python-у
Expand All @@ -25,7 +98,7 @@

Пример:

.. activecode:: argumenti3201
.. activecode:: matrice4204
:coach:

# Приступање елементу матрице
Expand All @@ -43,7 +116,7 @@

**Пример сабирања матрица:**

.. activecode:: argumenti3202
.. activecode:: matrice4205
:coach:

# Сабирање две матрице
Expand All @@ -68,7 +141,7 @@

**Пример одузимања матрица:**

.. activecode:: argumenti3203
.. activecode:: matrice4206
:coach:

# Одузимање две матрице
Expand Down Expand Up @@ -97,7 +170,7 @@

Пример множења:

.. activecode:: argumenti3204
.. activecode:: matrice4207
:coach:

# Множење две матрице
Expand All @@ -120,12 +193,13 @@
print(C) # Исписује [[19, 22], [43, 50]]


5. **Задаци за вежбање**
Задаци за вежбање
-----------------------

**Задатак 1:**
Дате су две матрице \( A \) и \( B \), саберите их и испишите резултат:

.. activecode:: argumenti3205
.. activecode:: matrice4208
:coach:

A = [
Expand All @@ -141,7 +215,7 @@
**Задатак 2:**
Дате су две матрице \( A \) и \( B \), извршите одузимање матрица \( A - B \) и испишите резултат:

.. activecode:: argumenti3206
.. activecode:: matrice4209
:coach:

A = [
Expand All @@ -157,7 +231,7 @@
**Задатак 3:**
Дате су две матрице \( A \) и \( B \), помножите их и испишите резултат:

.. activecode:: argumenti3207
.. activecode:: matrice4210
:coach:

A = [
Expand All @@ -173,7 +247,7 @@
**Задатак 4:**
Напишите програм који рачуна транспоновану матрицу за дате матрице:

.. activecode:: argumenti3208
.. activecode:: matrice4211
:coach:

A = [
Expand All @@ -182,7 +256,79 @@
]


6. **Закључак**
**Задатак 5:**
Проблем: Преброј проходне ћелије у матрици

Замисли да имаш матрицу која представља мрежу пута. У овој матрици:

- `0` означава проходну ћелију (пут).
- `1` означава непроходну ћелију (препреку).

Твој задатак је да напишеш програм који ће избројати све проходне ћелије (`0`) у матрици.


Пример матрице:

.. activecode:: matrice4212
:coach:

matrica = [
[0, 1, 0, 0],
[1, 0, 1, 0],
[0, 0, 0, 1],
[1, 1, 0, 0]
]



Задатак:
Напиши програм који ће:
1. Пребројати све `0` у матрици.
2. Исписати укупан број проходних ћелија.


Пример излаза:
За горњу матрицу, програм би требао исписати:


Укупно проходних ћелија: 8



Једноставно решење у Python-у:


.. activecode:: matrice4213
:coach:

matrica = [
[0, 1, 0, 0],
[1, 0, 1, 0],
[0, 0, 0, 1],
[1, 1, 0, 0]
]

broj_prohodnih = 0

# Пролазимо кроз сваки ред у матрици
for red in matrica:
# Пролазимо кроз сваки елемент у реду
for celija in red:
if celija == 0:
broj_prohodnih += 1

print(f"Укупно проходних ћелија: {broj_prohodnih}")



Објашњење:

- Користимо **угњежђену петљу**: Прва петља пролази кроз редове, а друга кроз елементе у сваком реду
- Када пронађемо `0`, повећавамо бројач `broj_prohodnih`



**Закључак**

У овој лекцији смо научили како да радимо са матрицама у програмском језику Python. Прошли смо кроз основне операције као што су сабирање, одузимање и множење матрица,
као и како да приступимо елементима матрице. Ове операције су веома важне и користе се у многим областима као што су рачунарска графика, решавање система линалних једначина
Expand Down

0 comments on commit 679d558

Please sign in to comment.