как составить алгоритм



Как создать алгоритм

Автор Артем Воронцов задал вопрос в разделе Другие языки и технологии

как научиться создавать алгоритмы? и получил лучший ответ

Ответ от Ev[гуру]
Здесь чаще задают вопросы "Какой язык учить первый, а какой второй" (третий, четвертый... )
Как будто от того, что человек выучит все краски,
он автоматически станет непревзойденным художником,
или выучив все ноты (до, ре, ми, фа, соль.. ) станет сразу сочинять музыку.
Сколько раз сталкивался:
- Я выучил весь Pascal (QBASIC и проч... ) и теперь хочу написать игрушку!
- Ну, раз "выучил", давай сделаем солнышко с играющими лучиками.. .
Нарисуем окружность, вокруг нарисуем лучики, дальше делаем анимацию
- Ммммм.. . А как это?
Т. е. человек не может в уме предствить КАК ЭТО.. .
Не может сообразить, что для анимации движения, один лучик надо стереть (нарисовать поверх такой же, но цветом фона) ,
а затем нарисовать лучик, но другой длины. И так по кругу (цикл)
Если оглянуться вокруг, то любой процесс можно выразить алгоритмически.
Ведь что такое Алгоритм? Это точный набор инструкций, описывающих порядок действий
исполнителя для достижения результата решения задачи за конечное время.
Это не я сказал - это в википедии так написано. :))
Попробуй самостоятельно писать алгоритмы.
Например, стиральная машина. Скажешь сложно? Ничего подобного.. .
1. Включить питание (начало)
2. Открыть клапан воды
3. Наполнять бак смывая порошок из отсека
4. По достижении уровня воды XXX, закрыть клапан
5. Повернуть бак на 3 оборота (размешать порошок)
6. Включить нагрев воды
7.
8.
Думаю, что дальше ты сможешь написать сам ( потом сверь с реальной машиной на сколько пунктов ошибся) 🙂
В принципе, так программу для микроконтроллера стиралки и пишут.
Ничего сложного нет, алгоритм ЛЮБОЙ СЛОЖНОСТИ можно реализовать, используя только ТРИ конструкции:
СЛЕДОВАНИЕ (оператор за оператором, команда за командой)
ПОВТОРЕНИЕ (цикл) и
ВЫБОР (альтернатива, выбор по условию) .
Опять же, это не я придумал, а Э. Дейкстра (теорема структурного программирования) .
Поэтому, читай книги по информатике, занимайся самостоятельно, и алгоритмизируй все вокруг.
Ну и начинай учить какой нибудь язык программирования. Только не бери сложный, возьми простой.. .
Удачи!

Ответ от Александр Свиридов[гуру]
В программировании есть так называемые паттерны. Это стандартные решения однотипных задач. Паттерны реализуются на языке программирования и второй раз эти реализации придумывать не нужно. Так например поддержка событий у объектов означает реализацию паттерна Observer.
Существует "лучшая практика" решения различных задач. Например, отображение данных полученных из базы данных. Или операции чтения записи в базе данных. Здесь у вас есть выбор, вы как специалист сами решаете какой подход лучше. Например, Active Record или Unit of Work? Выбор между разными стандартными решениями можно сделать только имея опыт в той сфере. Если сунулся в смежную сферу то неизбежна трата времени на изучение.
Профессиональная разработка программ чаще сопряжена с использованием библиотек (своих или чужих) . Сейчас редко кто пишет вообще с нуля. Подбор нужных вам библиотек тоже важен. Вы их изучаете и можете решить задачу в сжатые сроки за удобные для клиента деньги. Опять же в смежных областях вы можете и не участвовать, так как там ваш опыт не велик и знаний библиотек не хватит. Сегодня программирование слишком велико чтобы его освоить от корки до корки.

Ответ от Мужик С Веслом[гуру]
Это - как научиться писать сочинения. Научиться ясно и точно формулировать свои мысли и записывать их.
Что нужно? По-больше писать сочинений.

Ответ от ~~[гуру]
Это приходит с опытом.
Так же полезно посмотреть чтобы увидеть как правильно составлять алгоритмы.

Ответ от Sm[гуру]
все равно что спросить "как стать балериной")

Ответ от И.А. Голованов[гуру]
Основной вариант
задача грубо делится на куски (подзадачи)
потом подзадачи на подподзадачи и так до мельчайшего
Или
задача на подзадачи.. . с учетом используемых библиотек для подподподзадач (библиотек функций)
(проектирование сверху)
А эвристике не знаю как научить - тут надо сотню задач сделать чтоб "почуять" и кучу математики
и набить руку и тома по матану и по алгему и теории масс обсл и теор множ. и... (вышка и её капитально переварить)
--------
И каждый язык заточен под конкретный стиль задач - синтаксис языка действительно учится за пару дней и если что то по хелпам можно посмотеть.
Тут ещё важно понять что куда годится. и надо знать пачки библиотек для языков и как их сопоставить со знанием разных разделов математики при выборе конкретного языка реализации

Ответ от Ёемен Боксин[гуру]
Для этого надо задачи решать, а не на ответах сидеть.

Ответ от Krab Bark[гуру]
Читать задачники с решениями задач. Конечно, они есть. Какие конкретно, зависит от языка.

Ответ от Anonymous ...[гуру]
Книги с информатики.. . В инете поищи

Ответ от 22 ответа[гуру]
Привет! Вот подборка тем с похожими вопросами и ответами на Ваш вопрос: как научиться создавать алгоритмы?
Алгоритм на Википедии
Посмотрите статью на википедии про Алгоритм
Блок-схема на Википедии
Посмотрите статью на википедии про Блок-схема
 

Ответить на вопрос:

Имя*

E-mail:*

Текст ответа:*
Проверочный код(введите 22):*