Скачать презентацию АЛГОРИТМИЗАЦИЯ И ПРОГРАММИРОВАНИЕ ТЕМА 1 АЛГОРИТМ И ЕГО Скачать презентацию АЛГОРИТМИЗАЦИЯ И ПРОГРАММИРОВАНИЕ ТЕМА 1 АЛГОРИТМ И ЕГО

Obshy_kurs_informatiki_15.ppt

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

АЛГОРИТМИЗАЦИЯ И ПРОГРАММИРОВАНИЕ ТЕМА 1 АЛГОРИТМ И ЕГО СВОЙСТВА. СПОСОБЫ ЗАПИСИ АЛГОРИТМА АЛГОРИТМИЗАЦИЯ И ПРОГРАММИРОВАНИЕ ТЕМА 1 АЛГОРИТМ И ЕГО СВОЙСТВА. СПОСОБЫ ЗАПИСИ АЛГОРИТМА

ПОНЯТИЕ АЛГОРИТМА Алгоритм – это четкое описание последовательности действий, которые необходимо выполнить для решения ПОНЯТИЕ АЛГОРИТМА Алгоритм – это четкое описание последовательности действий, которые необходимо выполнить для решения задачи Свойства алгоритма 1) Дискретность 2) Определенность (или детерминированность) 3) Результативность (или конечность) 4) Массовость Формы представления алгоритма 1) Словесная 2) Графическая 3) Запись на специальном языке (алгоритмическом языке или псевдокоде)

СЛОВЕСНЫЙ СПОСОБ Описание последовательных этапов обработки данных на естественном языке Алгоритм Евклида 1) задать СЛОВЕСНЫЙ СПОСОБ Описание последовательных этапов обработки данных на естественном языке Алгоритм Евклида 1) задать два числа; 2) если числа равны, то взять любое из них в качестве ответа и остановиться, в противном случае продолжить выполнение алгоритма; 3) определить большее из чисел; 4) заменить большее из чисел разностью большего и меньшего из чисел; 5) повторить алгоритм с шага 2

ГРАФИЧЕСКИЙ СПОСОБ Графическое представление алгоритма называется Основные элементы блок-схемы алгоритма Граница цикла схемой алгоритма ГРАФИЧЕСКИЙ СПОСОБ Графическое представление алгоритма называется Основные элементы блок-схемы алгоритма Граница цикла схемой алгоритма или блок-схемой ГОСТ 19. 701 -90 Цикл 1 Линия Комментарий Решение Предопределённый Терминатор Ручной ввод Дисплей Процесс Данные «Единая система Соединитель документации. программной i: =0; ib Процессcили a, b, c b, a, b, c параметров a, группа процессов Цикл 1

АЛГОРИТМИЧЕСКИЕ ЯЗЫКИ ab a b a*b Пример псевдокода алг (алгоритм) арг (аргумент) рез (результат) АЛГОРИТМИЧЕСКИЕ ЯЗЫКИ ab a b a*b Пример псевдокода алг (алгоритм) арг (аргумент) рез (результат) нач (начало) кон (конец) цел (целый) вывод вещ (вещественный) сим (символьный) лит (литерный) лог (логический) таб (таблица) нц (начало цикла) кц (конец цикла) длин (длина) дано для да надо от нет если до при то знач выбор иначе и ввод все или пока не утв

ОБЩИЙ ВИД АЛГОРИТМА алг название алгоритма (аргументы и результаты) нач описание промежуточных величин | ОБЩИЙ ВИД АЛГОРИТМА алг название алгоритма (аргументы и результаты) нач описание промежуточных величин | последовательность команд (тело алгоритма) кон Примеры предложений алг: алг объем_и_площадь_цилиндра (арг вещ R, H, рез вещ V, S) алг диагональ (арг цел N, арг цел таб A[1: N, 1: N], рез лит otvet)

ПРИМЕР ЗАПИСИ НА АЛГОРИТМИЧЕСКОМ ЯЗЫКЕ алг произведение (арг цел n, m, рез цел s) ПРИМЕР ЗАПИСИ НА АЛГОРИТМИЧЕСКОМ ЯЗЫКЕ алг произведение (арг цел n, m, рез цел s) нач цел i | ввод n, m | s: =0 | i: =0 | нц пока i

ТЕМА 2 БАЗОВЫЕ АЛГОРИТМИЧЕСКИЕ СТРУКТУРЫ ТЕМА 2 БАЗОВЫЕ АЛГОРИТМИЧЕСКИЕ СТРУКТУРЫ

СТРУКТУРНОЕ ПРОГРАММИРОВАНИЕ Э. Дейкстра методология разработки программного обеспечения, в основе которой лежит представление программы СТРУКТУРНОЕ ПРОГРАММИРОВАНИЕ Э. Дейкстра методология разработки программного обеспечения, в основе которой лежит представление программы в виде иерархической структуры блоков. Предложена: С. Бем, К. Джакопини в 1966 г. Теоретические основы в 70 -х годах XX века Э. Дейкстрой, Окончательно доработана Н. Виртом действия и условия локальны Н. Вирт

ЕДИНСТВО СЛЕДУЮЩИХ КОМПОНЕНТОВ ПРОГРАММЫ: Структура информационного пространства Структуры управления К структурным операторам добавляются либо ЕДИНСТВО СЛЕДУЮЩИХ КОМПОНЕНТОВ ПРОГРАММЫ: Структура информационного пространства Структуры управления К структурным операторам добавляются либо циклы, либо рекурсии. Потоки передачи данных. Структуры данных. Призраки. Подпорки

БАЗОВЫЕ СТРУКТУРЫ АЛГОРИТМОВ 1) Линейная 2) Разветвляющаяся 3) Циклическая БАЗОВЫЕ СТРУКТУРЫ АЛГОРИТМОВ 1) Линейная 2) Разветвляющаяся 3) Циклическая

ЛИНЕЙНАЯ АЛГОРИТМИЧЕСКАЯ СТРУКТУРА Образуется последовательностью действий, следующих одно за другим: Схема алгоритма действие 1 ЛИНЕЙНАЯ АЛГОРИТМИЧЕСКАЯ СТРУКТУРА Образуется последовательностью действий, следующих одно за другим: Схема алгоритма действие 1 действие 2 действие n Алгоритмический язык алг нач | …………… | действие 1 | действие 2 | …………… | действие n | …………… кон

ЛИНЕЙНАЯ АЛГОРИТМИЧЕСКАЯ СТРУКТУРА (ПРИМЕР) Схема алгоритма Алгоритмический язык Начало Ввод a, b s: =a+b ЛИНЕЙНАЯ АЛГОРИТМИЧЕСКАЯ СТРУКТУРА (ПРИМЕР) Схема алгоритма Алгоритмический язык Начало Ввод a, b s: =a+b Вывод s Конец алг сумма (арг вещ a, b, рез вещ s) нач | ввод a, b | s: =a+b | вывод s кон

РАЗВЕТВЛЯЮЩАЯСЯ АЛГОРИТМИЧЕСКАЯ СТРУКТУРА Обеспечивает в зависимости от результата проверки условия выбор одного из альтернативных РАЗВЕТВЛЯЮЩАЯСЯ АЛГОРИТМИЧЕСКАЯ СТРУКТУРА Обеспечивает в зависимости от результата проверки условия выбор одного из альтернативных путей работы алгоритма Виды ветвлений 1) ветвление (если-то-иначе) 2) множественный выбор

ВЕТВЛЕНИЕ (1 -ЫЙ СЛУЧАЙ) Схема алгоритма условие нет да действия Алгоритмический язык алг нач ВЕТВЛЕНИЕ (1 -ЫЙ СЛУЧАЙ) Схема алгоритма условие нет да действия Алгоритмический язык алг нач | …………… | если условие | | то действия | все | …………… кон

ВЕТВЛЕНИЕ (2 -ОЙ СЛУЧАЙ) Схема алгоритма условие нет да действия 1 действия 2 Алгоритмический ВЕТВЛЕНИЕ (2 -ОЙ СЛУЧАЙ) Схема алгоритма условие нет да действия 1 действия 2 Алгоритмический язык алг нач | …………… | если условие | | то действия 1 | | иначе действия 2 | все | …………… кон

ВЕТВЛЕНИЕ (3 -ИЙ СЛУЧАЙ) Схема алгоритма условие 1 да действия 1 нет условие 2 ВЕТВЛЕНИЕ (3 -ИЙ СЛУЧАЙ) Схема алгоритма условие 1 да действия 1 нет условие 2 нет действия 3 да действия 2 Алгоритмический язык алг нач | …………… | если условие 1 | | то действия 1 | | иначе если условие 2 | | | то действия 2 | | | иначе действия 3 | | все | …………… кон

МНОЖЕСТВЕННЫЙ ВЫБОР Схема алгоритма i альтернатива 1 действия 1 альтернатива n действия n иначе МНОЖЕСТВЕННЫЙ ВЫБОР Схема алгоритма i альтернатива 1 действия 1 альтернатива n действия n иначе действия n+1 Алгоритмический язык алг нач | …………… | выбор i | | при альт. 1: действия 1 | | …………… | | при альт. n: действия n | | иначе действия n+1 | все | …………… кон

ЦИКЛИЧЕСКАЯ АЛГОРИТМИЧЕСКАЯ СТРУКТУРА Обеспечивает многократное выполнение некоторой совокупности действий, которая называется телом цикла Виды ЦИКЛИЧЕСКАЯ АЛГОРИТМИЧЕСКАЯ СТРУКТУРА Обеспечивает многократное выполнение некоторой совокупности действий, которая называется телом цикла Виды циклов 1) Цикл с предусловием 2) Цикл с постусловием 3) Цикл со счётчиком (с известным количеством повторений)

ЦИКЛ С ПРЕДУСЛОВИЕМ Развёрнутая схема алгоритма начальные присваивания Условие завершения Альтернативное обозначение имя цикла, ЦИКЛ С ПРЕДУСЛОВИЕМ Развёрнутая схема алгоритма начальные присваивания Условие завершения Альтернативное обозначение имя цикла, условие завершения да тело цикла нет тело цикла имя цикла Алгоритмический язык алг нач | …………… | начальные | присваивания | нц пока условие | | тело цикла | | (действия) | кц | …………… кон

ЦИКЛ С ПОСТУСЛОВИЕМ Развёрнутая схема алгоритма Альтернативное обозначение начальные присваивания имя цикла тело цикла ЦИКЛ С ПОСТУСЛОВИЕМ Развёрнутая схема алгоритма Альтернативное обозначение начальные присваивания имя цикла тело цикла Условие завершения нет да имя цикла, условие завершения Алгоритмический язык алг нач | …………… | начальные | присваивания | нц | | тело цикла | | (действия) | кц пока условие | …………… кон

ЦИКЛ СО СЧЁТЧИКОМ Развёрнутая схема алгоритма i: =i 1 i>i 2 нет Альтернативное обозначение ЦИКЛ СО СЧЁТЧИКОМ Развёрнутая схема алгоритма i: =i 1 i>i 2 нет Альтернативное обозначение имя цикла, i = i 1, i 2 да тело цикла имя цикла i: =i+1 Алгоритмический язык алг нач | …………… | нц для i от i 1 до i 2 | | тело цикла | | (действия) | кц | …………… кон

ПРОЦЕДУРЫ ПРОЦЕДУРА – это часть программы, которая не выполняется в естественном порядке, а вызывается ПРОЦЕДУРЫ ПРОЦЕДУРА – это часть программы, которая не выполняется в естественном порядке, а вызывается специальным способом. Обособленную группу операторов, которую можно выполнять многократно, обращаясь к ней из различных мест программы, называют процедурой

ПРЕИМУЩЕСТВА использования процедур: уменьшается общее количество операторов в программе, для размещения программы требуется меньше ПРЕИМУЩЕСТВА использования процедур: уменьшается общее количество операторов в программе, для размещения программы требуется меньше памяти, время на выполнение программы практически не изменяется, улучшается структура программы, облегчается отладка программы, программы имеют дополнительную ценность, поскольку ими может воспользоваться не только тот, кто написал процедуру, но и другие лица.

Процедуры Подпрограммы Функции ПОДПРОГРАММА – ЭТО ФУНКЦИЯ НЕ ВОЗВРАЩАЮЩАЯ ЗНАЧЕНИЯ В ОСНОВНУЮ ПРОЦЕДУРУ. Процедуры Подпрограммы Функции ПОДПРОГРАММА – ЭТО ФУНКЦИЯ НЕ ВОЗВРАЩАЮЩАЯ ЗНАЧЕНИЯ В ОСНОВНУЮ ПРОЦЕДУРУ.

Возвращаемое значение Вызывающая Входные аргументы Фактические параметры Внешние переменные Вызываемая Формальные параметры Возвращаемое значение Вызывающая Входные аргументы Фактические параметры Внешние переменные Вызываемая Формальные параметры

ТЕМА 3 ТИПОВЫЕ АЛГОРИТМЫ ТЕМА 3 ТИПОВЫЕ АЛГОРИТМЫ

АЛГОРИТМ ПОИСКА МИНИМУМА В МАССИВЕ, СОСТОЯЩЕГО ИЗ ТРЁХ ЭЛЕМЕНТОВ (СХЕМА) Начало A Ввод X[1: АЛГОРИТМ ПОИСКА МИНИМУМА В МАССИВЕ, СОСТОЯЩЕГО ИЗ ТРЁХ ЭЛЕМЕНТОВ (СХЕМА) Начало A Ввод X[1: 3] X[3]

АЛГОРИТМ ПОИСКА МИНИМУМА В МАССИВЕ, СОСТОЯЩЕГО ИЗ ТРЁХ ЭЛЕМЕНТОВ (ПСЕВДОКОД) алг мин (арг вещ АЛГОРИТМ ПОИСКА МИНИМУМА В МАССИВЕ, СОСТОЯЩЕГО ИЗ ТРЁХ ЭЛЕМЕНТОВ (ПСЕВДОКОД) алг мин (арг вещ таб X[1: 3], рез вещ min, рез цел num) нач | ввод X[1: 3] | если X[2]

АЛГОРИТМ ЦИКЛИЧЕСКОГО СДВИГА ОДНОМЕРНОГО МАССИВА НА ОДИН ШАГ ВПРАВО (СХЕМА) Начало A Ввод N, АЛГОРИТМ ЦИКЛИЧЕСКОГО СДВИГА ОДНОМЕРНОГО МАССИВА НА ОДИН ШАГ ВПРАВО (СХЕМА) Начало A Ввод N, X[1: N] i>N нет да M[1]: =X[N] i: =2 Вывод M[i]: =X[i-1] i: =i+1 A Конец A

АЛГОРИТМ ЦИКЛИЧЕСКОГО СДВИГА ОДНОМЕРНОГО МАССИВА (АЛЬТЕРНАТИВНЫЕ ОБОЗНАЧЕНИЯ) Начало A Ввод N, X[1: N] M[i]: АЛГОРИТМ ЦИКЛИЧЕСКОГО СДВИГА ОДНОМЕРНОГО МАССИВА (АЛЬТЕРНАТИВНЫЕ ОБОЗНАЧЕНИЯ) Начало A Ввод N, X[1: N] M[i]: =X[i-1] M[1]: =X[N] Цикл 1 i : = i+1 Цикл 1 i=2, N Вывод M[1: N] A Конец

АЛГОРИТМ ЦИКЛИЧЕСКОГО СДВИГА ОДНОМЕРНОГО МАССИВА НА ОДИН ШАГ ВПРАВО (ПСЕВДОКОД) алг сдвиг (арг цел АЛГОРИТМ ЦИКЛИЧЕСКОГО СДВИГА ОДНОМЕРНОГО МАССИВА НА ОДИН ШАГ ВПРАВО (ПСЕВДОКОД) алг сдвиг (арг цел N, арг таб вещ X[1: N], рез таб вещ M[1: N]) нач цел i | ввод N, X[1: N] | M[1]: =X[N] | нц для i от 2 до N | | M[i] : = X[i-1] | | i: =i+1 | кц | вывод M[1: N] кон

АЛГОРИТМ СОРТИРОВКИ ПО ВОЗРАСТАНИЮ ОДНОМЕРНОГО МАССИВА МЕТОДОМ «ПУЗЫРЬКА» (ПСЕВДОКОД) алг сорт (арг таб цел АЛГОРИТМ СОРТИРОВКИ ПО ВОЗРАСТАНИЮ ОДНОМЕРНОГО МАССИВА МЕТОДОМ «ПУЗЫРЬКА» (ПСЕВДОКОД) алг сорт (арг таб цел N, арг таб вещ X[1: N], рез таб вещ X[1: N]) нач цел i, flag, b | ввод N, X[1: N] | flag: =1 //признак упорядоченности массива: flag: =1 - массив не упорядочен | нц пока flag: =1 | | flag: =0 | | нц для i от 2 до N | | | если X[i-1] > X[i] | | то b: =X[i], X[i]: =X[i-1], X[i-1]: =b, flag: =1 | | | все | | кц | вывод X[1: N] кон

АЛГОРИТМ СОРТИРОВКИ ПО ВОЗРАСТАНИЮ ОДНОМЕРНОГО МАССИВА МЕТОДОМ «ПУЗЫРЬКА» Развёрнутая схема алгоритма Схема алгоритма с АЛГОРИТМ СОРТИРОВКИ ПО ВОЗРАСТАНИЮ ОДНОМЕРНОГО МАССИВА МЕТОДОМ «ПУЗЫРЬКА» Развёрнутая схема алгоритма Схема алгоритма с альтернативными обозначениями циклов Самостоятельно

ТЕМА 4 РЕКУРСИВНЫЕ АЛГОРИТМЫ ТЕМА 4 РЕКУРСИВНЫЕ АЛГОРИТМЫ

ОБРАЩЕНИЕ К ПОДПРОГРАММАМ Пример алгоритма, содержащего подпрограммы: алг Alg (арг вещ X, Y, Z, ОБРАЩЕНИЕ К ПОДПРОГРАММАМ Пример алгоритма, содержащего подпрограммы: алг Alg (арг вещ X, Y, Z, рез вещ D) нач | ввод X, Y, Z | A : = F 1(X) | B : = F 2(Y, Z) | C : = F 2(A, B) | D : = A+B+C | вывод D кон

ОБРАЩЕНИЕ К ПОДПРОГРАММАМ Подпрограммы, входящие в алгоритм: алг F 1(арг вещ Arg, рез вещ ОБРАЩЕНИЕ К ПОДПРОГРАММАМ Подпрограммы, входящие в алгоритм: алг F 1(арг вещ Arg, рез вещ Res) нач | Res: =Arg*Arg кон алг F 2(арг вещ Arg 1, Arg 2, рез вещ Res) нач | Res: =Arg 1*Arg 2 кон

ПОНЯТИЕ РЕКУРСИИ Рекурсивным называется алгоритм (или функция), содержащий в себе вызов самого себя (обращение ПОНЯТИЕ РЕКУРСИИ Рекурсивным называется алгоритм (или функция), содержащий в себе вызов самого себя (обращение к самому себе) Простая рекурсия: a: =a+1 Пример рекурсии: вычисление факториала N! = 1· 2· 3·…· при N ≥ 0, N 0! = 1 – не рекурсивный выход!!

ВЫЧИСЛЕНИЕ ФАКТОРИАЛА алг Факториал (арг цел N, рез цел F) нач | если N=0 ВЫЧИСЛЕНИЕ ФАКТОРИАЛА алг Факториал (арг цел N, рез цел F) нач | если N=0 | | то F: =1 | | иначе F : = Факториал (N-1)*N | все кон алг основная функция (арг цел NUM, рез цел А) | нач | ввод NUM | A : = Факториал (NUM) | вывод A кон

ВИДЫ РЕКУРСИИ 1) Прямая обращение к самому себе содержится в самом алгоритме (функции) fun ВИДЫ РЕКУРСИИ 1) Прямая обращение к самому себе содержится в самом алгоритме (функции) fun 2) Косвенная обращение к данному алгоритму (функции) содержится в другом алгоритме (функции), к которому данный алгоритм имеет обращение fun_1 fun_2