Алгоритмизация как хобби.

Aivery
Хранитель
Сообщения: 13898
Зарегистрирован: 02 май 2015, 07:35
Репутация: 3077

Алгоритмизация как хобби.

Сообщение Aivery »

Алгори́тм — набор инструкций, описывающих порядок действий исполнителя для достижения некоторого результата. В старой трактовке вместо слова «порядок» использовалось слово «последовательность», но по мере развития параллельности в работе компьютеров слово «последовательность» стали заменять более общим словом «порядок». Независимые инструкции могут выполняться в произвольном порядке, параллельно, если это позволяют используемые исполнители.

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

Можно выделить алгоритмы вычислительные, и управляющие. Вычислительные по сути преобразуют некоторые исходные данные в выходные, реализуя вычисление некоторой функции. Семантика управляющих алгоритмов существенным образом может отличаться и сводиться к выдаче необходимых управляющих воздействий либо в заданные моменты времени, либо в качестве реакции на внешние события (в этом случае, в отличие от вычислительного алгоритма, управляющий может оставаться корректным при бесконечном выполнении).
Различные определения алгоритма в явной или неявной форме содержат следующий ряд общих требований:

Дискретность — алгоритм должен представлять процесс решения задачи как последовательное выполнение некоторых простых шагов. При этом для выполнения каждого шага алгоритма требуется конечный отрезок времени, то есть преобразование исходных данных в результат осуществляется во времени дискретно.
Детерминированность (определённость). В каждый момент времени следующий шаг работы однозначно определяется состоянием системы. Таким образом, алгоритм выдаёт один и тот же результат (ответ) для одних и тех же исходных данных. В современной трактовке у разных реализаций одного и того же алгоритма должен быть изоморфный граф. С другой стороны, существуют вероятностные алгоритмы, в которых следующий шаг работы зависит от текущего состояния системы и генерируемого случайного числа. Однако при включении метода генерации случайных чисел в список «исходных данных» вероятностный алгоритм становится подвидом обычного.
Понятность — алгоритм должен включать только те команды, которые доступны исполнителю и входят в его систему команд.
Завершаемость (конечность) — в более узком понимании алгоритма как математической функции, при корректно заданных исходных данных алгоритм должен завершать работу и выдавать результат за конечное число шагов. С другой стороны, вероятностный алгоритм может и никогда не выдать результат, но вероятность этого равна 0.
Массовость (универсальность). Алгоритм должен быть применим к разным наборам исходных данных.
Результативность — завершение алгоритма определёнными результатами.
Алгоритм содержит ошибки, если приводит к получению неправильных результатов либо не даёт результатов вовсе.
Алгоритм не содержит ошибок, если он даёт правильные результаты для любых допустимых исходных данных.
Aivery
Хранитель
Сообщения: 13898
Зарегистрирован: 02 май 2015, 07:35
Репутация: 3077

Re: Алгоритмизация как хобби.

Сообщение Aivery »

Средства и правила построения блок-схем

Блок-схема является формой представления алгоритма с помощью графических символов. Графические символы, их размеры, а также правила построения блок-схем определены государственными стандартами. Рассмотрим часто употребляемые графические символы (полный список включает 42 символа).

http://manuilov.narod.ru/structura/2_3_2.htm
simvoly-v-shemah.jpg
shema-3.jpg
Aivery
Хранитель
Сообщения: 13898
Зарегистрирован: 02 май 2015, 07:35
Репутация: 3077

Re: Алгоритмизация как хобби.

Сообщение Aivery »

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

алгоритм описывающий действие эмоциональной реакции является цикличным.
• Циклический алгоритм — алгоритм, предусматривающий многократное повторение одного и того же действия (одних и тех же операций) над новыми исходными данными. К циклическим алгоритмам сводится большинство методов вычислений, перебора вариантов. Цикл программы — последовательность команд (серия, тело цикла), которая может выполняться многократно (для новых исходных данных) до удовлетворения некоторого условия.
данная тема создана для попытки описать различные поведенческие реакции человека алгоритмом.
тем самым продемонстрировать его схожесть с компьютером или механизмом, в части возможности программирования поведения человека и групп людей.
Aivery
Хранитель
Сообщения: 13898
Зарегистрирован: 02 май 2015, 07:35
Репутация: 3077

Re: Алгоритмизация как хобби.

Сообщение Aivery »

еще немного терминов:

Компиляция (программирование) — трансляция программы, составленной на исходном языке высокого уровня, в эквивалентную программу на низкоуровневом языке, близком машинному коду

Декомпиля́ция — процесс воссоздания исходного кода декомпилятором.
Декомпиляция, в частности, используется при обратной разработке программ.
Удачность декомпиляции зависит от объема информации, представленной в декомпилируемом коде.
Некоторые компиляторы и инструменты используемые после компиляции подвергают программный код обфускации с целью затруднить декомпиляцию.

Обфуска́ция (от лат. obfuscare — затенять, затемнять; и англ. obfuscate — делать неочевидным, запутанным, сбивать с толку) или запутывание кода — приведение исходного текста или исполняемого кода программы к виду, сохраняющему её функциональность, но затрудняющему анализ, понимание алгоритмов работы и модификацию при декомпиляции.
Aivery
Хранитель
Сообщения: 13898
Зарегистрирован: 02 май 2015, 07:35
Репутация: 3077

Re: Алгоритмизация как хобби.

Сообщение Aivery »

алгоритмизация для детей:

https://scratch.mit.edu/projects/editor/?tip_bar=home
Ответить