↓
 ↑
Регистрация
Имя/email

Пароль

 
Войти при помощи
Временно не работает,
как войти читайте здесь!
Балтика
17 мая в 22:56
Aa Aa
#программируем_с_балтикой

Часть 4, вводный курс.

Пожалуй, самое главное, без чего мы не сможем написать код (не считая самого языка программирования) - это алгоритм. Алгоритм является строительным материалом программ. Что же он такое?

Алгоритм - это последовательность шагов в решении задачи, приводящая от исходных данных к результату. Алгоритмами являются, к примеру, те же инструкции или рецепты. Они предписывают, по каким шагам мы должны, к примеру, собрать диван или приготовить борщ.

У алгоритма есть общая схема работы:

Исходные данные -- Алгоритм -- Результат

То есть вначале, к примеру, робот получает данные, скажем, введенное число. Потом он, следуя алгоритму, преобразует его и мы получаем результат. Или еще один пример: мы наливаем в чайник воды и нажимаем кнопку. Чайник, получив исходные данные (нажатие кнопки), начинает выполнять алгоритм (кипятит воду). После того, как вода достигает определенной температуры, чайник завершает алгоритм и мы получаем результат (горячую воду).

Попробуйте придумать больше таких алгоритмов.

Кем же являются чайник и робот? В нашем примере они называются исполнителями.

Исполнитель - это какой-то объект, который способен выполнить определенный набор данных ему команд.

Исполнители делятся на формальных и неформальных.

Чем они отличаются? Формальный исполнитель будет выполнять набор команд ни смотря ни на что и имеет ряд характеристик: имеет круг решаемых задач, нужна необходимая среда исполнителя, имеет список команд исполнителя (СКИ), имеет режим работы (непосредственное управление и программное); неформальный же исполнитель может не выполнить свою программу по стечению обстоятельств. К примеру, если сказать человеку (неформальному исполнителю) постирать мусорный мешок, он откажется, а если дать эту задачу стиральной машинке (формальному исполнителю) - она просто будет следовать своей программе.

Для разработки алгоритма есть свой план:

1) необходимо выделить объекты, которые будут присутствовать в задаче, установить их свойства, отношения между ними и возможными действиями с ними;

2) определить исходные данные и необходимый результат;

3) определить, в какой последовательности будут идти действия исполнителя, чтобы при этом он сумел прийти от исходных данных к результату;

4) записать полученный алгоритм с помощью специальных команд, которые поймет исполнитель.

При этом верный алгоритм обладает такими свойствами, как:

1. Путь решения задачи разделен на отдельные шаги.

2. Алгоритм состоит из задач, которые входят в СКИ исполнителя.

3. Команды однозначны и понятны.

4. Алгоритм дает ожидаемый результат.

5. Алгоритм может обеспечить решение задач с разными исходными данными.

Также хочу дать второе определение алгоритма, которое можно вывести вследствии последнего написанного.

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

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

Далее я хочу рассказать, что бывают линейные алгоритмические конструкции и алгоритмические конструкции ветвления.

Алгоритмическая конструкция следования, или линейная - алгоритмическая конструкция, показывающая последовательный, простой порядок действий. Именно такие конструкции мы и рассматривали ранее. Они выглядят примерно так:

...

Действие 1

Действие 2

...


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

Также есть алгоритмическая конструкция ветвления - это алгоритм, который в зависимости проверки условия исходных данных (правда/ложь) выбирает одни или несколько из возможных действий (ветвей). Такие алгоритмы называются разветвляющими. Пример как он может выглядеть:

/////////////////////////// .........
////////////////////////////////↓
/////////////////////////Условие
Проверка условия 1 ↓ Проверка условия 2
–––––––––––––––––––––––––––––––
///////↓ ////////////////////////////////////////////////↓
Действие 1/////////////////////////////// Действие 2


Примером такого алгоритма может быть:

////////////////Постель заправлена
/////////////////////////Да ↓ Нет
––––––––––––––––––––––––––––––––
///////////↓ ////////////////////////////////////////↓
Ничего не делать /////////////Заправить постель

Этот алгоритм, конечно, не совсем верный, так как имеет неточные указания.

В письменно виде этот алгоритм выглядел бы так:

1) постель заправлена?

если да, то:

ничего не делать.

если нет, то:

заправить постель.

Задание (самостоятельная проверка): составьте алгоритмические конструкции ветвления от 2х ветвей и больше письменно.

В следующей главе я уже перейду к началу кодинга.
17 мая в 22:56
ПОИСК
ФАНФИКОВ







Закрыть
Закрыть
Закрыть