Скачать презентацию Алгоритмизация и программирование Составление модели задачи I Скачать презентацию Алгоритмизация и программирование Составление модели задачи I

Алгоритм и программирование.pptx

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

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

Составление модели задачи I. a) b) c) d) II. IV. V. Выделить существенные предположения Составление модели задачи I. a) b) c) d) II. IV. V. Выделить существенные предположения Выделить исходные данные Определить результат Установить связь между исходными данными и результатом (формулы, неравенства и т. д. ) Составление алгоритма Составление программы Ввод исходных данных и анализ результатов Исправление ошибок 2

слово АЛГОРИТМ произошло от латинского написания имени величайшего ученого из города Хорезма, Абдуллы (или слово АЛГОРИТМ произошло от латинского написания имени величайшего ученого из города Хорезма, Абдуллы (или абу Джафара) Мухаммеда бен Муса аль-Хорезми (Alhorithmi), жившего в 783 – 850 гг.

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

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

Результативность – получение Результативность результата за конечное количество шагов АЛГОРИТМ Массовость – использование Массовость Результативность – получение Результативность результата за конечное количество шагов АЛГОРИТМ Массовость – использование Массовость алгоритма для решения однотипных задач Свойства алгоритма Дискретность (прерывность, раздельность) – разбиение алгоритма на шаги Детерминированность (определенность, точность) – каждое действие должно строго и недвусмысленно определено Детерминированность Конечность – каждое действие в отдельности и алгоритм в целом должны иметь возможность завершения Понятность – указания, которые понятны исполнителю

Таблица основных условных обозначений в блок-схемах Условное обозначение Назначение блока Начало или конец алгоритма Таблица основных условных обозначений в блок-схемах Условное обозначение Назначение блока Начало или конец алгоритма Ввод или вывод данных. Внутри блока перечисляются данные через запятую. Процесс. Внутри блока записываются матем. формулы и операции для обработки данных. Проверка условия. Внутри блока записываются логические условия. Имеет два выхода Да(+) и Нет(-). Направление.

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

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

Линейный алгоритм – это алгоритм, шаги которого выполняются последовательно друг за другом. (Пример: алгоритм Линейный алгоритм – это алгоритм, шаги которого выполняются последовательно друг за другом. (Пример: алгоритм сбора портфеля).

Начало Серия команд 1 Серия команд 2 Серия команд N Конец Начало Серия команд 1 Серия команд 2 Серия команд N Конец

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

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

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

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

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

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

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

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

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

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

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

ЯЗЫКИ ПРОГРАММИРОВАНИЯ Языки программирования - это искусственные языки. Они отличаются от естественных ограниченным, достаточно ЯЗЫКИ ПРОГРАММИРОВАНИЯ Языки программирования - это искусственные языки. Они отличаются от естественных ограниченным, достаточно малым числом слов, значение которых понятно компьютеру (транслятору), и очень строгими правилами записи команд (операторов). Совокупность требований для записи команд образуют синтаксис языка, а смысл каждой команды – семантику языка. Процесс поиска ошибок в программе называют тестированием, процесс устранения ошибок – отладкой программы.

УРОВНИ ЯЗЫКОВ ПРОГРАММИРОВАНИЯ Если язык программирования ориентирован на конкретный тип процессора и учитывает его УРОВНИ ЯЗЫКОВ ПРОГРАММИРОВАНИЯ Если язык программирования ориентирован на конкретный тип процессора и учитывает его особенности, то он называется языком программирования низкого уровня. “Низкий уровень” – это значит, что операторы близки к машинному коду и ориентированы на конкретный тип процессора. Языком самого низкого уровня является язык Ассемблера, который представляет каждую машинную команду в виде символьных условных обозначений. С помощью языков низкого уровня создаются очень эффективные и компактные программы, так как разработчик получает доступ ко всем возможностям процессора.

УРОВНИ ЯЗЫКОВ ПРОГРАММИРОВАНИЯ Высокоуровневый язык программирования (язык программирования высокого уровня) – язык программирования, разработанный УРОВНИ ЯЗЫКОВ ПРОГРАММИРОВАНИЯ Высокоуровневый язык программирования (язык программирования высокого уровня) – язык программирования, разработанный для быстроты и удобства использования программистом. Программы, написанные на языках высокого уровня, проще для понимания программистом, но менее эффективны, чем их аналоги, создаваемые при помощи низкоуровневых языков. Примеры: C, C++, Java, Python, PHP, Ruby, Perl, Pure. Basic, Delphi, Lisp.

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

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

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

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

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

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

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

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

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

Основные технологии программирования Императивное программирование – описывает процесс вычисления в виде инструкций, изменяющих состояние Основные технологии программирования Императивное программирование – описывает процесс вычисления в виде инструкций, изменяющих состояние программы. Первые императивные языки – машинные коды. 1954 год – первый «человеческий» язык программирования – Fortran (от FORmula TRANslator).

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

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

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

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