diff --git a/docs/GOLANG.md b/docs/GOLANG.md
index 4c79f55..1d73cd6 100644
--- a/docs/GOLANG.md
+++ b/docs/GOLANG.md
@@ -33,3 +33,35 @@ c := make(chan int, 1)
```
и мы получим буферизированный канал с ёмкостью __1__. Обычно каналы работают синхронно - каждая из сторон ждёт, когда другая сможет получить или передать сообщение. Но буферизованный канал работает асинхронно — получение или отправка сообщения не заставляют стороны останавливаться. Но канал теряет пропускную способность, когда он занят, в данном случае, если мы отправим в канал __1__ сообщение, то мы не сможем отправить туда ещё одно до тех пор, пока первое не будет получено.
+
+### 11. Напишите программу, которая меняет местами два числа (x := 1; y := 2; swap(&x, &y) должно дать x=2 и y=1)
+
+```go
+func main() {
+ x := 1
+ y := 2
+
+ swap(&x, &y)
+
+ fmt.Println(x, y)
+}
+
+func swap(x, y *int) {
+ *x, *y = *y, *x
+}
+```
+
+### 12. Какое будет значение у переменной x после выполнения программы?
+
+```go
+func square(x *float64) {
+ *x = *x * *x
+}
+
+func main() {
+ x := 1.5
+ square(&x)
+
+ fmt.Println(x)
+}
+```