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

Содержание

Слайд 2

ЭТАПЫ РЕШЕНИЯ ЗАДАЧИ НА ПК Составление модели задачи Выделить существенные предположения

ЭТАПЫ РЕШЕНИЯ ЗАДАЧИ НА ПК

Составление модели задачи
Выделить существенные предположения
Выделить исходные данные
Определить

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

слово АЛГОРИТМ произошло от латинского написания имени величайшего ученого из города

слово АЛГОРИТМ
произошло от латинского написания имени величайшего ученого из города Хорезма,

Абдуллы (или абу Джафара) Мухаммеда бен Муса аль-Хорезми (Alhorithmi), жившего в 783 – 850 гг.
Слайд 4

Алгоритм – это строго определенная последовательность действий при решении задачи. Алгоритм

Алгоритм – это строго определенная последовательность действий при решении задачи.
Алгоритм содержит

несколько шагов.
Шаг алгоритма – это каждое отдельное действие алгоритма.

Алгоритмизация:
1) этап решения задачи, состоящий в нахождении по формулировке задачи алгоритма ее решения.
2) раздел информатики, изучающий методы, приемы построения алгоритмов и их свойства (иногда также называемый алгоритмикой).

Слайд 5

Исполнитель – это объект, умеющий выполнять определенный набор действий. Исполнителем может

Исполнитель – это объект, умеющий выполнять определенный набор действий. Исполнителем может

быть человек, робот, животное, компьютер.
Система команд исполнителя (СКИ) – это все команды, которые исполнитель умеет выполнять.
Среда исполнителя – обстановка, в которой функционирует исполнитель.
Слайд 6

АЛГОРИТМ Результативность Детерминированность Массовость Свойства алгоритма Дискретность (прерывность, раздельность) – разбиение

АЛГОРИТМ

Результативность

Детерминированность

Массовость

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

Дискретность (прерывность, раздельность) – разбиение алгоритма на

шаги

Результативность – получение результата за конечное количество шагов

Массовость – использование алгоритма для решения однотипных задач

Детерминированность (определенность, точность) – каждое действие должно строго и недвусмысленно определено

Конечность – каждое действие в отдельности и алгоритм в целом должны иметь возможность завершения

Понятность – указания, которые понятны исполнителю

Слайд 7

Таблица основных условных обозначений в блок-схемах

Таблица основных условных обозначений в блок-схемах

Слайд 8

Классификация алгоритмов по форме представления: Словесные Табличные Графические (блок-схемы) Программные

Классификация алгоритмов по форме представления:

Словесные
Табличные
Графические (блок-схемы)
Программные

Слайд 9

Классификация алгоритмов по структуре: Линейный (следование) Разветвленный (ветвление, выбор, альтернатива) Циклический (повтор) Вспомогательный Комбинированный

Классификация алгоритмов по структуре:

Линейный (следование)
Разветвленный (ветвление, выбор, альтернатива)
Циклический (повтор)
Вспомогательный
Комбинированный

Слайд 10

Линейный алгоритм Линейный алгоритм – это алгоритм, шаги которого выполняются последовательно

Линейный алгоритм

Линейный алгоритм – это алгоритм, шаги которого выполняются последовательно друг

за другом. (Пример: алгоритм сбора портфеля).
Слайд 11

Базовая структура линейного алгоритма:

Базовая структура линейного алгоритма:

Слайд 12

Разветвляющийся алгоритм – это алгоритм, в котором в зависимости от условия

Разветвляющийся алгоритм – это алгоритм, в котором в зависимости от условия

выполняется либо одна, либо другая последовательность действий.
Слайд 13

БАЗОВАЯ СТРУКТУРА ВЕТВЛЕНИЯ Условие Инструкция 1 Инструкция 2 Да Нет Условие

БАЗОВАЯ СТРУКТУРА ВЕТВЛЕНИЯ

Условие

Инструкция 1

Инструкция 2

Да

Нет

Условие

Инструкция

Да

Нет

Неполная форма

Полная

форма
Слайд 14

Цикл – это алгоритмическая конструкция, обеспечивающая многократное повторение оператора(ов) – команд исполнителю. Циклический алгоритм Виды циклов

Цикл – это алгоритмическая конструкция, обеспечивающая многократное повторение оператора(ов) – команд

исполнителю.

Циклический алгоритм

Виды циклов

Слайд 15

ЦИКЛЫ С УСЛОВИЕМ Условие – это некоторое утверждение, которое обязательно принимает

ЦИКЛЫ С УСЛОВИЕМ

Условие – это некоторое утверждение, которое обязательно принимает одно

из значений:
а) истина
б) ложь.

УСЛОВИЕМ обозначают (определяют) путь выхода -завершения цикла.

Слайд 16

Условие проверяется перед входом в цикл и называется «Условием выполнения цикла».

Условие проверяется перед входом в цикл и называется «Условием выполнения цикла».
Если

условие принимает значение ложь, то цикл не выполнится ни разу.

ЦИКЛ

с предусловием

Слайд 17

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

Предполагает сначала выполнение команд, а затем проверку условия.
Условие называется «Условием продолжения

цикла».
Если условие продолжения цикла принимает значение ЛОЖЬ, то происходит возврат к выполнению операторов цикла

ЦИКЛ

с постусловием

Слайд 18

Графически В отличии от цикла с предусловием ВСЕГДА выполнится хотя бы 1 раз.

Графически

В отличии от цикла с предусловием ВСЕГДА выполнится хотя бы 1

раз.
Слайд 19

Предполагает выполнение команд определенное количество раз. Цикл завершается при достижении параметрической

Предполагает выполнение команд определенное количество раз.
Цикл завершается при достижении параметрической переменной

предельного значения.

ЦИКЛ

с параметром (счетчиком)

Слайд 20

Программирование Программи́рование — процесс создания компьютерных программ. В узком смысле (так

Программирование

Программи́рование — процесс создания компьютерных программ.
В узком смысле (так называемое кодирование) под

программированием понимается написание инструкций (программ) на конкретном языке программирования.
В более широком смысле под программированием понимают весь спектр деятельности, связанный с созданием и поддержанием в рабочем состоянии программного обеспечения ЭВМ. Иначе это называется «программная инженерия» («инженерия ПО»).
Слайд 21

Программа – это логически упорядоченная последовательность команд необходимая для управления компьютером.

Программа – это логически упорядоченная последовательность команд необходимая для управления компьютером.
Программа,

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

Программирование

Слайд 22

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

Программирование

Языки программирования – формальная знаковая система, предназначенная для записи компьютерных программ.
Определяет

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

ЯЗЫКИ ПРОГРАММИРОВАНИЯ Языки программирования - это искусственные языки. Они отличаются от

ЯЗЫКИ ПРОГРАММИРОВАНИЯ

Языки программирования - это искусственные языки.
Они отличаются от естественных

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

УРОВНИ ЯЗЫКОВ ПРОГРАММИРОВАНИЯ Если язык программирования ориентирован на конкретный тип процессора

УРОВНИ ЯЗЫКОВ ПРОГРАММИРОВАНИЯ

Если язык программирования ориентирован на конкретный тип процессора и

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

Высокоуровневый язык программирования (язык программирования высокого уровня) – язык программирования, разработанный

Высокоуровневый язык программирования (язык программирования высокого уровня) – язык программирования, разработанный

для быстроты и удобства использования программистом.
Программы, написанные на языках высокого уровня, проще для понимания программистом, но менее эффективны, чем их аналоги, создаваемые при помощи низкоуровневых языков.
Примеры: C, C++, Java, Python, PHP, Ruby, Perl, PureBasic, Delphi, Lisp.

УРОВНИ ЯЗЫКОВ ПРОГРАММИРОВАНИЯ

Слайд 26

Поколения языков программирования 5 поколений

Поколения языков программирования

5 поколений

Слайд 27

Поколения языков программирования Первое поколение – начало 50-х годов. 1950 –

Поколения языков программирования

Первое поколение – начало 50-х годов.
1950 – Язык ассемблера,

созданный по принципу «одна инструкция – одна строка» (Грейс Хоппер).
1952 – Язык A-0 – первый полноценный ассемблер, получивший известность.
1956 – Язык B-0 – ассемблер.
Слайд 28

Второе поколение – конец 50-х – начало 60-х гг. 1957 –

Второе поколение – конец 50-х – начало 60-х гг.
1957 – Fortran

– язык высокого уровня, для решения инженерных и расчетных задач.
1958 – Algol-58 – первая спецификация Алгола.
1958 – Lisp – для исследований в области искусственного интеллекта.
1959 – Codasyl – ориентирован на бизнес-приложения.
1959 – Cobol – для коммерческих приложений.

Поколения языков программирования

Слайд 29

Третье поколение – 60-е годы. Универсальные языки программирования. 1964 – PL/1

Третье поколение – 60-е годы.
Универсальные языки программирования.
1964 – PL/1 – Универсальный

язык программирования.
1964 – Basic – для обучения работе с компьютером.
1969 – C – для написания ОС Unix, один из языков системного программирования.
1970 – Pascal – для обучения.
1972 – Smalltalk – первый объектно-ориентированный язык.
1972 – Prolog – логический язык программирования.
1979 – Ada – универсальный язык.

Поколения языков программирования

Слайд 30

Четвертое поколение – 70-е годы. Языки для реализации крупных проектов, повышения

Четвертое поколение – 70-е годы.
Языки для реализации крупных проектов, повышения их

надежности и скорости создания.
Не универсальные, а проблемно-ориентированные
1983 – C++ – объектно-ориентированное расширение языка C.
1987 – Perl – применяется при обработке текстов, для динамической генерации Web-страниц.
1991 – Python – близок к Perl, но более строг и логичен.
1995 – Delphi
1995 – PHP
1995 – Java

Поколения языков программирования

Слайд 31

Пятое поколение – середина 90-х годов. относятся языки искусственного интеллекта, экспертных

Пятое поколение – середина 90-х годов.
относятся языки искусственного интеллекта, экспертных систем,

баз знаний (InterLisp, ExpertList, IQLisp, SAIL и др.),
а также естественные языки, не требующие освоения какого-либо специального синтаксиса (в настоящее время успешно используются естественные ЯП с ограниченными возможностями - Clout, Q&A, HAL и др.).

Поколения языков программирования

Слайд 32

Язык HTML (Hyper Text Markup Language) – универсальный язык разметки гипертекста,

Язык HTML (Hyper Text Markup Language) – универсальный язык разметки гипертекста,

используемый для подготовки Web документов для Internet.
Это не язык программирования!!!
Языки программирования для компьютерных сетей являются интерпретируемыми. Интерпретаторы для них распространяются бесплатно, а сами программы – в исходных текстах. Такие языки называются скрипт – языками. Язык PHP (1995-1997гг) обладает средствами доступа к БД и используется создателями динамических сайтов во всем мире. Язык VRML (1994г) создан для организации виртуальных трехмерных интерфейсов в Интернете.

Языки программирования для сети Интернет

Слайд 33

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

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

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

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

Основные технологии программирования Императивное программирование Структурное программирование Функциональное программирование Логическое программирование Объектно-ориентированное программирование

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

Императивное программирование
Структурное программирование
Функциональное программирование
Логическое программирование

Объектно-ориентированное программирование
Слайд 35

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

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

Первые

императивные языки – машинные коды.
1954 год – первый «человеческий» язык программирования – Fortran (от FORmula TRANslator).

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

Слайд 36

Структурное программирование –в его основе лежит представление программы в виде иерархической

Структурное программирование –в его основе лежит представление программы в виде иерархической

структуры блоков.
Предложена в 70-х годах XX века Э. Дейкстрой, разработана и дополнена Н. Виртом.
3 типа базовых конструкций: последовательное исполнение, ветвление, цикл.
Повторяющиеся фрагменты программы могут оформляться в виде т. н. подпрограмм.
Разработка программы ведётся пошагово, методом «сверху вниз».
Паскаль – язык программирования общего назначения.

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

Слайд 37

Функциональное программирование –процесс вычисления трактуется как вычисление значений функций в математическом

Функциональное программирование –процесс вычисления трактуется как вычисление значений функций в математическом

понимании последних.
Наиболее известными языками функционального программирования:
LISP
F Sharp (F#)
Haskell
Erlang

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

Слайд 38

Логическое программирование –основанно на автоматическом доказательстве теорем. Основано на теории и

Логическое программирование –основанно на автоматическом доказательстве теорем.
Основано на теории и аппарате

математической логики с использованием математических принципов резолюций.
Planner – первый язык логического программирования (1969 г.)
Prolog – самый известный язык (1972 г.)

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

Слайд 39

Объектно-ориентированное, или объектное программирование (ООП) – основными концепциями являются понятия объектов

Объектно-ориентированное, или объектное программирование (ООП) – основными концепциями являются понятия объектов

и классов.
ООП возникло в результате развития процедурного программирования, где данные и подпрограммы (процедуры, функции) их обработки формально не связаны.
Visual Basic
Delphi
Visual C++

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