# Операційна семантика
---
## Переставити місцями вагони

---
## Переставити місцями жовтий і червоний
використовуючи тільки заливку та піпетку

---
## Переставити місцями вміст коробок

---
## Заводські номери
У кожного об'єкта є заводський номер, який можна взнати через функцію `id()`.
І навпаки, все, що має заводський номер --- є об'єктом.
Всі заводські номери унікальні, не існує двох об'єктів з однаковими номерами.
---
## Яка операційна семантика SWAP в Пайтоні?
Треба експеримент!
---
## Чому цей алгоритм також міняє місцями числа?
```python=
### Алгоритм SWAP+
a = 10
b = 5
print(a, b) # 10 5
a = a + b
b = a - b
a = a - b
print(a, b) # 5 10
```
---
## Чи однакові це перестановки?
```python=
a, b = b, a
```
та
```python=
b, a = a, b
```
---
## Чи є це перестановкою?
```python=
a, b = a, b
```
---
## Чи однакові це перестановки?
```python=
b, a, c = a, b, c
```
та
```python=
a, c, b = c, b, a
```
---
## Скільки є різних перестановок для трьох імен?
Запиши їх всі.
---
## Питання для закріплення
:::info
1. Яка операційна семантика у алгоритму SWAP?
2. Чи відбуваються копіювання в алгоритмі SWAP?
:::
----
## Питання для закріплення
:::info
3. Скільки створень, копіювань, імен та іменувань у цьому коді:
```python=
a = 10
b = a
a = 5
a = a + b
b = a - b
a = a - b
```
4. Скільки є різних перестановок серед двух імен? серед трьох імен?
:::
{"metaMigratedAt":"2023-06-15T16:06:07.804Z","metaMigratedFrom":"YAML","title":"Операційна семантика","breaks":true,"contributors":"[{\"id\":\"e587b3b3-f458-471f-8c10-88f5c3bd80d3\",\"add\":1596,\"del\":31}]"}