Алгоритм и программирование.pptx
- Количество слайдов: 40
Алгоритмизация и программирование
Составление модели задачи I. a) b) c) d) II. IV. V. Выделить существенные предположения Выделить исходные данные Определить результат Установить связь между исходными данными и результатом (формулы, неравенства и т. д. ) Составление алгоритма Составление программы Ввод исходных данных и анализ результатов Исправление ошибок 2
слово АЛГОРИТМ произошло от латинского написания имени величайшего ученого из города Хорезма, Абдуллы (или абу Джафара) Мухаммеда бен Муса аль-Хорезми (Alhorithmi), жившего в 783 – 850 гг.
Алгоритм – это строго определенная последовательность действий при решении задачи. Алгоритм содержит несколько шагов. Шаг алгоритма – это каждое отдельное действие алгоритма. Алгоритмизация: 1) этап решения задачи, состоящий в нахождении по формулировке задачи алгоритма ее решения. 2) раздел информатики, изучающий методы, приемы построения алгоритмов и их свойства (иногда также называемый алгоритмикой).
Исполнитель – это объект, умеющий выполнять определенный набор действий. Исполнителем может быть человек, робот, животное, компьютер. Система команд исполнителя (СКИ) – это все команды, которые исполнитель умеет выполнять. Среда исполнителя – обстановка, в которой функционирует исполнитель.
Результативность – получение Результативность результата за конечное количество шагов АЛГОРИТМ Массовость – использование Массовость алгоритма для решения однотипных задач Свойства алгоритма Дискретность (прерывность, раздельность) – разбиение алгоритма на шаги Детерминированность (определенность, точность) – каждое действие должно строго и недвусмысленно определено Детерминированность Конечность – каждое действие в отдельности и алгоритм в целом должны иметь возможность завершения Понятность – указания, которые понятны исполнителю
Таблица основных условных обозначений в блок-схемах Условное обозначение Назначение блока Начало или конец алгоритма Ввод или вывод данных. Внутри блока перечисляются данные через запятую. Процесс. Внутри блока записываются матем. формулы и операции для обработки данных. Проверка условия. Внутри блока записываются логические условия. Имеет два выхода Да(+) и Нет(-). Направление.
Классификация алгоритмов по форме представления: Словесные Табличные Графические (блок-схемы) Программные
Классификация алгоритмов по структуре: Линейный (следование) Разветвленный (ветвление, выбор, альтернатива) Циклический (повтор) Вспомогательный Комбинированный
Линейный алгоритм – это алгоритм, шаги которого выполняются последовательно друг за другом. (Пример: алгоритм сбора портфеля).
Начало Серия команд 1 Серия команд 2 Серия команд N Конец
Разветвляющийся алгоритм – это алгоритм, в котором в зависимости от условия выполняется либо одна, либо другая последовательность действий.
БАЗОВАЯ СТРУКТУРА ВЕТВЛЕНИЯ Неполная форма Полная форма Да Условие Инструкция 1 Нет Инструкция 2 Да Условие Инструкция Нет
Циклический алгоритм Цикл – это алгоритмическая конструкция, обеспечивающая многократное повторение оператора(ов) – команд исполнителю. Виды циклов
ЦИКЛЫ С УСЛОВИЕМ Условие – это некоторое утверждение, которое обязательно принимает одно из значений: а) истина б) ложь.
Условие проверяется перед входом в цикл и называется «Условием выполнения цикла» . Если условие принимает значение ложь, то цикл не выполнится ни разу.
Ö Ö Ö Предполагает сначала выполнение команд, а затем проверку условия. Условие называется «Условием продолжения цикла» . Если условие продолжения цикла принимает значение ЛОЖЬ, то происходит возврат к выполнению операторов цикла
В отличии от цикла с предусловием ВСЕГДА выполнится хотя бы 1 раз.
Ö Предполагает выполнение команд определенное количество раз. Ö Цикл завершается при достижении параметрической переменной предельного значения.
Программирование Программи рование — процесс создания компьютерных программ. В узком смысле (так называемое кодирование) под программированием понимается написание инструкций (программ) на конкретном языке программирования. В более широком смысле под программированием понимают весь спектр деятельности, связанный с созданием и поддержанием в рабочем состоянии программного обеспечения ЭВМ. Иначе это называется «программная инженерия» ( «инженерия ПО» ).
Программирование Программа – это логически упорядоченная последовательность команд необходимая для управления компьютером. Программа, с которой работает процессор, представляет собой последовательность чисел, называемую машинным кодом. Написать программу в машинном коде достаточно сложно и поэтому для представления алгоритма в виде, понятном компьютеру, служат языки программирования.
Программирование Языки программирования – формальная знаковая система, предназначенная для записи компьютерных программ. Определяет набор лексических, синтаксических и семантических правил, задающих внешний вид программы и действия, которые выполнит исполнитель (компьютер) под ее управлением. Общее количество языков программирования – более двух с половиной тысяч.
ЯЗЫКИ ПРОГРАММИРОВАНИЯ Языки программирования - это искусственные языки. Они отличаются от естественных ограниченным, достаточно малым числом слов, значение которых понятно компьютеру (транслятору), и очень строгими правилами записи команд (операторов). Совокупность требований для записи команд образуют синтаксис языка, а смысл каждой команды – семантику языка. Процесс поиска ошибок в программе называют тестированием, процесс устранения ошибок – отладкой программы.
УРОВНИ ЯЗЫКОВ ПРОГРАММИРОВАНИЯ Если язык программирования ориентирован на конкретный тип процессора и учитывает его особенности, то он называется языком программирования низкого уровня. “Низкий уровень” – это значит, что операторы близки к машинному коду и ориентированы на конкретный тип процессора. Языком самого низкого уровня является язык Ассемблера, который представляет каждую машинную команду в виде символьных условных обозначений. С помощью языков низкого уровня создаются очень эффективные и компактные программы, так как разработчик получает доступ ко всем возможностям процессора.
УРОВНИ ЯЗЫКОВ ПРОГРАММИРОВАНИЯ Высокоуровневый язык программирования (язык программирования высокого уровня) – язык программирования, разработанный для быстроты и удобства использования программистом. Программы, написанные на языках высокого уровня, проще для понимания программистом, но менее эффективны, чем их аналоги, создаваемые при помощи низкоуровневых языков. Примеры: C, C++, Java, Python, PHP, Ruby, Perl, Pure. Basic, Delphi, Lisp.
Поколения языков программирования 5 поколений
Поколения языков программирования Первое поколение – начало 50 -х годов. 1950 – Язык ассемблера, созданный по принципу «одна инструкция – одна строка» (Грейс Хоппер). 1952 – Язык A-0 – первый полноценный ассемблер, получивший известность. 1956 – Язык B-0 – ассемблер.
Поколения языков программирования Второе поколение – конец 50 -х – начало 60 -х гг. 1957 – Fortran – язык высокого уровня, для решения инженерных и расчетных задач. 1958 – Algol-58 – первая спецификация Алгола. 1958 – Lisp – для исследований в области искусственного интеллекта. 1959 – Codasyl – ориентирован на бизнесприложения. 1959 – Cobol – для коммерческих приложений.
Поколения языков программирования Третье поколение – 60 -е годы. Универсальные языки программирования. 1964 – PL/1 – Универсальный язык программирования. 1964 – Basic – для обучения работе с компьютером. 1969 – C – для написания ОС Unix, один из языков системного программирования. 1970 – Pascal – для обучения. 1972 – Smalltalk – первый объектноориентированный язык. 1972 – Prolog – логический язык программирования. 1979 – Ada – универсальный язык.
Поколения языков программирования Четвертое поколение – 70 -е годы. Языки для реализации крупных проектов, повышения их надежности и скорости создания. Не универсальные, а проблемно-ориентированные 1983 – C++ – объектно-ориентированное расширение языка C. 1987 – Perl – применяется при обработке текстов, для динамической генерации Web-страниц. 1991 – Python – близок к Perl, но более строг и логичен. 1995 – Delphi 1995 – PHP 1995 – Java
Поколения языков программирования Пятое поколение – середина 90 -х годов. относятся языки искусственного интеллекта, экспертных систем, баз знаний (Inter. Lisp, Expert. List, IQLisp, SAIL и др. ), а также естественные языки, не требующие освоения какого-либо специального синтаксиса (в настоящее время успешно используются естественные ЯП с ограниченными возможностями - Clout, Q&A, HAL и др. ).
Языки программирования для сети Интернет Язык 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++