Скачать презентацию Список литературы 1 Т А Павловская С С Программирование Скачать презентацию Список литературы 1 Т А Павловская С С Программирование

Алгоритм_и_его_свойства.ppt

  • Количество слайдов: 37

Список литературы 1) Т. А. Павловская С/С++. Программирование на языке высокого уровня. Учебник для Список литературы 1) Т. А. Павловская С/С++. Программирование на языке высокого уровня. Учебник для ВУЗов 2) Л. Ф. Лебеденко, О. И. Моренкова. Основы программирования С++. Учебное пособие

Основы алгоритмизации Лекция 3 Основы алгоритмизации Лекция 3

Этапы решения задачи на ПК Этапы решения задачи на ПК

Алгоритм и его свойства Алгоритм и его свойства

Алгоритм – это конечное упорядоченное множество правил, однозначно определяющих последовательность действий для решения задачи Алгоритм – это конечное упорядоченное множество правил, однозначно определяющих последовательность действий для решения задачи

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

Свойства алгоритмов l Дискретность состоит в том, что процесс решения задачи по алгоритму может Свойства алгоритмов l Дискретность состоит в том, что процесс решения задачи по алгоритму может быть разбит на отдельные действия связанные между собой. (Этот процесс можно свести к последовательности элементарных операций, как бы не был сложен алгоритм)

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

Свойства алгоритмов l Детерминированность состоит в том, что применение алгоритма к одним и тем Свойства алгоритмов l Детерминированность состоит в том, что применение алгоритма к одним и тем же исходных данных должно приводить к одним и тем же выходным данным.

Свойства алгоритмов l Массовость проявляется в том, что алгоритм применим к различным наборам исходных Свойства алгоритмов l Массовость проявляется в том, что алгоритм применим к различным наборам исходных данных, а не к одному какому-нибудь варианту.

Способы представления алгоритмов l Словесный (тривиальный) способ – запись алгоритма на естественном языке l Способы представления алгоритмов l Словесный (тривиальный) способ – запись алгоритма на естественном языке l Графический способ – запись алгоритма в виде схемы, состоящей из геометрических фигур, называемых блоками, и соединительных линий. Такие схемы часто называют блок-схемами. l Программный способ – запись алгоритма на каком-либо языке программирования.

Тривиальный способ l l l 1) Задать три значения а, b, c. Перейти к Тривиальный способ l l l 1) Задать три значения а, b, c. Перейти к пункту 2. 2) Вычислить значение детерминанта D. Если D меньше 0 , то перейти к пункту 6, иначе перейти к пункту 3. 3) Вычислить значение первого корня. Перейти к пункту 4. 4) Вычислить значение второго корня. Перейти к пункту 5. 5) Вывести значения корней. 6) стоп

Блоки, используемые при составлении блок-схем - Элементарное действие - Условие Блоки, используемые при составлении блок-схем - Элементарное действие - Условие

Блоки, используемые при составлении блок-схем - Цикл - Ввод-вывод - Начало, конец алгоритма Блоки, используемые при составлении блок-схем - Цикл - Ввод-вывод - Начало, конец алгоритма

СТРУКТУРНОЕ ПРОГРАММИРОВАНИЕ l уменьшение трудностей при тестировании; l повышение производительности труда программистов; l улучшение СТРУКТУРНОЕ ПРОГРАММИРОВАНИЕ l уменьшение трудностей при тестировании; l повышение производительности труда программистов; l улучшение читабельности и ясности программ.

СТРУКТУРНОЕ ПРОГРАММИРОВАНИЕ l Логическая структура любой программы может быть выражена комбинацией трех базовых структур: СТРУКТУРНОЕ ПРОГРАММИРОВАНИЕ l Логическая структура любой программы может быть выражена комбинацией трех базовых структур: следование, развилка и цикл. l Избегать не оправдано сложных арифметических выражений l Использовать комментарии для документирования программ. l Не использовать оператор GO TO

Базовые структуры l Алгоритм любой сложности можно реализовать с помощью 3 базовых структур: следование, Базовые структуры l Алгоритм любой сложности можно реализовать с помощью 3 базовых структур: следование, разветвление и цикл. l Все базовые структуры имеют один вход и один выход

Следование l Вх Действие А Действие В l Вых Следование l Вх Действие А Действие В l Вых

Разветвление Вх Условие Действие А Действие В Вых Разветвление Вх Условие Действие А Действие В Вых

Разветвление (если- то- иначе) l Эта структура обеспечивает проверку заданного в задаче логического условия. Разветвление (если- то- иначе) l Эта структура обеспечивает проверку заданного в задаче логического условия. l В зависимости от результатов проверки условия (истинно условие или ложно) выбор одного из альтернативных путей дальнейшей работы алгоритма. l Каждый из путей ведет к общему выходу.

Цикл в предусловием Вх Условие Да Тело цикла Вых Цикл в предусловием Вх Условие Да Тело цикла Вых

Базовый элемент «Цикл» Алгоритм, содержащий в себе «цикл» , включает в себя многократно повторяющуюся Базовый элемент «Цикл» Алгоритм, содержащий в себе «цикл» , включает в себя многократно повторяющуюся группу действий с различными значениями данных. l Один из изменяющихся в цикле членов выбирается в качестве параметра цикла Для организации цикла необходимо: 1) задать начальное значение параметра цикла. 2) Задать правило изменения параметра цикла 3) Задать условие окончания цикла. l

Цикл с постусловием Вх Тело цикла Условие Вых Да Цикл с постусловием Вх Тело цикла Условие Вых Да

Задача определения квадранта по координатам (Х, У) точки. Задача определения квадранта по координатам (Х, У) точки.

Типовые алгоритмы l Алгоритмы нахождения суммы и количества l Алгоритмы нахождения наибольшего (наименьшего) l Типовые алгоритмы l Алгоритмы нахождения суммы и количества l Алгоритмы нахождения наибольшего (наименьшего) l Алгоритмы сортировки l Алгоритмы поиска

Алгоритм нахождения суммы l Для нахождения суммы рекомендуется организовать цикл, в котором выбирается очередное Алгоритм нахождения суммы l Для нахождения суммы рекомендуется организовать цикл, в котором выбирается очередное значение и добавляется к сумме предыдущих значений l Si=Si-1+Xi

Алгоритмы нахождения наибольшего (наименьшего) l Для нахождения наибольшего значения организуется цикл, в котором на Алгоритмы нахождения наибольшего (наименьшего) l Для нахождения наибольшего значения организуется цикл, в котором на каждом шаге текущее значение сравнивается с наибольшим из всех предыдущих. Если текущее значение больше, чем наибольшим из всех предыдущих, оно принимается за максимальное

Алгоритмы нахождения наибольшего (наименьшего) Алгоритмы нахождения наибольшего (наименьшего)

Сортировка массивов l Под сортировкой обычно понимают процесс перестановки объектов данного множества в определенном Сортировка массивов l Под сортировкой обычно понимают процесс перестановки объектов данного множества в определенном порядке. Цель ее – облегчить последующий поиск элементов l сортировка включением l сортировка выбором l сортировка обменом

Сортировка простым выбором Сортировка простым выбором

Метод пузырька Метод пузырька

Метод простого включения Метод простого включения

Алгоритмы поиска l Дан аргумент поиска К. Задача поиска состоит в отыскании записи, имеющей Алгоритмы поиска l Дан аргумент поиска К. Задача поиска состоит в отыскании записи, имеющей К своим ключом. Существует две возможности окончания поиска: либо поиск оказался удачным, т. е. позволил определить местонахождение записи, содержащей ключ К, либо он оказался неудачным, т. е. показал, что ни одна из записей не содержит ключ К.

Последовательный поиск Последовательный поиск

Бинарный поиск l Сначала ключ поиска К сравнивается с элементом, расположенным в середине массива. Бинарный поиск l Сначала ключ поиска К сравнивается с элементом, расположенным в середине массива. Результат сравнения позволяет определить, в какой половине массива следует продолжать поиск. Этот процесс продолжается до тех пор, пока не будет найден требуемый ключ или не станет пустым интервал, в котором осуществляется поиск.