Алгоритмизация и программирование

1. Основная часть

2. Анализ постановки задачи и ее предметной области

3. Формальное решение задачи

4. Основы алгоритмизации

5. Основные средства представления алгоритмов

6. Визуальные алгоритмы

7. Разветвленные алгоритмы

8. Задания для самостоятельного выполнения

9. Циклические алгоритмы

10. Задания для самостоятельного выполнения

11. Алгоритмы обработки последовательностей чисел

12. Задания для самостоятельного выполнения

13. Алгоритмы обработки одномерных числовых массивов

14. Задания для самостоятельного выполнения

15. Алгоритмы сортировки одномерных массивов

16. Сортировка модифицированным методом простого выбора

17. Сортировка методом парных перестановок

18. Задания для самостоятельного выполнения

19. Алгоритмы обработки упорядоченных массивов

20. Поиск элементов в упорядоченном массиве

21. Задания для самостоятельного выполнения

22. Алгоритмы обработки одномерных символьных массивов

23. Задания для самостоятельного выполнения

24. Алгоритмы обработки двумерных массивов

    Введение 1. Анализ постановки задачи и ее предметной области 2. Формальное решение задачи 3. Основы алгоритмизации 4. Основные средства представления алгоритмов 5. Визуальные алгоритмы 6. Разветвленные алгоритмы      6.1. Задания для самостоятельного выполнения 7. Циклические алгоритмы      7.1. Задания для самостоятельного выполнения 8. Алгоритмы обработки последовательностей чисел      8.1. Задания для самостоятельного выполнения 9. Алгоритмы обработки одномерных числовых массивов      9.1. Задания для самостоятельного выполнения 10. Алгоритмы сортировки одномерных массивов      10.1. Сортировка модифицированным методом простого выбора      10.2. Сортировка методом парных перестановок      10.3. Задания для самостоятельного выполнения 11. Алгоритмы обработки упорядоченных массивов      11.1. Поиск элементов в упорядоченном массиве      11.2. Задания для самостоятельного выполнения 12. Алгоритмы обработки одномерных символьных массивов      12.1. Задания для самостоятельного выполнения 13. Алгоритмы обработки двумерных массивов      13.1. Задания для самостоятельного выполнения Заключение Приложение 1. Тестовый самоконтроль Приложение 2. Таблица соответствия алгоритмических и программных Словарь основных понятий и терминов Литература Ответы и решения Анализ постановки задачи и ее предметной области На первом этапе уточняется постановка задачи, после чего выявляются отдельные явления, объекты, процессы, их связи и зависимости предметной области. Здесь определяются такие понятия как исходные и результирующие данные, абстрактно представляющие информацию о процессах предметной области реального мира, а также поясняются каким образом из исходных данных могут быть получены результирующие. Исходные данные должны быть полными, т.е. содержать данные, необходимые и достаточные для решения задачи. Если данные неполные, необходимо приложить дополнительные усилия для сбора дополнительных сведений; эта ситуация может также возникнуть на последующих этапах при выборе метода решения. Различают исходные данные трех видов: постоянные, условно-постоянные и переменные.
  • Постоянные исходные данные;
  • Условно-постоянные данные;
  • Переменные данные;
На этом этапе важно не только классифицировать данные по отношению к процессу решения, но определить их наименование, тип, структуру и ограничения, накладываемые на значения. Желательно также определить допустимые и недопустимые операции по отношению к различным типам исходных данных. Классификация данных по структурному признаку Рисунок 1. Классификация данных На рис.1 представлена классификация данных. Данное относят к простому типу, если в любой момент времени оно определяет одно и только одно значение. Диапазон изменения возможных значений определяется типом данных. Например, требуется вычислить площадь поверхности некоторого тела. Очевидно, что для представления информации о вычисляемой площади поверхности некоторого тела достаточно использовать данное простого числового типа. Простые данные определяют такое отношение: одно имя - одно значение. Структурированные данные отличаются от простых тем, что к ним применимо другое отношение: одно имя - много значений. Если все элементы, входящие в такую структуру, однотипны, то такая структура называется однородной, в противном случае - неоднородной. Классическим примером однородной структуры является массив, являющийся последовательностью однотипных значений, таких как, например, (2,51,3,7,88). Неоднородная структура в отличие от однородной содержит значения различных типов, относящихся к одному понятию или объекту, и, значит, такое структурированное данное несет в себе больше информации. Для представления неоднородных структур используют запись. Запись - это структура, предназначенная для представления данных различного типа. Запись состоит из поименованных полей, каждое из которых должно содержать значение определенного типа. Рассмотрим простой пример. Задача заключается в определении в некоторой стране города с максимальным количеством жителей. Данные, которые необходимо проанализировать, это нечисловые данные, содержащие информацию о названии города, и числовые данные, содержащие информацию о численности населения в этом городе. В качестве структуры, содержащей данные о названии города и количестве в нем жителей, следует выбрать неоднородную структуру - запись, пример которой изображен в таблице 1. Таблица 1. Пример записи
Имя поля: Город Имя поля: Количество жителей
Тип поля: Строка символов Тип поля: Число
Значение: Москва Значение: 8 578 676

 

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

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

В результате анализа постановка и требования задачи могут быть представлены в обобщенном виде.

    Начало формы Введение 1. Анализ постановки задачи и ее предметной области 2. Формальное решение задачи 3. Основы алгоритмизации 4. Основные средства представления алгоритмов 5. Визуальные алгоритмы 6. Разветвленные алгоритмы      6.1. Задания для самостоятельного выполнения 7. Циклические алгоритмы      7.1. Задания для самостоятельного выполнения 8. Алгоритмы обработки последовательностей чисел      8.1. Задания для самостоятельного выполнения 9. Алгоритмы обработки одномерных числовых массивов      9.1. Задания для самостоятельного выполнения 10. Алгоритмы сортировки одномерных массивов      10.1. Сортировка модифицированным методом простого выбора      10.2. Сортировка методом парных перестановок      10.3. Задания для самостоятельного выполнения 11. Алгоритмы обработки упорядоченных массивов      11.1. Поиск элементов в упорядоченном массиве      11.2. Задания для самостоятельного выполнения 12. Алгоритмы обработки одномерных символьных массивов      12.1. Задания для самостоятельного выполнения 13. Алгоритмы обработки двумерных массивов      13.1. Задания для самостоятельного выполнения Заключение Приложение 1. Тестовый самоконтроль Приложение 2. Таблица соответствия алгоритмических и программных Словарь основных понятий и терминов Литература Ответы и решения Конец формы Формальное решение задачи После проведения анализа постановки задачи, выявления данных, их структуры и отношений между ними можно приступить к построению формальной модели. Это наиболее важный этап в процессе решения задачи. Модель. Моделирование. Для описания модели предметной области решаемой задачи необходимо выбрать некоторую формальную систему. Обычно, исходя из постановки задачи, можно сразу определить один или несколько видов моделей, подходящих для описания и моделирования решения вашей задачи: математические, геометрические, структурные, логические и др. Наиболее распространенными и хорошо изученными являются математические модели, описывающие зависимости между данными числового типа. Например, в качестве математической модели звезды можно использовать систему уравнений, описывающих процессы, происходящие в недрах звезды. Математической моделью другого рода являются математические соотношения, позволяющие рассчитать оптимальный план работы предприятия. К основным достоинствам математических моделей безусловно относятся хорошо изученные и широко применяемые математические методы решения большого класса задач, что значительно облегчает формирование основной идеи и выбор методов решения задачи. Приступая к разработке модели, следует попытаться решить задачу для конкретных входных данных, затем обобщить полученное решение на основе его анализа для любых значений входных данных. Перед тем как определить решение задачи для конкретных входных данных целесообразно найти ответ на следующие вопросы:
  • Существуют ли решения аналогичных задач?
  • Какая математическая модель больше всего подходит для решения этой задачи?
Пример 1
    Начало формы Введение 1. Анализ постановки задачи и ее предметной области 2. Формальное решение задачи 3. Основы алгоритмизации 4. Основные средства представления алгоритмов 5. Визуальные алгоритмы 6. Разветвленные алгоритмы      6.1. Задания для самостоятельного выполнения 7. Циклические алгоритмы      7.1. Задания для самостоятельного выполнения 8. Алгоритмы обработки последовательностей чисел      8.1. Задания для самостоятельного выполнения 9. Алгоритмы обработки одномерных числовых массивов      9.1. Задания для самостоятельного выполнения 10. Алгоритмы сортировки одномерных массивов      10.1. Сортировка модифицированным методом простого выбора      10.2. Сортировка методом парных перестановок      10.3. Задания для самостоятельного выполнения 11. Алгоритмы обработки упорядоченных массивов      11.1. Поиск элементов в упорядоченном массиве      11.2. Задания для самостоятельного выполнения 12. Алгоритмы обработки одномерных символьных массивов      12.1. Задания для самостоятельного выполнения 13. Алгоритмы обработки двумерных массивов      13.1. Задания для самостоятельного выполнения Заключение Приложение 1. Тестовый самоконтроль Приложение 2. Таблица соответствия алгоритмических и программных Словарь основных понятий и терминов Литература Ответы и решения Конец формы Основы алгоритмизации Слово "алгоритм" появилось в 9-м веке и связано с именем математика Аль-Хорезми, который сформулировал правила выполнения четырех арифметических действий над многозначными числами. В настоящее время понятие алгоритма - одно из фундаментальных понятий науки информатика. С одной стороны алгоритм является предметом изучения такой отрасли математики как теория алгоритмов (Марков [1]), с другой стороны в информатике существует неформальное определение алгоритма, и алгоритмизация выступает в качестве общего метода информатики. Объектом приложения алгоритмов являются самые различные науки и области практической деятельности (Хохлюк[3],Ахо [2]). Широкое применение алгоритмов для решения практических задач не только при использовании ЭВМ позволяет рассматривать эту область информатики как отдельную дисциплину - алгоритмику. Алгоритм. Исполнитель алгоритмов. Отдельные действия, составляющие алгоритм, называются операциями. При этом под операцией понимается как какое-то единичное действие, например, сложение, так и группа взаимосвязанных действий. Основными особенностями любого алгоритма являются решение задачи в обобщенном виде и возможность выполнять действия по решению задачи для конкретных значений (не только человеку, но и различным техническим устройствам (исполнителям)). Основным исполнителем несложных алгоритмов является человек. Достаточно вспомнить последовательность действий для решения систем линейных уравнений, вычисления корней уравнений. При решении сложных задач исполнителем является ЭВМ и составление алгоритма решения задачи является необходимым этапом, детализирующим метод решения для дальнейшего программирования. Программа осуществляет еще более глубокую детализацию решения и его визуализацию. Свойства алгоритма:
  • Определенность - выполнив очередное действие, исполнитель должен точно знать, что ему делать дальше.
  • Дискретность - прежде, чем выполнить определенное действие, надо выполнить предыдущее.
  • Массовость - по одному и тому же алгоритму решаются однотипные задачи и неоднократно.
  • Понятность - алгоритм строится для конкретного исполнителя человеком и должен быть ему понятен. Это облегчает его проверку и модификацию при необходимости .
  • Результативность - алгоритм всегда должен приводить к результату.
Можно сказать, что в процессе формального решения задачи, ее решение сначала описывается на языке математики в виде системы формул, а затем на языке алгоритмов в виде некоторого процесса, в котором используются ранее определенные математические формулы и условия их выполнения. Таким образом, алгоритм может рассматриваться как связующее звено в цепочке "метод решения - реализующая программа".
    Начало формы Введение 1. Анализ постановки задачи и ее предметной области 2. Формальное решение задачи 3. Основы алгоритмизации 4. Основные средства представления алгоритмов 5. Визуальные алгоритмы 6. Разветвленные алгоритмы      6.1. Задания для самостоятельного выполнения 7. Циклические алгоритмы      7.1. Задания для самостоятельного выполнения 8. Алгоритмы обработки последовательностей чисел      8.1. Задания для самостоятельного выполнения 9. Алгоритмы обработки одномерных числовых массивов      9.1. Задания для самостоятельного выполнения 10. Алгоритмы сортировки одномерных массивов      10.1. Сортировка модифицированным методом простого выбора      10.2. Сортировка методом парных перестановок      10.3. Задания для самостоятельного выполнения 11. Алгоритмы обработки упорядоченных массивов      11.1. Поиск элементов в упорядоченном массиве      11.2. Задания для самостоятельного выполнения 12. Алгоритмы обработки одномерных символьных массивов      12.1. Задания для самостоятельного выполнения 13. Алгоритмы обработки двумерных массивов      13.1. Задания для самостоятельного выполнения Заключение Приложение 1. Тестовый самоконтроль Приложение 2. Таблица соответствия алгоритмических и программных Словарь основных понятий и терминов Литература Ответы и решения Конец формы Основные средства представления алгоритмов Алгоритм моделирует решение задачи в виде точно определенной последовательности действий для некоторого исполнителя по преобразованию исходных данных в результирующие. Процесс составления алгоритмов называют алгоритмизацией. Алгоритм, реализующий решение задачи, можно представить различными способами: с помощью графического или текстового описания, в виде таблицы значений. Графический способ представления алгоритмов имеет ряд преимуществ благодаря визуальности и явному отображению процесса решения задачи. Алгоритмы, представленные графическими средствами, получили название визуальные алгоритмы. Текстовое описание алгоритма является достаточно компактным и может быть реализовано на абстрактном или реальном языке программирования в виде программы для ЭВМ. Таблицы значений представляют алгоритм неявно, как некоторое преобразование конкретных исходных данных в выходные. Табличный способ описания алгоритмов может быть с успехом применен для проверки правильности функционирования разработанного алгоритма на конкретных тестовых наборах входных данных, которые вместе с результатами выполнения алгоритма фиксируются в "таблицах трассировки". Таким образом, все три способа представления алгоритмов можно считать взаимодополняющими друг друга. На этапе проектирования алгоритмов наилучшим способом является графическое представление, на этапе проверки алгоритма - табличное описание, на этапе применения - текстовая запись в виде программы.
    Начало формы Введение 1. Анализ постановки задачи и ее предметной области 2. Формальное решение задачи 3. Основы алгоритмизации 4. Основные средства представления алгоритмов 5. Визуальные алгоритмы 6. Разветвленные алгоритмы      6.1. Задания для самостоятельного выполнения 7. Циклические алгоритмы      7.1. Задания для самостоятельного выполнения 8. Алгоритмы обработки последовательностей чисел      8.1. Задания для самостоятельного выполнения 9. Алгоритмы обработки одномерных числовых массивов      9.1. Задания для самостоятельного выполнения 10. Алгоритмы сортировки одномерных массивов      10.1. Сортировка модифицированным методом простого выбора      10.2. Сортировка методом парных перестановок      10.3. Задания для самостоятельного выполнения 11. Алгоритмы обработки упорядоченных массивов      11.1. Поиск элементов в упорядоченном массиве      11.2. Задания для самостоятельного выполнения 12. Алгоритмы обработки одномерных символьных массивов      12.1. Задания для самостоятельного выполнения 13. Алгоритмы обработки двумерных массивов      13.1. Задания для самостоятельного выполнения Заключение Приложение 1. Тестовый самоконтроль Приложение 2. Таблица соответствия алгоритмических и программных Словарь основных понятий и терминов Литература Ответы и решения Конец формы Визуальные алгоритмы При проектировании визуальных алгоритмов используют специальные графические элементы, называемые графически блоками, которые представлены на рис. 2. Результатом алгоритмизации решения задачи является блок-схема алгоритма, состоящая из некоторой последовательности таких графических блоков.
Блок начала алгоритма
Блок ввода или вывода
Блок действия
Блок условия, имеет 2 выхода
Блок окончания алгоритма