Инфрматика_л2.ppt
- Количество слайдов: 21
Лекция 2 Алгоритмы. Определение и способы записи алгоритмов 2014/2015 учебный год Автор Бабалова И. Ф. , доцент кафедры 12 1
Последовательность движения программы в компьютере Текст программы Компилятор + ПО ЭВМ ПО – ПРОГРАММЫ, НЕОБХОДИМЫЕ ДЛЯ ВЫПОЛНЕНИЯ ЛЮБОЙ ДРУГОЙ ПРОГРАММЫ Входные данные Компилятор – программа, которая обеспечивает перевод языкового представления программы пользователя в понятный компьютеру формат записи Машинный код программы Выполнение программы Результат 2
Операционные системы ОС – совокупность программ, обеспечивающих организацию вычислительного процесса Действия ОС MS-DOS, Windows, Unix, Solaris, Linux 1. Диалог пользователя с компьютером 2. Управление работой компьютера 3. Запуск прикладных программ (компиляторов, интерпретаторов и других) Android — операционная система для коммуникаторов, планшетных компьютеров, цифровых проигрывателей, нетбуков и смартбуков, основанная на ядре Linux. Android позволяет создавать Java- приложения, управляющие устройством через разработанные Google- библиотеки. Android Native Development Kit создаёт приложения, написанные на Си и других языках 3 программирования.
Определение программы • Программа – это записанная на языке, понятном компьютеру, последовательность действий для получения конкретного результата • Алгоритм + структура данных (Определение ) 4
Определение алгоритма • Алгоритм – это конечное множество правил, определяющее процесс переработки одной, входной системы данных, в другую, выходную, систему данных. Аналогичные термины: процесс, рецепт, метод, способ Алгоритм должен подчиняться строго сформулированным свойствам 5
Свойства алгоритма 1. Переход от одной ( входной) системы данных к другой (выходной) осуществляется за конечное число шагов – конечность алгоритма. 2. Процесс решения задачи обеспечивается отдельными операциями, следующими друг за другом – дискретность алгоритма. 3. Каждое правило по своей входной системе данных однозначно определяет выходную систему данных, независимо от времени и средств, использованных для решения задачи - однозначность алгоритма. 4. Исходная система данных для алгоритма выбирается из некоторого потенциально бесконечного множества 6 данных - массовость алгоритма.
Универсальность алгоритма! Свойство массовости алгоритма ни в коем случае не подразумевает, что можно разработать один алгоритм для решения всех задач. Алгоритм для решения конкретной задачи должен быть применим к любой совокупности данных, - вот в чем его массовость. Понятие универсального алгоритма - это утопия. Алгоритм разрабатывается для решения определенной задачи и подзадачи некоторого класса задач. Чтобы не хотелось разработать универсальный алгоритм, в теории алгоритмов сформулирован постулат: Универсальный алгоритм не существует. 7
Алгоритмы как технология Алгоритмы должны быть эффективными. Решение конкретной задачи должно выполняться за наименьшее время и требовать наименьший объем компьютерной памяти Решение каждой конкретной задачи разбивается на последовательность простых действий - этапов, понятных компилятору. Каждый этап должен давать конкретный результат. Из множества этапов должно быть получено решение задачи любой сложности. Это процесс в технологии алгоритмизации называется 8 декомпозицией алгоритма
Алгоритмическая система • Определение алгоритма для решения конкретной задачи • Декомпозиция решения задачи • Определение типов данных • Описание действий алгоритма в форме, удобной для проверки человеком и понятной компьютеру Стандарты для создания программ 9
Этапы разработки программ Формулировка метода решения задачи и описание данных для ее решения Написание кода программы в соответствии с технологией программирования 10
Изображение алгоритма Для наглядного представления алгоритмов принята система геометрических фигур, каждая из которых относится к определенным алгоритмическим правилам: Основные фигуры: Действие a b=1. 5 a b 1. Действие (процесс) ? 2. Условие A: =20; X: =Y; X>Y (X >=1) and (X<=2) 11
3. Цикл. Не имеет одной геометрической фигуры для изображения 4. Предопределённый процесс. Это ранее описанные подпрограммы и функции 5. Документ Блок в алгоритме, где надо печатать или визуально представлять описание решения задачи 12
6. Соединитель ( коннектор) C 3 Точка объединения частей алгоритма 7. Межстраничный соединитель B 4 p 2 A 3 p 1 Внутри – номер страницы и координаты блока на этой странице 8. Пуск – останов Begin/End Фигура, обозначающая вход в алгоритм или его завершение 13
9. Комментарий текст 10. Ввод / Вывод Список Ввода/ Вывода данных Соединение фигур в изображении алгоритмов обеспечивается только вертикальными и горизонтальными линиями соединения. Допускаются линии соединения ломаные, но с прямым углом. Все линии соединения указывают на путь решения задачи, то есть направление движения по алгоритму. Поэтому следует избегать изображения длинных линий соединения, пересекающихся линий и линий с произвольным углом наклона. 14
Правила соединения частей алгоритма • Все блоки имеют координаты. Горизонталь буква латинского алфавита, вертикаль – цифра. • Линии только горизонтальные и вертикальные • Точки соединения обозначаются координатами блоков 1 A B 1 2 B B 2 куда идем откуда приходим G 8 B 5 15
Соответствие между геометрическими фигурами алгоритмов и конструкциями языка программирования. Реализация на Паскале. Название. Начало алгоритма/ Конец алгоритма X: =abc; Следование Изображение Название алгоритма S Это любое действие , изменяющее значение переменной S – это оператор S 16
Реализация на Паскале. Название. Изображение. if P then S 1 else S 2; Развилка (полная) true Условие определяет направление движения по алгоритму False <условие> S 1 if P then S; Развилка( неполная) S 2 False true <условие> S 17
Реализация на Паскале. Название Изображение Выбор Case k of k 1: S 1; K Не найдено Значение K k 2: S 2; k 1 ……. k. N: SN; S 1 k 2 S 2 …. k. N SN SX Else SX; End; Это расширение выбора направления решения при множестве значений выбора 18
Реализация на Паскале Название Изображение. Циклы Цикл «Пока» : While P do S – Исполняется одно действие While P do Begin S 1; Работают в цикле S 2 ; любое число операторов End; true P S Цикл « До» Составной оператор Repeat S; Любое число операторов False Until P; в этом цикле S True P 19
Реализация на Паскале. Название. Изображение Цикл с параметром For i: =1 to n do S; Шаг действий равен +1 For i: =n downto 1 do s; Шаг действий равен -1 Выход из цикла i=1 до n { Шаг 1} Цикл S Этот оператор является дополнением оператора While при известном количестве повторений цикла 20
Задача. Определить количество цифр в записи целого числа 1 A 3 Пример. Вводим число 197302. количество B Ввод x C K: =1 D E 2 Представление числа в позиционной системе счисления x: =1*105+9*104+7*103+3*102+0*101+2*100 x: =x div 10 False x=0 197302 div 10=19730 True Тип цикла =? F k: =k+1 G Вывод k Конец Формула для записи целого числа: n – количество цифр в записи числа 21
Инфрматика_л2.ppt