Понятие алгоритма. Алгоритмы в жизни человека

Содержание

Слайд 2

Понятие алгоритма (продолжение) Любой алгоритм предназначен для определенного исполнителя (человека, робота,

Понятие алгоритма (продолжение)

Любой алгоритм предназначен для определенного исполнителя (человека, робота, компьютера,

языка программирования и т.д.).

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

Исполнитель алгоритма – человек или устройство (в частности, процессор компьютера), умеющий выполнять определённый набор действий. Исполнитель является средством реализации алгоритма.

Слайд 3

Алгоритмы в жизни человека Распорядок дня Рецепты План работы Инструкции по

Алгоритмы в жизни человека

Распорядок дня
Рецепты
План работы
Инструкции по использованию

Любую деятельность человека можно

описать с помощью алгоритмов
Слайд 4

Алгоритмы в жизни человека Вопрос: Как заставить человека решать или выполнять

Алгоритмы в жизни человека

Вопрос: Как заставить человека решать или выполнять какую

либо задачу какую-либо задачу, если человек не знает как?
Ответ: Научить!
Выбрать способ решения задачи
Рассказать как реализовать способ. Понятно и доступно!
Человек (исполнитель) решает задачу строго в соответствии с выбранным методом.
Слайд 5

Алгоритм и компьютер Вопрос: Как заставить компьютер решать или выполнять какую

Алгоритм и компьютер
Вопрос: Как заставить компьютер решать или выполнять какую либо

задачу какую-либо задачу ?
Ответ: Научить!
выбирают способ (метод, порядок) решения задачи и изучают его во всех подробностях;
описывают исполнителю (компьютеру) выбранный метод в абсолютно понятном для него виде;
исполнитель решает задачу строго в соответствии с выбранным методом.
Слайд 6

Выбор способа решения задачи Способ решения задачи должен быть известен (из

Выбор способа решения задачи

Способ решения задачи должен быть известен (из практики,

здравого смысла, из литературы)
Главная трудность: из нескольких методов выбрать такой, который в наибольшей степени отвечал бы некоторым требованиям, например, минимальная трудоемкость, максимальная эффективность и т.д
Слайд 7

Описание выбранного метода выделить величины, являющиеся исходными для задачи; разбить процесс

Описание выбранного метода

выделить величины, являющиеся исходными для задачи;
разбить процесс решения задачи

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

Алгоритм должен удовлетворять определенным требованиям. Принято выделять следующие семь: Наличие ввода

Алгоритм должен удовлетворять определенным требованиям. Принято выделять следующие семь:
Наличие ввода исходных

данных.
Наличие вывода результата выполнения.
Однозначность (компьютер «понимает» только однозначные инструкции).
Общность – алгоритм предназначен для решения некоторого класса задач.
Корректность – алгоритм должен давать правильное решение задачи.
Конечность – решение задачи должно быть получено за конечное число шагов.
Эффективность – для решения задачи должны использоваться ограниченные ресурсы компьютера (процессорное время, объем оперативной памяти и т.д.).
Слайд 9

При разработке алгоритма используют следующие основные принципы. Принцип поэтапной детализации алгоритма

При разработке алгоритма используют следующие основные принципы.
Принцип поэтапной детализации алгоритма

(другое название — "проектирование сверху-вниз"). Этот принцип предполагает первоначальную разработку алгоритма в виде укрупненных блоков (разбиение задачи на подзадачи) и их постепенную детализацию.
Принцип "от главного к второстепенному", предполагающий составление алгоритма, начиная с главной конструкции. При этом, часто, приходится "достраивать" алгоритм в обратную сторону, например, от середины к началу.
Принцип структурирования, т.е. использования только типовых алгоритмических структур при построении алгоритма. Нетиповой структурой считается, например, циклическая конструкция, содержащая в теле цикла дополнительные выходы из цикла. В программировании нетиповые структуры появляются в результате злоупотребления командой безусловного перехода (GoTo). При этом программа хуже читается и труднее отлаживается.
Слайд 10

Свойства алгоритма Дискретность (разрывность) — каждый алгоритм состоит из отдельных законченных

Свойства алгоритма

Дискретность (разрывность) — каждый алгоритм
состоит из отдельных законченных действий

и соответственно алгоритм представляет последовательность указаний, команд, определяющих порядок выполнения шагов процесса.
Массовость - применимость алгоритма ко всем задачам рассматриваемого типа, при любых исходных данных.
Определенность (детерминированность, точность)- каждый шаг алгоритма должен быть строго определен и не допускать различных толкований. Описание алгоритма должно быть таким, чтобы его мог выполнить любой грамотный пользователь.
Слайд 11

Свойства алгоритма (продолжение) Результативность – любой алгоритм должен завершаться за конечное

Свойства алгоритма (продолжение)

Результативность – любой алгоритм должен завершаться за конечное (может

быть очень большое) число шагов.
Формальность – любой исполнитель, способный воспринимать и выполнять инструкции алгоритма, действует формально, т.е. отвлекается от содержания поставленной задачи и лишь строго выполняет инструкции.
Слайд 12

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

Способы описания алгоритмов

Словесное описание представляет структуру алгоритма на естественном языке. Никаких

правил составления словесного описания не существует.
Псевдокод - описание структуры алгоритма на естественном, частично формализованном языке, позволяющее выявить основные этапы решения задачи, перед точной его записью на языке программирования.
Слайд 13

Пример. Найти корни уравнения Ax2 + Bx + C = 0

Пример. Найти корни уравнения Ax2 + Bx + C = 0
Ввести

величины A, B, C.
Вычислить дискриминант по формуле D = B2 - 4 A C.
Если D < 0, то действительных корней нет.
Если D > 0, то идти к п. 5.
Вывести значения X1 и X2.
Закончить.
Слайд 14

Способы описания алгоритмов (продолжение) Блок-схема - описание структуры алгоритма с помощью

Способы описания алгоритмов (продолжение)

Блок-схема - описание структуры алгоритма
с помощью геометрических фигур

с линиями-связями, показывающими порядок выполнения отдельных инструкций.
Программа — описание структуры алгоритма на алгоритмическом языке программирования.
Слайд 15

Способы описания алгоритмов (продолжение) Алгоритм, предназначенный для исполнения на компьютере, должен

Способы описания алгоритмов (продолжение)

Алгоритм, предназначенный для исполнения на компьютере, должен быть записан

на «понятном» ему языке.
Такой формализованный язык называют языком программирования.
Слайд 16

Основные конструкции блок-схем Конец Начало/конец алгоритма (для подпрограмм – вызов/возврат) Процесс,

Основные конструкции блок-схем

Конец

Начало/конец алгоритма (для подпрограмм – вызов/возврат)
Процесс, предназначенный для описания

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

Начало

Слайд 17

Основные конструкции блок-схем (продолжение) Вывод на печатающее устройство Решение (проверка условный

Основные конструкции блок-схем (продолжение)

Вывод на печатающее устройство

Решение (проверка
условный блок)

условия или

Нет

Да

Блок, описывающий цикл с параметром
Границы цикла, описывает

<Тело цикла>

циклические процессы

типа: «цикл с предусловием», «цикл с постусловием»

<Тело цикла>

Соединительные блоки

А

А

Слайд 18

Правила выполнения схем алгоритмов и программ устанавливает ГОСТ 19.701-90 ЕСПД. Единая

Правила выполнения схем алгоритмов и программ устанавливает ГОСТ 19.701-90 ЕСПД.
Единая система

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

Правила выполнения символов Контуры символов и их размеры должны соответствовать ГОСТ

Правила выполнения символов
Контуры символов и их размеры должны соответствовать ГОСТ 19.701-90.
Символы должны

быть одного размера.
Символы в схеме должны быть расположены равномерно. Следует придерживаться разумной длины соединений и минимального числа длинных линий.
Минимальное количество текста, необходимого для понимания функции данного символа, следует помещать внутри символа. Текст должен быть записан слева направо и сверху вниз.
Для текста следует использовать чертежный шрифт по ГОСТ 2.304-81 с высотой букв не менее 2,5 мм.
Сокращение слов в записях не допускается, за исключением установленных государственными стандартами.
Слайд 20

Если объем текста, помещенного внутри символа, превышает его размеры, следует использовать

Если объем текста, помещенного внутри символа, превышает его размеры, следует

использовать символ «комментарий». Комментарий помещается на свободном поле схемы алгоритма, по возможности вблизи поясняемого символа, и соединяется с ним штриховой линией.
Слайд 21

Правила выполнения линий Линии показывают потоки данных или управление. Направление потока

Правила выполнения линий
Линии показывают потоки данных или управление.
Направление потока слева направо

и сверху вниз считается стандартным. Если поток имеет направление, отличное от стандартного, то применяется указатель направления потока-стрелка по ГОСТ 2.307-68.
Линии в схемах должны подходить к символу либо слева, либо сверху, а исходить либо справа, либо снизу. Линии должны быть направлены к центру символа.
Толщина линий для вычерчивания символов и связей между ними должна быть одинаковой. Рекомендуется использовать толщину от 0,6 до 0,8 мм.
В схемах предусмотрено использование двух типов линий — сплошной тонкой для вычерчивания символов и потоков, и штриховой — для изображения связей символа с комментарием или выделения группы символов.
В схемах следует избегать пересечений линий. В исключительных случаях допускается изображение пересекающихся линий .
Если две и более линий объединяются в одну, то место их объединения должно быть смещено.
Слайд 22

Правила выполнения соединений Разрывы линий в схемах возникают при большой насыщенности

Правила выполнения соединений
Разрывы линий в схемах возникают при большой насыщенности символами,

при длинных линиях потоков или размещении схемы на нескольких страницах. В этих случаях следует применить специальный символ «соединитель» .
Если схема размещается на нескольких страницах, то следует применять соединитель с комментарием или «межстраничный соединитель».
Слайд 23

Пример выполнения схемы алгоритма на нескольких страницах (страница 1)

Пример выполнения схемы алгоритма на нескольких страницах (страница 1)

Слайд 24

Пример выполнения схемы алгоритма на нескольких страницах (страница 2)

Пример выполнения схемы алгоритма на нескольких страницах (страница 2)

Слайд 25

Основные алгоритмические конструкции. Линейная алгоритмическая конструкция Линейной называют алгоритмическую конструкцию, реализованную

Основные алгоритмические конструкции. Линейная алгоритмическая конструкция

Линейной называют алгоритмическую конструкцию, реализованную в виде

последовательности действий (шагов), в которой каждое действие (шаг) алгоритма выполняется ровно один раз, причем после каждого i- го действия (шага) выполняется (i+1)-e действие (шаг), если i-е действие - не конец алгоритма.

Пример.
Опишем алгоритм сложения двух чисел на псевдокоде и в виде блок-схемы.
Псевдокод:
1. Ввод двух чисел A, B.
2. Вычисляем сумму S = A + B.
Вывод S.
Конец.

Начало

Ввод A, B

S=A+B

S

Конец

Слайд 26

Разветвляющаяся алгоритмическая конструкция Условие Да Нет Разветвляющейся (или ветвящейся) называется алгоритмическая

Разветвляющаяся алгоритмическая конструкция

Условие

Да

Нет

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

альтернативами в зависимости от значения входных данных.

Полное ветвление

Условие

Действия

Истина (Да)

Ложь (Нет)

Неполное ветвление

Слайд 27

Команда «Выбор» V1 (Z) V2 (Z) V3 (Z) Действие 2 Действие

Команда «Выбор»

V1 (Z)

V2 (Z)

V3 (Z)

Действие 2

Действие 1

Действие 3

Действие 4

Да

Нет

Да

Нет

Да

Нет

Слайд 28

Алгоритмическая конструкция «Цикл» Циклической (или циклом) называют алгоритмическую конструкцию, в которой

Алгоритмическая конструкция «Цикл»

Циклической (или циклом) называют алгоритмическую конструкцию, в которой некая, идущая

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

Алгоритмическая конструкция «Цикл» Арифметический цикл(цикл с параметром, цикл с известным числом

Алгоритмическая конструкция «Цикл»

Арифметический цикл(цикл с параметром, цикл с известным числом повторений)
В арифметическом

цикле число его шагов (повторений) однозначно определяется правилом изменения параметра.
Оно задается с помощью начального (N) и конечного (К) значений параметра и шагом (h) его изменения.
Слайд 30

Алгоритмическая конструкция «Цикл» Цикл с предусловием. Сначала проверяется значение условного выражения

Алгоритмическая конструкция «Цикл»

Цикл с предусловием.
Сначала проверяется значение условного выражения (условие) перед
выполнением очередного

шага цикла.
Если значение условного выражения истинно, исполняется тело цикла.
После чего управление вновь передается проверке условия и т.д.
Эти действия повторяются до тех пор, пока условное выражение не примет значение ЛОЖЬ.
При первом же несоблюдении условия цикл завершается.

Схема алгоритма, соответствующая инструкции while

Логика алгоритма, соответствующая инструкции while

Слайд 31

Алгоритмическая конструкция «Цикл» Цикл с постусловием. Заранее не определено число повторений

Алгоритмическая конструкция «Цикл»
Цикл с постусловием.

Заранее не определено число повторений тела цикла,

оно зависит от входных данных задачи.
Тело цикла всегда будет выполнено хотя бы один раз,
после чего проверяется условие.
Тело цикла будет выполняться до тех пор, пока значение условного выражения ложно. Как только оно становится истинным, выполнение команды прекращается.

Логика алгоритма, соответствующая инструкции repeat

Схема алгоритма, соответствующая инструкции repeat

Слайд 32

Стандартные циклические алгоритмы Правило суммирования Начальное значение суммы S=0 В теле

Стандартные циклические алгоритмы
Правило суммирования

Начальное значение суммы S=0
В теле некоторой циклической

конструкции выполнить команду: S = S + <слагаемое>
Слайд 33

Правило умножения Начальное значение произведения P = 1 В теле некоторой

Правило умножения

Начальное значение произведения
P = 1
В теле некоторой циклической конструкции выполнить

команду:
P = P * <множитель>
Слайд 34

Правило счетчика Начальное значение счетчика K=0 В теле некоторой циклической конструкции выполнить команду: K=K+1

Правило счетчика

Начальное значение счетчика K=0
В теле некоторой циклической конструкции выполнить команду:

K=K+1
Слайд 35

Расположение циклов последовательные вложенные запрещенные

Расположение циклов

последовательные

вложенные

запрещенные