Скачать презентацию Информатика модуль 2 Направления подготовки Государственное и муниципальное Скачать презентацию Информатика модуль 2 Направления подготовки Государственное и муниципальное

8b6b5950e7e01d45982fba7efee0e12a.ppt

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

Информатика, модуль 2 Направления подготовки: Государственное и муниципальное управление, Социально-культурный сервис Институт ИИБС, кафедра Информатика, модуль 2 Направления подготовки: Государственное и муниципальное управление, Социально-культурный сервис Институт ИИБС, кафедра ИСПИ, ауд. 1448 Винтонива Наталья Ивановна Тема 10. Понятие алгоритма и его свойства. Блок-схема алгоритма

Содержание 1. Происхождение слова «алгоритм» 2. Понятие алгоритма и его свойства 3. Алгоритм применительно Содержание 1. Происхождение слова «алгоритм» 2. Понятие алгоритма и его свойства 3. Алгоритм применительно к вычислительной машине 4. Виды алгоритмов 5. Основные элементы блок-схем 6. Алгоритмические структуры 7. Языки программирования

Происхождение слова «алгоритм» • Происхождение самого термина «алгоритм» связано с математикой. • Слово Происхождение слова «алгоритм» • Происхождение самого термина «алгоритм» связано с математикой. • Слово "Алгоритм" происходит от algorithmi - латинского написания имени аль-Хорезми, под которым в средневековой Европе знали величайшего математика из Хорезма (город в современном Узбекистане) Мухаммеда бен Мусу, жившего в 783 -850 г. г.

Происхождение слова «алгоритм» • В своей книге Происхождение слова «алгоритм» • В своей книге "Об индийском счете" он сформулировал правила записи натуральных чисел с помощью арабских цифр и правила действий над ними столбиком.

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

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

Формальный исполнитель • Другое дело - реализация уже имеющегося алгоритма. Ее можно поручить субъекту Формальный исполнитель • Другое дело - реализация уже имеющегося алгоритма. Ее можно поручить субъекту или объекту, который не обязан вникать в существо дела, а возможно, и не способен его понять. • Такой субъект или объект принято называть формальным исполнителем. Примером формального исполнителя может служить стиральная машина-автомат, которая неукоснительно исполняет предписанные ей действия, даже если вы забыли положить в нее порошок.

Человек как формальный исполнитель • Человек тоже может выступать в роли формального исполнителя, но Человек как формальный исполнитель • Человек тоже может выступать в роли формального исполнителя, но в первую очередь формальными исполнителями являются различные автоматические устройства, и компьютер в том числе. • Каждый алгоритм создается в расчете на вполне конкретного исполнителя. Алгоритм должен содержать только те действия, которые допустимы для данного исполнителя.

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

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

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

Свойства алгоритма • Определенность – каждое правило алгоритма должно быть четким, однозначным и не Свойства алгоритма • Определенность – каждое правило алгоритма должно быть четким, однозначным и не оставлять места для произвола. Благодаря этому свойству выполнение алгоритма носит механический характер и не требует никаких дополнительных указаний или сведений о решаемой задаче.

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

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

Такая трактовка понятия “алгоритм” является неполной и неточной • Во-первых, неверно связывать алгоритм с Такая трактовка понятия “алгоритм” является неполной и неточной • Во-первых, неверно связывать алгоритм с решением какой-либо задачи. Алгоритм вообще может не решать никакой задачи. • Во-вторых, понятие “массовость” относится не к алгоритмам как к таковым, а к математическим методам в целом.

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

Алгоритмы в зависимости от цели, начальных условий задачи, путей ее решения, определения действий исполнителя Алгоритмы в зависимости от цели, начальных условий задачи, путей ее решения, определения действий исполнителя подразделяются следующим образом: • Механические алгоритмы, или иначе детерминированные, жесткие (например алгоритм работы машины, двигателя и т. п. ); • Гибкие алгоритмы, например стохастические, т. е. вероятностные и эвристические.

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

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

Эвристический алгоритм (от греческого слова “эврика”) • – это такой алгоритм, в котором достижение Эвристический алгоритм (от греческого слова “эврика”) • – это такой алгоритм, в котором достижение конечного результата программы действий однозначно не предопределено, так же как не обозначена вся последовательность действий, не выявлены все действия исполнителя. • К эвристическим алгоритмам относят, например, инструкции и предписания. В этих алгоритмах используются универсальные логические процедуры и способы принятия решений, основанные на аналогиях, ассоциациях и прошлом опыте решения схожих задач.

Алгоритм можно описать разными способами: • словами, • на языке программирования, • а также Алгоритм можно описать разными способами: • словами, • на языке программирования, • а также с помощью блок-схем.

Графический способ описания алгоритма • На языке блок-схем каждый шаг алгоритма описывается с помощью Графический способ описания алгоритма • На языке блок-схем каждый шаг алгоритма описывается с помощью соответствующей фигуры, а последовательность выполнения шагов определяется линиями-связями. Блок схемы читаются сверху вниз и слева направо.

Язык блок-схем прост (хотя существуют его расширенные варианты): • Прямоугольник – выполнение действия (например, Язык блок-схем прост (хотя существуют его расширенные варианты): • Прямоугольник – выполнение действия (например, c = a + b) • Ромб – проверка условия (например, a > b). Если условие выполняется, то алгоритм идет по линии «да» , если не выполняется – то по линии «нет» . • Скругленный прямоугольник – начало и конец алгоритма • Скошенный прямоугольник – ввод-вывод данных (например, получение значения переменной, вывод результата на экран монитора).

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

Алгоритмические структуры: • Цикл. Предполагает возможность многократного повторения определенных действий. Количество повторений зависит от Алгоритмические структуры: • Цикл. Предполагает возможность многократного повторения определенных действий. Количество повторений зависит от условия цикла. • Функция (подпрограмма). Команды, отделенные от основной программы, выполняются лишь в случае их вызова из основной программы (из любого ее места). Одна и та же функция может вызываться из основной программы сколь угодно раз.

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

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

Блок-схема линейного алгоритма Блок-схема линейного алгоритма

Алгоритмическая структура Алгоритмическая структура "ветвление" • В отличие от линейных алгоритмов в алгоритмическую структуру ветвление входит условие. • В зависимости от выполнения или невыполнения условия реализуется одна или другая последовательность команд (серий).

Выделяют полную и неполную форму ветвления. Неполная форма имеет место, если по ветви Выделяют полную и неполную форму ветвления. Неполная форма имеет место, если по ветви "нет" не предусматривается реализация серии.

Алгоритмическая структура Алгоритмическая структура "цикл" • Циклические алгоритмические структуры бывают двух типов: – цикл со счетчиком, в котором тело цикла выполняется определенное количество раз; – цикл по условию, в котором тело цикла выполняется, пока истинно условие.

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

Цикл с условием • Цикл с условием используется, когда заранее неизвестно, какое количество раз Цикл с условием • Цикл с условием используется, когда заранее неизвестно, какое количество раз должно повториться тело цикла. В таких случаях количество повторений зависит от некоторого условия.

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

Алгоритмическая структура «цикл» Алгоритмическая структура «цикл»

Основные понятия программирования • Программирование - это раздел информатики, изучающий методы и приемы составления Основные понятия программирования • Программирование - это раздел информатики, изучающий методы и приемы составления программ для компьютеров. Кроме того, программирование - это подготовка задачи к решению ее на компьютере.

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

Требования, предъявляемые к программе 1. Минимальные требования к компьютеру, на котором работает программа. 2. Требования, предъявляемые к программе 1. Минимальные требования к компьютеру, на котором работает программа. 2. Ясность входных и выходных данных и простота программы. 3. Минимальное время создания программы и простота ее изменения. 4. Минимальное время работы программы, минимум занимаемой памяти и минимум использованных в программе операторов.

Свойства программ • • выполнимость, мобильность, правильность, эффективность. Свойства программ • • выполнимость, мобильность, правильность, эффективность.

Выполнимость • - возможность выполнения программы на данном типе компьютеров. Выполнимость • - возможность выполнения программы на данном типе компьютеров.

Мобильность • - возможность переноса программы на другой тип компьютеров. Мобильность • - возможность переноса программы на другой тип компьютеров.

Правильность программы • - правильность результатов, получаемых с помощью данной программы. Правильность программы • - правильность результатов, получаемых с помощью данной программы.

Эффективность • - минимум времени выполнения, минимум машинной памяти и других ресурсов компьютера. Эффективность • - минимум времени выполнения, минимум машинной памяти и других ресурсов компьютера.

Языки программирования • - языки для записи программ для компьютеров. • Это совокупность средств Языки программирования • - языки для записи программ для компьютеров. • Это совокупность средств и правил представления алгоритма в виде, приемлемом для компьютера.

Типы языков программирования: • • • машинные, машинно-ориентированные, алгоритмические, логические, функциональные, учебные, инструментальные, диалоговые, Типы языков программирования: • • • машинные, машинно-ориентированные, алгоритмические, логические, функциональные, учебные, инструментальные, диалоговые, графические и т. д.

Системы программирования • - это набор средств ввода, редактирования, трансляции и выполнения программ на Системы программирования • - это набор средств ввода, редактирования, трансляции и выполнения программ на ЭВМ.

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

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

Интерпретатор • - это транслятор, обеспечивающий перевод каждой конструкции алгоритмического языка в машинные команды Интерпретатор • - это транслятор, обеспечивающий перевод каждой конструкции алгоритмического языка в машинные команды и одновременное выполнение этой конструкции в компьютере. • Все системы (языки) программирования имеют свой транслятор, компилятор и интерпретатор.

Алгоритмический язык • - это формальный язык, предназначенный для записи алгоритмов. Алгоритмический язык • - это формальный язык, предназначенный для записи алгоритмов.

Основные компоненты алгоритмического языка: • алфавит, • синтаксис, • семантика. Основные компоненты алгоритмического языка: • алфавит, • синтаксис, • семантика.

Алфавит • -это фиксированный для данного языка набор основных символов, т. е. Алфавит • -это фиксированный для данного языка набор основных символов, т. е. "букв алфавита", из которых должен состоять любой текст на этом языке -- никакие другие символы в тексте не допускаются.

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

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

Виды языков программирования: 1. Машинно-ориентированные языки (языки ассемблера). 2. Языки высокого уровня. 3. Командные Виды языков программирования: 1. Машинно-ориентированные языки (языки ассемблера). 2. Языки высокого уровня. 3. Командные языки баз данных.

Примеры языков программирования высокого уровня: • Фортран, Алгол, Бейсик (Basic), Паскаль (Pascal), Си++, Пролог, Примеры языков программирования высокого уровня: • Фортран, Алгол, Бейсик (Basic), Паскаль (Pascal), Си++, Пролог, Лисп, Форт и др.

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

Виды специализированных языков: 1. Языки для работы с базами данных: а)Языки, входящие в состав Виды специализированных языков: 1. Языки для работы с базами данных: а)Языки, входящие в состав промышленных клиент-серверных систем управления базами данных. (СУБД) (PL-SQL в СУБД Oracle, Transact-SQL в Microsoft SQL Server) б)Языки являющиеся частью других видов СУБД (Visual Fox. Pro, Microsoft Access, Paradox и т. п. )

Виды специализированных языков: • 2. Языки предназначенные для webпрограммирования. а) Языки, исполняющиеся на сервере, Виды специализированных языков: • 2. Языки предназначенные для webпрограммирования. а) Языки, исполняющиеся на сервере, поддерживающего Web-сайт. (РНР, Perl, VBScript) б) Языки, исполняющиеся на браузере (программе просмотра) клиента Java. Script, JScript, VBScript

Виды специализированных языков 3. Языки для математических расчетов 4. Языки для автоматизации работы определенных Виды специализированных языков 3. Языки для математических расчетов 4. Языки для автоматизации работы определенных программных продуктов. (VBA в Microsoft Office) 5. Специализированные языки других видов.

К универсальным языкам • можно отнести языки Visual C++, Visual C++. Net, Visual C#. К универсальным языкам • можно отнести языки Visual C++, Visual C++. Net, Visual C#. Net, Visual J#. Net, Java, Delphi, Borland C#, Borland C++ Builder.

Самостоятельно рассмотреть вопрос: • История развития языков программирования Самостоятельно рассмотреть вопрос: • История развития языков программирования

Самостоятельная работа № 2 1. Привести пример словесного описания алгоритма. 2. Перечислите свойства программы. Самостоятельная работа № 2 1. Привести пример словесного описания алгоритма. 2. Перечислите свойства программы. 3. Дайте определение семантике языка программирования.

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