Волк, коза, капуста. Волк, коза и капуста. Исполнитель – Крестьянин. На берегу реки стоит крестьянин с лодкой, а рядом с ним – волк, коза и капуста. Крестьянин должен переправиться сам и перевезти волка, козу и капусту на другой берег. Однако в лодку, кроме крестьянина, помещается либо только волк, либо только коза, либо только капуста. Оставлять же волка с козой или козу с капустой без присмотра нельзя – волк может съесть козу, а коза – капусту. Напишите алгоритм переправы крестьянина, волка, козы и капусты с левого берега на правый.
Понятие алгоритма Понятие алгоритма является одним из основных понятий информатики и математики. Понятие алгоритма является одним из основных понятий информатики и математики. Название алгоритм происходит от Algorithmi – латинской формы написания имени великого математика IX в. аль- Хорезми, который сформулировал правила выполнения арифметических действий. Что же будем понимать под алгоритмом?
Под алгоритмом будем понимать понятное и точное предписание исполнителю совершить последовательность действий, направленных на решение поставленной задачи.
Алгоритм понятное и точное предписание исполнителю выполнить конечную последовательность команд, приводящую от исходных данных к искомому результату.
Каждый алгоритм строится в расчете на некоторого исполнителя. Для того, чтобы исполнитель мог решить задачу по заданной последовательности команд, необходимо, чтобы он был в состоянии выполнить каждое действие, предписываемое последовательностью команд. Основными характеристиками исполнителя являются: среда, элементарные действия, система команд. Среда – это «место обитания» исполнителя. Система команд. Каждый исполнитель может выполнять команды из строго заданного списка – системы команд исполнителя (СКИ). Для каждой команды из СКИ должны быть заданы условия применимости и описаны результаты выполнения команды. После вызова команды исполнитель совершает соответствующее элементарное действие.
Исполнитель Среда СКИ Какие команды. Как отдаются. Как исполняются.
Существует несколько способов записи алгоритмов, каждый из которых имеет свои особенности: словесный, операторный, блок- схемный и др. Словесный способ записи алгоритмов При словесном способе записи алгоритма пользуются средствами обычного языка, математическими символами и выражениями. Последовательность действий часто оформляется в виде шагов, которые нумеруются. Достоинством этого способа является наличие возможности записать алгоритм с любой степенью детализации. Существует несколько способов записи алгоритмов, каждый из которых имеет свои особенности: словесный, операторный, блок- схемный и др. Словесный способ записи алгоритмов При словесном способе записи алгоритма пользуются средствами обычного языка, математическими символами и выражениями. Последовательность действий часто оформляется в виде шагов, которые нумеруются. Достоинством этого способа является наличие возможности записать алгоритм с любой степенью детализации.
Решение. Выберем для исполнения составляемого алгоритма исполнителя Крестьянина. Дадим строгое описание исполнителя: где работает Крестьянин, и какие команды он может исполнять. Крестьянин работает на переправе и в его распоряжении находится лодка. Опишем команды, которые научим выполнять Крестьянина: вправо (коза); вправо (волк); вправо (капуста); влево (коза); влево (волк); влево (капуста); вправо (ничего); влево (ничего). Рассмотрим как выполняет команду «вправо(коза)» Крестьянин. При выполнении этой команды Крестьянин совершит следующие действия: погрузит в лодку козу, перевезет ее на правый берег, выгрузит ее там и остановится в ожидании команды. Аналогично выполняются другие команды.
Алгоритм: Вправо (коза) Вправо (коза) Влево (ничего) Влево (ничего) Вправо (волк) Вправо (волк) Влево (коза) Влево (коза) Вправо (капуста) Вправо (капуста) Влево (ничего) Влево (ничего) Вправо (коза) Вправо (коза)