АлгоритмыАлгоритмы
Содержание Алгоритмы и исполнители oОсновные понятияОсновные понятия oСвойства алгоритмовСвойства алгоритмов oСпособы записи алгоритмовСпособы записи алгоритмов Конструирование алгоритмов oОсновные алгоритмические конструкцииОсновные алгоритмические конструкции oСоединение основных алгоритмических конструкцийСоединение основных алгоритмических конструкций oПростейшие примерыПростейшие примеры oЗадачи на соединение основных алгоритмических конструкцийЗадачи на соединение основных алгоритмических конструкций
Основные понятия Алгоритм: понятное и точное предписание исполнителю выполнить порядок действий, направленных на решение конкретной задачи или достижение поставленной цели Алгоритм состоит из законченных действий, называемых командами Команды выполняются одна за другой Исполнитель : живое существо или технический объект, выполняющий команды алгоритма
Основные понятия Исполнитель Формальный не вносит никаких изменений в алгоритм Не формальный Может вносить изменения в алгоритм
Основные понятия Основные характеристики исполнителя СКИ (система команд исполнителя): набор команд, которые исполнитель понимает и может выполнить Среда: условия, в которых исполнитель может выполнять команды Отказы: 1)«Не понимаю» - команда не входит в СКИ 2)«Не могу» - нарушение среды к содержанию
Свойства алгоритмов Дискретность – каждая команда должна быть выполнена прежде, чем исполнитель перейдет к выполнению следующей Понятность – каждая команда должна в ходить в СКИ Точность (определенность) – команда должна пониматься исполнителем однозначно Результативность – выполнение всех команд алгоритма должно привести к решению конкретной задачи за конечное число шагов Массовость – по одному и тому же алгоритму можно решать однотипные задачи к содержанию
Способы записи алгоритмов 1.Словесный – для записи используются специальные формальные языки с ограниченным набором слов и строгими правилами записи 2.Формульный 3.Словесно-формульный 4.Графический – в виде блок-схемы
Способы записи алгоритмов Блок-схема: Каждая команда записывается с использованием графических символов Условные обозначения: указывают порядок действий начало, конец алгоритма простое действие, вычисление задание исходных данных, вывод результата проверка условия к содержанию
Основные алгоритмические конструкции Следование (линейный тип алгоритма): Все команды алгоритма следуют последовательно друг за другом действие
Основные алгоритмические конструкции Ветвление (условный тип алгоритма): Выбор действия зависит от выполнения некоторого условия. Условие – выражение, которое может принимать значение либо истина, либо ложь. Ветвления бывают полные и неполные условие действие 1 действие 2 истиналожь условие действие истиналожь
Основные алгоритмические конструкции Повторение (циклический тип алгоритма) В алгоритме есть повторяющиеся действия. Циклы бывают с предусловием с постусловием (условие стоит перед (условие стоит после повторением действий) повторения действий) условие действие истина ложь условие действие истина ложь к содержанию
Соединение основных алгоритмических конструкций В основной алгоритмической конструкции каждое простое действие может быть заменено на любую алгоритмическую конструкцию. Таким образом получается соединение алгоритмических конструкций.
Пример 1: в линейной конструкции заменим одно простое действие полным ветвлением, а другое циклом. Получим последовательное соединение ветвления и цикла. Соединение основных алгоритмических конструкций
Пример 2: в неполном ветвлении заменим простое действие циклом. Получим цикл в ветвлении.
Пример 3: в цикле заменим простое действие циклом. Получим цикл в цикле. к содержанию
Простейшие примеры Задача 1: приготовить яичницу. положить на сковороду масло начало взять сковороду включить газ поставить сковороду на газ взять яйцо разбить яйцо на сковороду посолить жарить 5 минут конец Это линейный тип алгоритма (следование)
Простейшие примеры Задача 2: покупка билетов в кино. начало подойти к кассе билеты есть назвать сеанс подать деньги взять билет и сдачу конец данет Это условный тип алгоритма (ветвление) Это линейный тип алгоритма (следование) Получилось сочетание условного и линейного типов алгоритмов
Простейшие примеры Задача 3: забить гвоздь. начало взять гвоздь взять молоток установить острие гвоздя в нужное место ударить молотком по шляпке гвоздя гвоздь торчит конец да нет Это линейный тип алгоритма (следование) Это циклический тип алгоритма (повторение) Получилось сочетание линейного и циклического типов алгоритмов
Простейшие примеры Задача 4: собрать гербарий. начало пойди в лес или парк собери листья принеси домой возьми один лист тщательно осмотри его лист хороший выбросизасуши его остались листья конец да нет Это линейный тип алгоритма (следование) Это условный тип алгоритма (ветвление) Это циклический тип алгоритма (повторение) Получилось сочетание линейного алгоритма и условия в цикле к содержанию
Задача на соединение основных алгоритмических конструкций Алгоритм решения некоторых задач может содержать все типы алгоритмов и в самых различных сочетаниях. Задача 5: сварить картофельный суп. Алгоритм решения этой задачи может выглядеть так:
начало взять кастрюлю налить воды суп мясной взять мясо промыть положить в кастрюлю поставить кастрюлю на газ взять картошку почистить, порезать положить в кастрюлю посолить, попробовать соли мало пересолено добавить воды и картошки взять бульонный кубик варить до готовности конец данет да нет да к содержанию
Определите значение переменной c после выполнения фрагмента алгоритма:
Типовые алгоритмы Вычисление выражений, решение системы уравнений Определение принадлежности точки заштрихованной области Цифры натурального числа Делители натурального числа
Вычислить значение выражения для заданных входных параметров a, b и с
Решить систему уравнений
Дана последовательность 10-ти целых чисел. Найти максимальное число. Дана последовательность 20-ти целых чисел. Найти максимальное отрицательное число. Дана последовательность 30-ти целых чисел. Найти первое нулевое число.
Натуральные числа Найти сумму цифр натурального числа. Вывести все делители натурального числа, отличные от 1 и самого числа. Найти наименьший делитель целого числа Разложить целое число на множители