Swift Playgrounds на русском, Algorithms 1 урок | The Right-Hand Rule

71 Просмотры
Издатель
Всем привет! Это первый урок по Алгоритмам, по программированию на языке Swift для начинающих в программе Swift Playgrounds.

Мой телеграм канал, где перевод уроков по swift playgrounds выходит чаще и раньше чем видео! Если отключат Ютьюб, вы знаете где найти уроки по Свифту)

https://t.me/Swift_Playgrounds_RL

Algorithms
Алгоритмы

Введение

1.
Алгоритмы
——————⇧——————
Шаг за шагом
1.

2.
Алгоритм - это набор правил и инструкций которые вы используете для решения проблемы.

Например, приложение для навигации (карта) использует алгоритм чтобы выяснить самый быстрый путь к месту, куда вы хотите отправиться.
2.

3.
Чтобы избежать пробку:
Сравните расстояния и средние скорости.
Сравните текущие условия дорожного движения.
Выберите маршрут с кратчайшим временем в пути.
3.

4.
Теперь предположим, что вам нужно направить машину вокруг здания чтобы найти парковочное место

Какие инструкции и правила вы можете использовать чтобы переместить машину вокруг здания?
4.

5.
Для начала, напишите алгоритм который двигает машину вперед до тех пор пока она не достигнет парковочного места.

до_тех_пор_пока !неНаПарковочномМесте {
ехатьВперед()
}

Упс. Этот алгоритм не говорит машине повернуть в конце здания.
5.

6.
Для движения машины вокруг здания, создайте правило чтобы постоянно проверять, является ли машина заблокированной справа.

до_тех_пор_пока !неНаПарковочномМесте {
если заблокированСправа {
ехатьВперед()
} в_противном_случае {
повернутьНаправо()
}
}
6.

7.
до_тех_пор_пока !неНаПарковочномМесте {
если заблокированСправа {
ехатьВперед()
} в_противном_случае {
повернутьНаправо() -
“Если машина не заблокирована справа, она достигла конца здания, ей следует повернуть направо.”
}
}

Упс. Нам всё еще нужно подправить наш алгоритм.
7.

8.
до_тех_пор_пока !неНаПарковочномМесте {
если заблокированСправа {
ехатьВперед()
} в_противном_случае {
повернутьНаправо()
ехатьВперед() -
“После поворота направо, машине следует ехать прямо чтобы обойти здание.”
}
}
8.

9.
Очень много строк кода, написанного вами не так давно, это было инструкциями для решения проблем. В этом смысле, вы уже и так получается писали алгоритмы всё это время.
—————————————
Навык который вы осваиваете сейчас - это процесс написания и настройки кода, чтобы вы смогли его использовать в различных ситуациях.
9.


1-1 The Right-Hand Rule 1-1

Цель: используйте правило правой руки для перемещения вокруг стен.

Запустите эту головоломку, и обратите внимание как ваш персонаж останавливается после первого кристалла. Алгоритм используемый здесь следует правилу правой руки для передвижения вокруг стен. Чтобы решить эту головоломку, вам будет нужно настроить алгоритм, но сперва попытайтесь использовать псевдокод для планирования действий.

(“Правило правой руки - right-hand rule - правило, обычно используемое для создания алгоритмов, чтобы решать лабиринты, правило направляет персонажа (любого, например в игре) через лабиринт путем следования вдоль стены по стороне правой руки персонажа”)

(“Псевдокод - pseudocode - легко читаемое описание алгоритма, обычно содержит в себе написанную смесь из обычного (разговорного языка) и кода.”)



Псевдокод немного похож на свифт код, но он сформулирован и структурирован таким образом, чтобы люди могли легко его понять.

(“Свифт - swift - Язык программирования компании Apple, используется для написания приложений к iPhone, iPad, Mac, Apple Watch, и Apple TV. ”)


Пример

навигация вдоль стен {
если заблокирован справа {
иди вперед
} иначе {
поворачивай направо
иди вперед
}
}

до_тех_пор_пока не на выключенном свитчере {
навигация вдоль стен
если на кристалле {
собрать кристалл
развернуться
}
}
нажать на свитчер

1. На основе приведенного выше псевдокода, напишите решение уже в виде кода, для решения этой головоломки.

2. Запустите код и отрегулируйте ваш алгоритм, если это необходимо для решения данной головоломки.

#swiftplaygroundsнарусском #swiftplaygrounds #swift #learntocode1
Категория
Язык программирования Swift
Комментариев нет.