> ## Documentation Index
> Fetch the complete documentation index at: https://docs.primastem.com/llms.txt
> Use this file to discover all available pages before exploring further.

# PrimaSTEM и LOGO

> PrimaSTEM — черепашья графика из LOGO, только в руках и без экрана. Каждое понятие на пульте и его аналог в LOGO.

В основе PrimaSTEM лежит идея [LOGO](https://ru.wikipedia.org/wiki/Лого_\(язык_программирования\)). Этот язык для детей создали Сеймур Пейперт и его коллеги в 1967 году. В LOGO ребёнок набирает команды, и черепашка рисует на экране. В PrimaSTEM ребёнок кладёт фишки на пульт, и деревянный робот с маркером рисует на бумаге. Без клавиатуры, без экрана, без текста.

Эта страница для учителей, которые знают LOGO или Scratch, и для всех, кто хочет понять, что на самом деле делают фишки.

## Понятия на пульте

| Понятие | На пульте PrimaSTEM | В LOGO |
| - | - | - |
| Последовательность | Фишки выполняются слева направо по верхнему ряду. Индикатор пары, которая выполняется, мигает, потом гаснет | команды одна за другой |
| Команда | Вперёд, Назад, Влево, Вправо, Пауза, Случайное движение | `forward`, `back`, `left`, `right`, `wait` |
| Параметр | Фишка с числом в той же паре: Вперёд + 200 | `forward 200` |
| Значение по умолчанию | Вперёд без числа = 150 мм, Влево/Вправо без числа = 90° | |
| Цикл | Фишка повтора в паре: Вперёд + повтор 4 | `repeat 4 [forward 150]` |
| Процедура | Нижний ряд (5 пар) — это Функция. Её вызывает фишка «Функция» | `to shape ... end`, потом `shape` |
| Процедура в цикле | Фишка «Функция» и фишка повтора в одной паре: Функция + повтор 5 | `repeat 5 [shape]` |
| Передать процедуре значение | Вперёд 100 проезжает 100 мм и запоминает 100. Если следом вызвать Функцию, где стоит Вперёд без числа, она тоже проедет 100. Поменяйте Вперёд перед следующим вызовом, и та же Функция нарисует фигуру другого размера | похоже на `shape 100`, `shape 50` |
| Рекурсия | Фишка «Функция» внутри нижнего ряда: функция вызывает сама себя, пока вы снова не нажмёте ▶ Старт | процедура вызывает сама себя |
| Переменные | Каждая команда помнит своё последнее значение: Вперёд, Назад, Влево, Вправо и Пауза — пять независимых переменных. Вперёд без числа проедет столько же, сколько прошлый Вперёд | `make "step 200`, потом `forward :step` |
| Арифметика над переменной | Вперёд + «+30»: прибавить 30 к запомненному значению и проехать | `make "step :step + 30 forward :step` |
| Операции | + − × ÷ √ ^ над запомненным значением, от −5000 до 5000, целые числа | `sum`, `difference`, `product`, `quotient`, `sqrt`, `power` |
| Отрицательные значения | Отрицательный результат разворачивает движение: Вперёд −50 едет назад на 50 мм, Влево −30 поворачивает вправо на 30° | `forward -50` |
| Случайность | Фишка повтора с кубиком (от 1 до 6 раз) и фишка «Случайное движение» | `random 6` |
| Перо | Маркер в центре робота | `pendown` |
| Отладка | Смотрим на робота, находим неверную фишку, меняем её | исправить строку |

У каждой команды своё запомненное значение: если поменять Вперёд, Влево не изменится. Когда пульт выключают, все значения возвращаются к стандартным: 150 мм, 90°, 1 с для Паузы. Шаг по умолчанию можно поменять насовсем служебной фишкой «Установить длину шага по умолчанию» (см. [Устройство и настройка](https://docs.primastem.com/ru/usermanual.md)).

Считает ребёнок. Робот точно выполняет программу.

## Примеры: одна программа на пульте и в LOGO

У каждого примера есть ссылка. Она открывает [симулятор](https://simulator.primastem.com) с этой программой на пульте и запускает её.

### Квадрат

Пульт: верхний ряд Функция × 4. Нижний ряд: Вперёд 300, Вправо.

```
repeat 4 [forward 300 right 90]
```

[Запустить в симуляторе](https://simulator.primastem.com/#top=cfun.r004\&fn=cfor.n300,crig\&s=l1047602\&r=300-600-0\&run)

![](https://mintcdn.com/primastem/JJYOYv4iGRFfXM5x/images/logo/square-board.svg?fit=max\&auto=format\&n=JJYOYv4iGRFfXM5x\&q=85\&s=79cc88bf5f7b5d4db9bb88061625c4ee)

Программа на пульте

![](https://mintcdn.com/primastem/JJYOYv4iGRFfXM5x/images/logo/square-field.svg?fit=max\&auto=format\&n=JJYOYv4iGRFfXM5x\&q=85\&s=80dafb4920340e178692e358dd60a7e8)

Что нарисует робот

Для детей 4–6 лет числа можно не ставить: Вперёд и Вправо без чисел нарисуют квадрат со стороной 15 см.

### Равносторонний треугольник

Пульт: верхний ряд Функция × 3. Нижний ряд: Вперёд 400, Вправо 120.

```
repeat 3 [forward 400 right 120]
```

[Запустить в симуляторе](https://simulator.primastem.com/#top=cfun.r003\&fn=cfor.n400,crig.n120\&s=l1047602\&r=250-623-30\&run)

![](https://mintcdn.com/primastem/JJYOYv4iGRFfXM5x/images/logo/triangle-board.svg?fit=max\&auto=format\&n=JJYOYv4iGRFfXM5x\&q=85\&s=e1a7c4eacf55cfa091359c276b48cf8e)

Программа на пульте

![](https://mintcdn.com/primastem/JJYOYv4iGRFfXM5x/images/logo/triangle-field.svg?fit=max\&auto=format\&n=JJYOYv4iGRFfXM5x\&q=85\&s=b5f7f7a0e9200b4d766917fd10826ee7)

Что нарисует робот

Почему 120, а не 60? Робот поворачивает на внешний угол. Три поворота вместе должны дать полный оборот: 3 × 120 = 360.

### Пятиконечная звезда

Пульт: верхний ряд Функция × 5. Нижний ряд: Вперёд 400, Вправо 144.

```
repeat 5 [forward 400 right 144]
```

[Запустить в симуляторе](https://simulator.primastem.com/#top=cfun.r005\&fn=cfor.n400,crig.n144\&s=l1047602\&r=250-405-90\&run)

![](https://mintcdn.com/primastem/JJYOYv4iGRFfXM5x/images/logo/star-board.svg?fit=max\&auto=format\&n=JJYOYv4iGRFfXM5x\&q=85\&s=638a6cc4135538f1276327c727318a6e)

Программа на пульте

![](https://mintcdn.com/primastem/JJYOYv4iGRFfXM5x/images/logo/star-field.svg?fit=max\&auto=format\&n=JJYOYv4iGRFfXM5x\&q=85\&s=ce0af54eb82b2fcda4555ea98890cce7)

Что нарисует робот

5 × 144 = 720: робот обернётся два раза, и линия замкнётся в звезду.

### Круг

Пульт: верхний ряд Функция × 36. Нижний ряд: Вперёд 25, Вправо 10.

```
repeat 36 [forward 25 right 10]
```

[Запустить в симуляторе](https://simulator.primastem.com/#top=cfun.r036\&fn=cfor.n025,crig.n010\&s=l1047602\&r=438-307-90\&run)

![](https://mintcdn.com/primastem/JJYOYv4iGRFfXM5x/images/logo/circle-board.svg?fit=max\&auto=format\&n=JJYOYv4iGRFfXM5x\&q=85\&s=d2e2fb9200c7e1741fc8e48c85c8f803)

Программа на пульте

![](https://mintcdn.com/primastem/JJYOYv4iGRFfXM5x/images/logo/circle-field.svg?fit=max\&auto=format\&n=JJYOYv4iGRFfXM5x\&q=85\&s=14e18317e2c052773793cf82140b5340)

Что нарисует робот

Круг — это многоугольник с множеством коротких сторон: 36 × 10° = 360°.

### Квадратная спираль (переменная и арифметика)

Пульт: верхний ряд Вперёд 30, Функция × 20. Нижний ряд: Вправо, Вперёд +30.

```
make "side 30
forward :side
repeat 20 [
  right 90
  make "side :side + 30
  forward :side
]
```

[Запустить в симуляторе](https://simulator.primastem.com/#top=cfor.n030,cfun.r020\&fn=crig,cfor.a030\&s=l1047602\&r=450-465-0\&run)

![](https://mintcdn.com/primastem/JJYOYv4iGRFfXM5x/images/logo/spiral-board.svg?fit=max\&auto=format\&n=JJYOYv4iGRFfXM5x\&q=85\&s=1bedc4d6ad929e9edeffd61c84a62a7c)

Программа на пульте

![](https://mintcdn.com/primastem/JJYOYv4iGRFfXM5x/images/logo/spiral-field.svg?fit=max\&auto=format\&n=JJYOYv4iGRFfXM5x\&q=85\&s=c02f85a2d5a0c8efa2c11a9a850bca1c)

Что нарисует робот

Вперёд 30 задаёт запомненное значение. При каждом запуске функции «+30» удлиняет сторону на 30 мм: 60, 90, 120 и так далее. Первый Вперёд 30 сбрасывает значение, поэтому если снова нажать ▶ Старт, получится та же спираль.

### Шестиугольник (угол через деление)

Пульт: верхний ряд Вправо 360, Вправо ÷6, Функция × 6. Нижний ряд: Вперёд 200, Вправо.

```
make "angle 360 / 6
repeat 6 [forward 200 right :angle]
```

[Запустить в симуляторе](https://simulator.primastem.com/#top=crig.n360,crig.d006,cfun.r006\&fn=cfor.n200,crig\&s=l1047602\&r=350-232-39\&run)

![](https://mintcdn.com/primastem/JJYOYv4iGRFfXM5x/images/logo/hexagon-board.svg?fit=max\&auto=format\&n=JJYOYv4iGRFfXM5x\&q=85\&s=e22c8101803d42d659e8cf7654bf9a0c)

Программа на пульте

![](https://mintcdn.com/primastem/JJYOYv4iGRFfXM5x/images/logo/hexagon-field.svg?fit=max\&auto=format\&n=JJYOYv4iGRFfXM5x\&q=85\&s=fd10410c3cecd4ea9360633b81bdeeee)

Что нарисует робот

Вправо 360 делает полный оборот и запоминает 360. Вправо ÷6 делит запомненное значение и поворачивает на 60°. В функции Вправо без числа снова берёт 60°. Два поворота в начале только меняют, куда смотрит робот перед рисованием; фигура остаётся шестиугольником.

Пульт делит нацело и отбрасывает остаток. Чтобы фигура замкнулась, делите 360 на число без остатка: 3, 4, 5, 6, 8, 9, 10, 12. Например, 360 ÷ 7 даст 51°, и семиугольник не замкнётся на 3°.

Больше рисунков: [Примеры рисунков](https://docs.primastem.com/ru/mathdrawings.md).

## Чем PrimaSTEM отличается от LOGO

PrimaSTEM покрывает основу черепашьей графики LOGO. Кое-что устроено иначе, и так задумано:

* **Одна пара — одна команда и одно значение.** В паре ячеек лежит команда и не больше одного значения: число, повтор или операция. Поэтому программу может прочитать и четырёхлетний ребёнок.
* **Нет условий (`if`).** Программа каждый раз выполняется одинаково. Случайность дают только кубик и Случайное движение.
* **У Функции нет именованных параметров.** Её вызывают с повтором, и она берёт значения, заданные до вызова (см. таблицу выше).
* **Длина программы:** 6 пар в главном ряду, 5 в Функции.
* **Маркер вставляют рукой**, когда ребёнок хочет, чтобы робот рисовал.

Когда ребёнок перерастёт пульт, тот же робот работает со [Scratch](https://scratch.primastem.com).

## Что почитать

* [Сеймур Пейперт](https://en.wikipedia.org/wiki/Seymour_Papert), *Mindstorms: Children, Computers, and Powerful Ideas*, 1980.
* [Руководство для учителя](https://docs.primastem.com/ru/teachersguide.md): уроки от первой программы до арифметики.
* [Руководство по обучению. Книга 1](https://docs.primastem.com/ru/book-1/book-1.md): 12 уроков для детей от 4 лет.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.