|
|||||||
АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция |
ОБЩИЕ ПОДХОДЫ К ПОСТРОЕНИЮ АЛГОРИТМОВВспомнить формулировки всех понятий, используемых в задаче. Выбрать форму представления признаков всех понятий, форму представления объектов, относящихся к каждому понятию. Установить структуру используемых в задаче объектов. Помните, структура исходных данных часто определяет структуру разрабатываемого алгоритма. Неудачно представленные исходные данные затрудняют построение алгоритма (сравните выполнение арифметических операций, например: умножения, в римской системе счисления и в позиционной системе счисления). Попытайтесь разбить алгоритм на части в соответствии с количеством частей в структуре исходных данных. Используйте ветвящиеся алгоритмы для выделения и обработки отличающихся частей структуры, обрабатывайте в цикле повторяющиеся части структуры. Подобрать (отыскать) нужный алгоритм по литературе. Помните, чтобы понять алгоритм, его нужно выполнить. Если потребуется, то модифицируйте найденный алгоритм так, чтобы он решал задачу. Иногда для этого достаточно преобразовать исходные данные из одной формы в другую, добавить в алгоритм дополнительные вычисления. Попытаться преобразовать построенный Вами ранее алгоритм для решения данной задачи. Просмотреть набор стандартных функций используемого алгоритмического языка, имеющиеся библиотеки и отыскать готовое решение или набор функций, облегчающих это решение. Помните, многие задачи были уже решены предшественниками. Выберите подходящего исполнителя (подходящий алгоритмический язык), в системе команд которого имеются команды и функции, облегчающие решение задачи. Разбейте большую задачу на малые и решите их. Для этого используется метод пошаговой детализации (структурное программирование). Суть метода сводится к следующему. Сложные алгоритмы строятся на основе суперпозиции (вложения друг в друга) трех основных (базовых) структур: линейной, ветвящейся и циклической. На каждом шаге построения алгоритм представляется одной из базовых структур, содержащей менее сложные задачи, чем та, что была перед данным шагом. Каждая из вновь полученных задач детализируется (разукрупняется) дальше, заменяясь на одну из базовых структур. Этот процесс продолжается до тех пор, пока не будут получены задачи, которые могут быть решены с помощью нескольких операторов выбранного алгоритмического языка. Затем, следуя в обратном направлении, заменяем детализированными блоками исходные блоки (верхнего уровня) и получаем готовую программу. Одним из преимуществ этого подхода является возможность тестирования программы на любом шаге, заменив не детализированные пока части заглушками. Этот подход позволяет построить алгоритм быстрее и с меньшим количеством ошибок. Метод построения алгоритмов на основе классификации. Ветвящиеся алгоритмы строятся по формализованному описанию понятий, используемых в постановке задачи, например, с помощью таблиц решений. Циклические алгоритмы классифицируются на арифметические, итерационные и поисковые и строятся в соответствии со следующими правилами. 1. Установить, что повторяется в теле цикла, например: сравнив два соседних шага вычисления результата. 2. Ответить на вопрос: - «Известно ли нам заранее количество раз выполнения тела цикла»? Если «да», то цикл является арифметическим, а его параметром (переменной цикла) является счетчик. Если «нет», то отвечаем на другой вопрос. «Сколько причин окончания цикла имеется»? Если причина окончания одна, то цикл - итерационный, а его параметр - величина, сравнимая с заданной точностью вычислений. Если причин окончания больше одной, то цикл является поисковым. Условием его окончания является сложное логическое выражение, объединяющее все причины окончания цикла. 3. Установить начальные значения для всех переменных, используемых в цикле (появляющихся в условиях (логических выражениях), правых частях операторов присваивания, исходных выражениях для вложенных циклов и т.п.). Обработка массивов осуществляется на основе следующей классификации: 1) простые задачи, где все элементы массива обрабатываются однотипно; 2) задачи по изменению структуры (порядка следования элементов) массива; 3) совместная обработка нескольких массивов; 4) поисковые задачи для массивов. Построение алгоритмов с использованием рекурсии, моделирования, поиска, в том числе с возвратом. Поиск по сайту: |
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.004 сек.) |