Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Гладков_Кулютникова.doc
Скачиваний:
8
Добавлен:
03.11.2018
Размер:
1.36 Mб
Скачать

Языковые знания и умения.

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

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

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

Естественные и искусственные языки. Формы выражения указанных выше понятий на алгоритмических языках.

Эквивалентные переформулировки вопросов и ответов, адекватных им по форме. Перевод фраз естественного языка на алгоритмический и обратно.

Поисковые знания и умения.

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

Перекодирование информации: коды и шифры. Преобразование информации из одной формы в другую, удобную для обработки на компьютере.

Установление структуры (строения, устройства) данных и выбор формы её представления (описания).

Целенаправленный перебор логических возможностей. Комбинаторные задачи.

Алгоритмические навыки и умения.

Уметь выделять систему команд заданного исполнителя. Находить в заданном алгоритме команды, которые не входят в систему команд конкретного исполнителя и ведут к АВОСТу. Уметь выполнить трассировку предложенного алгоритма, подобрать тесты для него. Уметь установить (выявить) структуру исходных данных и результата задачи, рационально представить исходные данные для обработки исполнителем. Представлять алгоритм в разных формах, уметь переводить алгоритм из одной формы представления в другую.

Общие подходы к построению алгоритмов

Вспомнить формулировки всех понятий, используемых в задаче. Выбрать форму представления признаков всех понятий, форму представления объектов, относящихся к каждому понятию. Установить структуру используемых в задаче объектов. Помните, структура исходных данных часто определяет структуру разрабатываемого алгоритма. Неудачно представленные исходные данные затрудняют построение алгоритма (сравните выполнение арифметических операций, например: умножения, в римской системе счисления и в позиционной системе счисления). Попытайтесь разбить алгоритм на части в соответствии с количеством частей в структуре исходных данных. Используйте ветвящиеся алгоритмы для выделения и обработки отличающихся частей структуры, обрабатывайте в цикле повторяющиеся части структуры.

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

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

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

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

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

1. Установить, что повторяется в теле цикла, например: сравнив два соседних шага вычисления результата.

2. Ответить на вопрос: - «Известно ли нам заранее количество раз выполнения тела цикла»? Если «да», то цикл является арифметическим, а его параметром (переменной цикла) является счетчик. Если «нет», то отвечаем на другой вопрос. «Сколько причин окончания цикла имеется»? Если причина окончания одна, то цикл - итерационный, а его параметр - величина, сравнимая с заданной точностью вычислений. Если причин окончания больше одной, то цикл является поисковым. Условием его окончания является сложное логическое выражение, объединяющее все причины окончания цикла.

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

Обработка массивов осуществляется на основе следующей классификации:

  1. простые задачи, где все элементы массива обрабатываются однотипно;

  2. задачи по изменению структуры (порядка следования элементов) массива;

  3. совместная обработка нескольких массивов;

  4. поисковые задачи для массивов.

Построение алгоритмов с использованием рекурсии, моделирования, поиска, в том числе с возвратом.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]