Алгоритмизация.ppt
- Количество слайдов: 34
ОСНОВЫ АЛГОРИТМИЗАЦИИ Подготовлен Цыбиковой Т. С. Кафедра ВТИ БГУ
Алгоритм – это последовательность действий, которые должен выполнить исполнитель для достижения конкретной цели. • Алгоритм содержит несколько шагов. • Шаг – отдельное законченное действие. 2/18/2018 2
• Исполнитель - это объект, умеющий выполнять определенный набор действий. (человек, животное, робот, компьютер). • Система команд исполнителя (СКИ) – это все команды, которые исполнитель умеет выполнять. • Среда исполнителя – обстановка, в которой функционирует исполнитель. 2/18/2018 3
Свойства алгоритма • Дискретность (прерывность, раздельность) – разбиение алгоритма на шаги; • Понятность – каждый шаг алгоритма должен быть понятен исполнителю; • Точность - указание последовательности шагов; • Результативность - получение результата за конечное число шагов; • Массовость – использование алгоритма для решения однотипных задач. 2/18/2018 4
Задание Назови исполнителей следующих видов работ: • уборка мусора во дворе; • обучение детей в школе; • вождение автомобиля; • ответ у доски; • приготовление пищи; • печатание документа на принтере. Сформулируй СКИ для каждого из этих исполнителей, назови среду каждого исполнителя. 2/18/2018 5
Способы описания алгоритма: • Словесный (письменно или устно); • Графический (стрелками, рисунками, блок – схемами); • Программный (алгоритмический язык). 2/18/2018 6
Графический способ Блок начало/конец Блок ввод/вывод Блок действия Блок условия 2/18/2018 7
Виды алгоритмов: • Линейный – содержит несколько шагов и все шаги выполняются последовательно друг за другом; • Разветвляющийся – порядок выполнения шагов изменяется в зависимости от некоторых условий; • Циклический – определенная последовательность шагов повторяется несколько раз в зависимости от заданной величины (параметра цикла). 2/18/2018 8
Найдите произведение произвольных чисел А и В. начало ввод А ввод В Р=А*В вывод Р конец 2/18/2018 9
ЭТАПЫ РЕШЕНИЯ ЗАДАЧ НА ЭВМ
1 этап. Постановка задачи • сбоp инфоpмации о задаче; • фоpмулиpовка условия задачи; • опpеделение конечных целей pешения задачи; • определение формы выдачи результатов; • описание данных (их типов, диапазонов величин, структуры и т. п. ). 2/18/2018 11
2 этап. Анализ и исследование задачи, модели • анализ существующих аналогов; • анализ технических и программных средств; • pазpаботка математической модели; • разработка структур данных. 2/18/2018 12
3 этап. Разработка алгоритма • выбор метода проектирования алгоритма; • выбор формы записи алгоритма (блоксхемы, псевдокод и др. ); • выбоp тестов и метода тестиpования; • проектирование алгоритма 2/18/2018 13
4 этап. Пpогpаммиpование • выбор языка программирования; • уточнение способов организации данных; • запись алгоpитма на выбpанном языке пpогpаммиpования 2/18/2018 14
5 этап. Тестиpование и отладка • синтаксическая отладка; • отладка семантики и логической стpуктуpы; • тестовые pасчеты и анализ pезультатов тестиpования; • совершенствование пpогpаммы 2/18/2018 15
6 этап. Получение и анализ результатов • Анализ результатов решения задачи и уточнение в случае необходимости математической модели с повторным выполнением этапов 2 — 5 2/18/2018 16
7 этап. Сопровождение программы • доработка программы для решения конкретных задач; • составление документации к решенной задаче, к математической модели, к алгоритму, к программе, к набору тестов, к использованию 2/18/2018 17
Типы алгоритмов
Линейный алгоритм - это такой алгоритм, в котором все операции выполняются последовательно одна за другой. 2/18/2018 19
ПРИМЕР 1. Зная длины трех сторон треугольника, вычислить площадь и периметр треугольника. Входные данные: a, b, c. Выходные данные: S, P. где r - полупериметр. 2/18/2018 20
Ветвление Алгоритмы разветвленной структуры применяются, когда в зависимости от некоторого условия необходимо выполнить либо одно, либо другое действие. 2/18/2018 21
2/18/2018 Блок-схемы 22
ПРИМЕР 2. Вычислить корни квадратного уравнения . Входные данные: a, b, c. Выходные данные: x 1, x 2. 2/18/2018 23
Циклический алгоритм • Циклом называют повторение одних и тех же действий (шагов). Последовательность действий, которые повторяются в цикле, называют телом цикла. Существует несколько типов алгоритмов циклической структуры. 2/18/2018 24
Алгоритм циклической структуры с предусловием Пока <условие> повторять <тело цикла> 2/18/2018 25
Алгоритм циклической структуры с постусловием Выполнять <тело цикла> до тех пор <условие> 2/18/2018 26
Алгоритм циклической структуры без условия i - параметр 2/18/2018 27
Замечание При написании условных циклических алгоритмов следует помнить следующее. Во-первых, чтобы цикл имел шанс когда-нибудь закончиться, содержимое его тела должно обязательно влиять на условие цикла. Во-вторых, условие должно состоять из корректных выражений и значений, определенных еще до первого выполнения тела цикла. 2/18/2018 28
Решение задач 1. Выделить цикл, т. е. определить повторяющиеся действия. 2. Определить, какие параметры и как изменяются при следующем повторении. 3. Определить условие, при котором процесс заканчивается. 4. Определить начальные условия параметров, изменяющихся в п. 1 -2. 2/18/2018 29
ПРИМЕР 3. Найти наибольший общий делитель (НОД) двух натуральных чисел А и В. Входные данные: А и В. Выходные данные: А - НОД. Для решения поставленной задачи воспользуемся алгоритмом Евклида: будем уменьшать каждый раз большее из чисел на величину меньшего до тех пор, пока оба значения не станут равными. 2/18/2018 30
ПРИМЕР 4. Вычислить факториал числа N (N!=1 2 3 … N). Входные данные: N- целое число, факториал которого необходимо вычислить. Выходные данные: factorial- значение факториала числа N, произведение чисел от 1 до N, целое число. Промежуточные данные: i- целочисленная переменная, принимающая значения от 2 до N с шагом 1, параметр цикла. 2/18/2018 31
2/18/2018 32
ПРИМЕР 5. Вычислить сумму натуральных четных чисел, не превышающих N. Входные данные: N - целое число. Выходные данные: S - сумма четных чисел. Промежуточные данные: i - переменная, принимающая значения от 2 до N с шагом 2, следовательно, также имеет целочисленное значение. 2/18/2018 33
2/18/2018 34
Алгоритмизация.ppt