- От сложного к простому: алгоритм гарантированного решения любой задачи
- Система с одинарной петлей
- Петля двойная
- Определение сложных точек
- Пример решения задачи в написании
- Алгоритмические методы решения задач
- Алгоритмы
- Алгоритмы. Разработка алгоритма решения задачи
- Базовые алгоритмические конструкции
- Линейные алгоритмы
- Пример
- Разветвляющиеся алгоритмы
- Пример
- Циклические алгоритмы
- Пример
От сложного к простому: алгоритм гарантированного решения любой задачи
Достаточно часто люди ставят перед собой задачи, но при этом не знают, как их решить. Каждый человек пытается самостоятельно найти решение данной проблемы. Программист Дэвид Макайвер делится своими методами решения сложных задач.
По мнению Макайвера, его система позволяет освоить то, что на первый взгляд является сложным. Для того чтобы добиться успеха в чем-либо Дэвид часто использует свою систему, но не всегда придерживается всех правил. Его система является беспроигрышной в любом случае, но время на выполнение задачи зависит от многих факторов. Суть данной системы заключается в том, что вы в любом случае получите определенную выгоду, даже если не достигнете конечной цели.
Система с одинарной петлей
Эта система подойдет тем, кто знает, что такое успех, но на данный момент он его не достиг. Как это работает:
- Найдите легкую задачу, которая на первый взгляд кажется трудной.
- Найдите что-то общее между легкой и трудной схожей задачей.
- Продолжайте видоизменять задачу до тех пор, пока она не станет максимально простой.
- Если вам не удалось превратить сложную задачу в простую, постарайтесь рассмотреть ее под другим углом. Также можно воспользоваться советом специалиста в определенной отрасли.
- Если вам не удалось достичь желаемого, просто вернитесь ко второму пункту.
Данная система прекрасно работает благодаря отличному видению всего процесса обратной связи. Для того, чтобы становиться лучше в каком-то деле, необходимо сосредоточиться на одном аспекте, откинув все остальное. Обращая внимание сразу на несколько аспектов, вы упускаете возможность достичь успеха.
Петля двойная
В случае невозможности представления окончательного результата придется копнуть несколько глубже и провести двойную работу:
- Сразу вам нужно воспользоваться предыдущей системой, чтобы лучше понять суть проблемы.
- Примените одну петлю по отношению к проблеме, воспользовавшись своим чувством вкуса.
- Обязательно получите отзыв со стороны о вашей проделанной работе.
Определение сложных точек
Часто понять то, что нужно улучшить, просто, однако, бывают ситуации, когда человек не может разобраться в данном вопросе. Чтобы лучше сориентироваться и увидеть очевидное, вам потребуется:
- Максимально приложить усилия, чтобы выполнить задачу наилучшим образом. Не переживайте, если вас настигнет неудача, так как подобное явление бывает часто во многих начинаниях. В решении данного вопроса вам поможет список, где вы сможете указать, что сделали хорошо и плохо. Если вы не можете решить проблему, значит вам надо ознакомиться со списком и понять, где именно вы совершили ошибку.
- Не пренебрегайте упражнениями в той области, которую вы начали изучать. Обратите внимание на то, что вам дается очень сложно.
- Обратитесь за помощью к специалисту, который поможет вам разобраться с тем, в чем следует потренироваться.
- Не стоит тратить время на простые задачи, лучше выбирайте сложные и старайтесь максимально их облегчить. Не бойтесь мыслить от простого к сложному и наоборот.
Пример решения задачи в написании
Научиться хорошо писать сложно, ведь этот процесс подразумевает множество пунктов, среди которых:
- процесс написания;
- поиск своего собственного стиля;
- невозможность начать из-за боязни насмешек со стороны окружающих;
- редактирование написанного.
Уже после упоминания этих основных моментов можно подумать и о менее важных. Что вам нужно:
- научиться печатать вслепую;
- использовать свой собственный голос, например, для записи текста на диктофон;
- не ожидать изначально от своих тестов высочайшего качества;
- не стараться отредактировать текст в целом, а лучше обращать внимание на конкретные вещи.
Существует немало примеров того, что следует попробовать, однако, для начала вам нужно выбрать исходную точку и следовать к своим целям. Четко поставленные цели и осознание необходимости их достижения – залог решения даже самых сложных задач. Курс Викиум «Целеполагание» как раз эффективно обучает постановке целей.
Источник
Алгоритмические методы решения задач
Алгоритмические методы решения задач
Значительное количество задач предполагает при своем решений не творческую деятельность, а применение в основном определенного правила, формулы, определения, теоремы.
Например, для решения любого уравнения первой степени необходимо известные слагаемые перенести в правую часть, а слагаемые, содержащие неизвестные, перенести в левую часть, привести подобные члены и обе части уравнения разделить на коэффициент при неизвестном, если он отличен от нуля. Если он равен нулю, то поступают известным образом.
Приведенное правило — предписание алгоритмического типа, или алгоритм решения линейного уравнения. Правила сравнения чисел, действий над числами в различных числовых множествах, решения линейных, квадратных уравнений, неравенств — все это примеры алгоритмов. Под алгоритмом понимается точное общепонятное предписание о выполнении в определенной последовательности операций для решения любой из задач, принадлежащих некоторому классу.
Алгоритм может быть задан в виде таблицы, правила, формулы, определения, описания. Алгоритм может регламентировать действие с различной степенью подробности — свернутости, в зависимости от того, кому он предназначается. Если алгоритм предъявлен в форме последовательности команд, то это готовая программа действия. Приведем пример. Чтобы сложить десятичные дроби, нужно: 1) уравнять в этих дробях количество знаков после запятой; 2) записать их друг под другом так, чтобы запятая была записана под запятой; 3) выполнить сложение, не обращая внимания на запятую; 4) поставить в ответе запятую под запятой в данных дробях (Випенкин Н.Я. и др. Математика 5- М., 2000).
Если алгоритм задан в виде формулы, правила, таблицы, определения, то программы нет. Ее предстоит создать решающему задачу. Рассмотрим в качестве примера определение решения системы неравенств с переменной как значение переменной, при котором каждое из неравенств системы обращается в верное числовое неравенство. Определение подразумевает следующие шаги решения системы неравенств: 1) решить каждое неравенство; 2) найти пересечение полученных множеств.
Алгоритмы можно разделить на алгоритмы распознавания и преобразования. Признаки делимости, рассмотренные ранее алгоритмы подведения под определение и под понятие являются примерами алгоритмов распознавания. Алгоритмы по применению формул являются алгоритмом» преобразования. Однако при применении конкретной формулы, например, квадрата суммы двух чисел, вначале происходит узнавание формулы, доказательство того, что выбор формулы сделан правильно, а затем производится собственно преобразование: актуализация формулы и использование ее по шагам. Описанная деятельность состоит из следующих шагов: 1) найти первый член двучлена; 2) найти второй член двучлена; 3) возвысить первый член двучлена в квадрат; 4) составить произведение первого и второго членов двучлена; 5) удвоить результат предыдущего шага; 6) возвысить второй член двучлена в квадрат; 7) результаты третьего, пятого и шестого шагов сложить.
Значительное число различных правил в школьных учебниках математики в последнее время сообщается учащимся в форме алгоритма с выделенной последовательностью шагов. Использование правила в этом случае представляет собой меньшую трудность для учащихся, чем использование правила при отсутствии выделенных шагов или если какие-то операции — шаги действия в предписании пропущены, только подразумеваются и должны быть восполнены учащимися самостоятельно.
Рассмотрим правило сложения чисел с разными знаками в следующей форме: чтобы сложить два числа с разными знаками, надо: 1) из большего модуля вычесть меньший; 2) поставить перед полученным числом знак того слагаемого, модуль которого больше.
Этот алгоритм требует от школьника доработки, т. к. в нем не обозначены шаги: найти модуль каждого числа; сравнить модули и выделить число с большим модулем; определить знак числа, имеющего больший модуль. Эти шаги отдельными учащимися легко выполняются, а для других их выделение представляет существенные трудности.
В отдельных случаях операции, входящие в состав действий, приведены в учебниках в описательной форме или показаны на примерах, и для осуществления действий учащимся требуется выделить операции — отдельные шаги действия самостоятельно, как, например, при составлении пропорций при использовании подобия треугольников.
Проблема составления алгоритмов по изученному материалу связана с рядом важнейших проблем обучения математике: применение теоретических знаний на практике и развитие алгоритмического мышления. Под алгоритмическим мышлением понимается особый аспект культуры мышления, характеризующийся умением составлять и использовать различные алгоритмы.
Составлению, выделению алгоритмов необходимо специально обучать.
Это может происходить с помощью проведения обобщений при решении нескольких аналогичных задач. Необходимо обучать чтению формул словами, необходимо обучать переходу от речевой, формы в аналитическую и обратно, необходимо обучать строить программы действий в тех случаях, когда материал в книге или в рассказе предъявлен в описательной форме. Это и будет означать обучение применению теоретических знаний на практике и развитие алгоритмического мышления. Необходимо также обучать разворачивать, дополнять алгоритмы, предъявленные в готовой форме.
При использовании готовых алгоритмов целесообразно пользоваться компактным методом. Метод состоит в том, что (алгоритм) правило произносится по частям, на которые оно разбито по смыслу, и каждая операция выполняется вслед за произнесением соответствующего текста (пример приведите самостоятельно). Тем самым обеспечивается сознательное усвоение соответствующего правила. Компактный метод противопоставляется раздельному, когда произнесение правила целиком и его применение следуют друг за другом.
Вторая рекомендация по использованию алгоритмов вытекает из положений теории деятельности. Она заключается в требовании проведения всех операций, содержащихся в алгоритме (правиле) во внешнем плане и в развернутой форме, т. е. в написании и проговаривании всех операций без пропусков.
Источник
Алгоритмы
Алгоритмы. Разработка алгоритма решения задачи
Исключительно важно использовать язык блок-схем при разработке алгоритма решения задачи. Решение одной и той же задачи может быть реализовано с помощью различных алгоритмов, отличающихся друг от друга как по времени счета и объему вычислений, так и по своей сложности. Запись этих алгоритмов с помощью блок-схем позволяет сравнивать их, выбирать наилучший алгоритм, упрощать, находить и устранять ошибки.
Отказ от языка блок-схем при разработке алгоритма и разработка алгоритма сразу на языке программирования приводит к значительным потерям времени, к выбору неоптимального алгоритма. Поэтому необходимо изначально разработать алгоритм решения задачи на языке блок-схем, после чего алгоритм перевести на язык программирования.
При разработке алгоритма сложной задачи используется метод пошаговой детализации. На первом шаге продумывается общая структура алгоритма без детальной проработки отдельных его частей. Блоки, требующие детализации, обводятся пунктирной линией и на последующих шагах разработки алгоритма продумываются и детализируются.
В процессе разработки алгоритма решения задачи можно выделить следующие этапы:
- Этап 1 . Математическое описание решения задачи.
- Этап 2 . Определение входных и выходных данных.
- Этап 3 . Разработка алгоритма решения задачи.
Базовые алгоритмические конструкции
В теории программирования доказано, что для записи любого, сколь угодно сложного алгоритма достаточно трех базовых структур:
- следование (линейный алгоритм);
- ветвление (разветвляющийся алгоритм);
- цикл-пока (циклический алгоритм).
Линейные алгоритмы
Линейный алгоритм образуется из последовательности действий, следующих одно за другим. Например, для определения площади прямоугольника необходимо сначала задать длину первой стороны, затем задать длину второй стороны, а уже затем по формуле вычислить его площадь.
Пример
ЗАДАЧА. Разработать алгоритм вычисления гипотенузы прямоугольного треугольника по известным значениям длин его катетов a и b.
На примере данной задачи рассмотрим все три этапа разработки алгоритма решения задачи:
Этап 1. Математическое описание решения задачи.
Математическим решением задачи является известная формула:
,
где с-длина гипотенузы, a, b – длины катетов.
Этап 2. Определение входных и выходных данных.
Входными данными являются значения катетов a и b. Выходными данными является длина гипотенузы – c.
Этап 3. Разработка алгоритма решения задачи.
Словесное описание алгоритма | Запись алгоритма на языке блок-схем |
|