Алгоритмизация и программирование

Содержание

Слайд 2

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

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

Алгоритм

Алгоритм – последовательность чётко определенных действий, выполнение которых ведёт к решению задачи.

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

Слайд 3

Алгоритм описывается в командах исполнителя, который будет его реализовывать.

Алгоритм

Совокупность команд, которые

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

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

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

Слайд 4

результативность – алгоритм должен выдавать результат своей работы;

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

массовость – алгоритм должен

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

определенность – алгоритм должен приводить к получению однозначного результата при заданных исходных данных;

дискретность – алгоритмом должен состоять из отдельных (дискретных) этапов;

Слайд 5

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

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

Свойства алгоритма последовательность – на каждом шаге выполнения алгоритма должно быть точно
какой шаг будет выполнен следующим;

понятность – каждая инструкция алгоритма должна быть понятна и однозначно истолкована исполнителем;

финитность (конечность) – алгоритм обязательно должен завершаться.

Слайд 6

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

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

Никаких

Способы описания алгоритмов Словесное описание представляет структуру алгоритма на естественном языке. Никаких
правил составления словесного описания не существует. Запись алгоритма осуществляется в произвольной форме на естественном, например, русском языке. Этот способ описания строго не формализуем; допускает неоднозначность толкования при описании некоторых действий; страдает многословностью.

Слайд 7

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

Алгоритм деления двух чисел:
Задать два числа, являющиеся делимым и

Способы описания алгоритмов Алгоритм деления двух чисел: Задать два числа, являющиеся делимым
делителем;
Проверить, равняется ли делитель нулю;
Если делитель не равен нулю, то найти частное, записать его в ответ;
Если делитель равен нулю, то в ответ записать "нет решения".

Слайд 8

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

Псевдокод – описание структуры алгоритма на естественном, частично формализованном языке,

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

Слайд 9

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

Строгих синтаксических правил для записи псевдокода не существует. Это облегчает

Способы описания алгоритмов Строгих синтаксических правил для записи псевдокода не существует. Это
запись алгоритма при проектировании и позволяет описать алгоритм, используя любой набор команд. Однако в псевдокоде обычно используются некоторые конструкции, присущие формальным языкам, что облегчает переход от псевдокода к записи алгоритма на языке программирования. Единого или формального определения псевдокода не существует, поэтому возможны различные псевдокоды, отличающиеся набором используемых слов и конструкций.

Слайд 10

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

Базовые управляющие структуры псевдокода

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

Слайд 11

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

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

Слайд 12

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

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

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

Этот способ имеет ряд преимуществ. Благодаря наглядности, он обеспечивает «читаемость» алгоритма и явно отображает порядок: выполнения отдельных команд. В блок-схеме каждой формальной конструкции соответствует определенная геометрическая фигура или связанная линиями совокупность фигур.

Слайд 13

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

Символ отображает ввод/вывод данных, носитель данных не определен.

В ГОСТ

Способы описания алгоритмов Символ отображает ввод/вывод данных, носитель данных не определен. В
определено множество символов ввода/вывода, например вывод на магнитные ленты, дисплеи и т.п. Если источник данных не принципиален, обычно используется данный символ.

Слайд 14

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

Символ отображает данные, вводимые вручную во время обработки с устройств

Способы описания алгоритмов Символ отображает данные, вводимые вручную во время обработки с
любого типа (клавиатура, переключатели, кнопки, световое перо, полоски со штриховым кодом).

Слайд 15

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

Символ отображает функцию обработки данных любого вида (выполнение определенной операции

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

В данном блоке обычно размещают одно или несколько операций присваивания, не требующих вызова внешних функций.

Слайд 16

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

Символ отображает предопределенный процесс, состоящий из одной или нескольких операций

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

Слайд 17

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

Символ отображает модификацию команды или группы команд с целью воздействия

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

Используется обычно для задания циклов со счетчиком.

Слайд 18

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

Символ отображает решение или функцию переключательного типа, имеющую один вход

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

Слайд 19

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

Символ, состоящий из двух частей, отображает начало и конец цикла.

Способы описания алгоритмов Символ, состоящий из двух частей, отображает начало и конец
Обе части символа имеют один и тот же идентификатор. Условия для инициализации, приращения,

завершения и т. д. помещаются внутри символа в начале или в конце в зависимости от расположения операции, проверяющей условие.

Используется для описания циклов с пред- и постусловием.

Слайд 20

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

Символ отображает выход во внешнюю среду и вход из внешней

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

Слайд 21

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

Разрыв линий потока

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

Слайд 22

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

Символ используют для добавления описательных комментариев или пояснительных записей в

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

Слайд 23

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

При передаче управления в схеме «снизу-вверх» или «справа-налево» линии

Основные принципы составления блок-схем При передаче управления в схеме «снизу-вверх» или «справа-налево»
обязательно помечают стрелками.

Каждый блок должен иметь определённое количество входов и выходов.

Не допускается передача управления «в никуда», т. е. «источник» передачи управления и «получатель» должны быть четко обозначены.

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

Слайд 24

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

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

Слайд 25

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

Программа – описание структуры алгоритма на алгоритмическом языке программирования.

На

Способы описания алгоритмов Программа – описание структуры алгоритма на алгоритмическом языке программирования.
практике исполнителями алгоритмов выступают компьютеры. Поэтому алгоритм, предназначенный для исполнения на компьютере, должен быть записан на «понятном» ему языке, такой формализованный язык называют языком программирования.

Слайд 26

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

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

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

Слайд 27

Программа на языке высокого уровня называется исходным текстом и хранится в текстовом

Программа на языке высокого уровня называется исходным текстом и хранится в текстовом
файле.

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

Программа – набор команд на языке, понятном исполнителю, реализующий некоторый алгоритм.

Исполняемый код – программа записанная в машинных кодах исполняемая процессором (файлы, содержащие исполняемый код имеют расширение .exe).

Слайд 28

Этапы разработки программы

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

Этапы разработки программы постановка задачи; проектирование программы; построение модели; разработка алгоритма; написание

Слайд 29

Отладка программы

Отладка программы - это процесс обнаружения и исправления ошибок. Программные ошибки

Отладка программы Отладка программы - это процесс обнаружения и исправления ошибок. Программные
можно разделить на два класса: синтаксические и алгоритмические (логические). Синтаксические ошибки выявляются в процессе компилирования программы - это наиболее простые с точки зрения исправления ошибки. Для обнаружения логических ошибок требуется этап тестирования программы.

Слайд 30

Трансляция программы

Трансляция программы – преобразование программы, представленной на одном из языков программирования,

Трансляция программы Трансляция программы – преобразование программы, представленной на одном из языков
в программу на другом языке

Транслятор – программа или техническое средство, выполняющее трансляцию программы.

Компиляция – преобразование программы, представленной на одном из языков программирования, в коды на машинно-ориентированном языке, которые принимаются и исполняются непосредственно процессором..

Слайд 31

Трансляция программы

Интерпретация – процесс непосредственного покомандного выполнения программы, «на лету».

Трансляция программы Интерпретация – процесс непосредственного покомандного выполнения программы, «на лету».

Слайд 32

Функциональная: вычисление результатов функций от исходных данных и результатов других функций, без

Функциональная: вычисление результатов функций от исходных данных и результатов других функций, без
хранения состояния программы.

Парадигмы программирования

Структурная: программа представляет собой структуру, построенную из трёх типов базовых конструкций.

Логическая: программирование основанное на автоматическом доказательстве теорем (логического вывода информации на основе заданных фактов и правил вывода).

Слайд 33

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

Процедурная: программирование основано на концепции вызова процедуры. Процедуры, алгоритмические блоки содержащие последовательность
шагов. В ходе выполнения программы любая процедура может быть вызвана из любой точки, включая саму данную процедуру.

Парадигмы программирования

Слайд 34

Парадигмы программирования

Объектно-ориентированная: разработка совокупности объектов, указывающих друг другу что делать. Объект содержит

Парадигмы программирования Объектно-ориентированная: разработка совокупности объектов, указывающих друг другу что делать. Объект
как данные так и процедуры их обработки (методы).

Аспектно-ориентированная: основана на идее разделения кода по функциональности.