Модели и алгоритмы. Роль моделирования в решении задач и формализации знаний

Содержание

Слайд 2

«ИНФОРМАЦИОННЫЕ ТЕХНОЛОГИИ» © Л.Ю. Дмитриева Основные этапы решения задач на ЭВМ:

«ИНФОРМАЦИОННЫЕ ТЕХНОЛОГИИ»

© Л.Ю. Дмитриева

Основные этапы решения задач на ЭВМ:
Постановка задачи
Построение математической модели данных
Техническое задание (условие)
Выбор

ПО для решения поставленной задачи
Тестирование
Составление алгоритмов
Написание программ для ЭВМ
Отладка программ на ЭВМ
Получение результатов на ЭВМ

Модели и алгоритмы

Слайд 3

На этом этапе на основе информационной модели (словесной постановки) задачи формируется

На этом этапе на основе информационной модели (словесной постановки) задачи формируется

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

«ИНФОРМАЦИОННЫЕ ТЕХНОЛОГИИ»

Модели и алгоритмы

Постановка задачи

© Л.Ю. Дмитриева

Слайд 4

«ИНФОРМАЦИОННЫЕ ТЕХНОЛОГИИ» Модели и алгоритмы 2. Построение математической модели © Л.Ю.

«ИНФОРМАЦИОННЫЕ ТЕХНОЛОГИИ»

Модели и алгоритмы

2. Построение математической модели

© Л.Ю. Дмитриева

Математическая формулировка задачи

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

Математическая модель:
Исходные данные:
Выходные данные:
Связь:

Геометрия, Физика
Дано:
Найти:
Решение:

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

Исходные данные (ИД)- данные которые мы передаём программе для вычисления и она обрабатывает их согласно инструкциям

Выходные данные (ВД) – результат, который возвращает нам программа

Слайд 5

«ИНФОРМАЦИОННЫЕ ТЕХНОЛОГИИ» © Л.Ю. Дмитриева Модели и алгоритмы 3. Техническое задание

«ИНФОРМАЦИОННЫЕ ТЕХНОЛОГИИ»

© Л.Ю. Дмитриева

Модели и алгоритмы

3. Техническое задание

Техническое задание – это

договоренность о том как будет функционировать будущая программа
Слайд 6

«ИНФОРМАЦИОННЫЕ ТЕХНОЛОГИИ» © Л.Ю. Дмитриева Модели и алгоритмы 4. Выбор ПО

«ИНФОРМАЦИОННЫЕ ТЕХНОЛОГИИ»

© Л.Ю. Дмитриева

Модели и алгоритмы

4. Выбор ПО

Выбор программного обеспечения происходит

исходя из:
Технического задания
Знаний человека, который решает поставленную задачу
Слайд 7

«ИНФОРМАЦИОННЫЕ ТЕХНОЛОГИИ» © Л.Ю. Дмитриева Модели и алгоритмы 5. Тестирование Тестирование-

«ИНФОРМАЦИОННЫЕ ТЕХНОЛОГИИ»

© Л.Ю. Дмитриева

Модели и алгоритмы

5. Тестирование

Тестирование- это процесс набора теста.
Тест-

это специально подобранные исходные данные (ИД) для которых заранее, до реализации программы известен результат выполнения программы

Правила тестирования:
«Покрытие условий»
«Граничный случай»
Недопустимые ИД

Слайд 8

«ИНФОРМАЦИОННЫЕ ТЕХНОЛОГИИ» © Л.Ю. Дмитриева Модели и алгоритмы 6. Алгоритмизация Алгоритмизация-

«ИНФОРМАЦИОННЫЕ ТЕХНОЛОГИИ»

© Л.Ю. Дмитриева

Модели и алгоритмы

6. Алгоритмизация

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

это точное, понятное предписание выполнить последовательность действий, направленных на достижение поставленной цели
Шаг алгоритма – это каждое отдельное действие алгоритма

Для алгоритма должны быть характерны следующие свойства:

Слайд 9

«ИНФОРМАЦИОННЫЕ ТЕХНОЛОГИИ» © Л.Ю. Дмитриева Модели и алгоритмы 6. Алгоритмизация Свойства алгоритма

«ИНФОРМАЦИОННЫЕ ТЕХНОЛОГИИ»

© Л.Ю. Дмитриева

Модели и алгоритмы

6. Алгоритмизация
Свойства алгоритма

Слайд 10

«ИНФОРМАЦИОННЫЕ ТЕХНОЛОГИИ» © Л.Ю. Дмитриева Модели и алгоритмы 6. Алгоритмизация Свойства алгоритма

«ИНФОРМАЦИОННЫЕ ТЕХНОЛОГИИ»

© Л.Ю. Дмитриева

Модели и алгоритмы

6. Алгоритмизация
Свойства алгоритма

Слайд 11

«ИНФОРМАЦИОННЫЕ ТЕХНОЛОГИИ» © Л.Ю. Дмитриева Модели и алгоритмы 6. Алгоритмизация Свойства

«ИНФОРМАЦИОННЫЕ ТЕХНОЛОГИИ»

© Л.Ю. Дмитриева

Модели и алгоритмы

6. Алгоритмизация
Свойства алгоритма

При управлении самолетом используются

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

«ИНФОРМАЦИОННЫЕ ТЕХНОЛОГИИ» © Л.Ю. Дмитриева Модели и алгоритмы 6. Алгоритмизация Свойства

«ИНФОРМАЦИОННЫЕ ТЕХНОЛОГИИ»

© Л.Ю. Дмитриева

Модели и алгоритмы

6. Алгоритмизация
Свойства алгоритма

Алгоритмы сложения, вычитания, умножения

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

«ИНФОРМАЦИОННЫЕ ТЕХНОЛОГИИ» © Л.Ю. Дмитриева Модели и алгоритмы 6. Алгоритмизация Свойства алгоритма

«ИНФОРМАЦИОННЫЕ ТЕХНОЛОГИИ»

© Л.Ю. Дмитриева

Модели и алгоритмы

6. Алгоритмизация
Свойства алгоритма

Слайд 14

«ИНФОРМАЦИОННЫЕ ТЕХНОЛОГИИ» © Л.Ю. Дмитриева Модели и алгоритмы 6. Алгоритмизация Способы

«ИНФОРМАЦИОННЫЕ ТЕХНОЛОГИИ»

© Л.Ю. Дмитриева

Модели и алгоритмы

6. Алгоритмизация
Способы записи алгоритма

Алгоритм можно записать

разными способами и даже на разных языках.
Есть специальные виды исполнителей алгоритмов - компьютеры. Они выполняют программы. 

Наибольшее распространение получили способы:

Слайд 15

«ИНФОРМАЦИОННЫЕ ТЕХНОЛОГИИ» © Л.Ю. Дмитриева Модели и алгоритмы 6. Алгоритмизация Способы

«ИНФОРМАЦИОННЫЕ ТЕХНОЛОГИИ»

© Л.Ю. Дмитриева

Модели и алгоритмы

6. Алгоритмизация
Способы записи алгоритма

Словесный способ записи

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

«ИНФОРМАЦИОННЫЕ ТЕХНОЛОГИИ» © Л.Ю. Дмитриева Модели и алгоритмы 6. Алгоритмизация Способы

«ИНФОРМАЦИОННЫЕ ТЕХНОЛОГИИ»

© Л.Ю. Дмитриева

Модели и алгоритмы

6. Алгоритмизация
Способы записи алгоритма

Псевдокод – это

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

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

Слайд 17

«ИНФОРМАЦИОННЫЕ ТЕХНОЛОГИИ» © Л.Ю. Дмитриева Модели и алгоритмы 6. Алгоритмизация Способы

«ИНФОРМАЦИОННЫЕ ТЕХНОЛОГИИ»

© Л.Ю. Дмитриева

Модели и алгоритмы

6. Алгоритмизация
Способы записи алгоритма

Блок-схемы – это

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

«ИНФОРМАЦИОННЫЕ ТЕХНОЛОГИИ» © Л.Ю. Дмитриева Модели и алгоритмы 6. Алгоритмизация Способы

«ИНФОРМАЦИОННЫЕ ТЕХНОЛОГИИ»

© Л.Ю. Дмитриева

Модели и алгоритмы

6. Алгоритмизация
Способы записи алгоритма

Классификация языков программирования

Программа –

это алгоритм, записанный в форме, понятной исполнителю.
Процесс написания программ называется программированием.
Компилятор – это программа, которая переводит текст, написанный на языке программирования, в набор машинных кодов
Слайд 19

«ИНФОРМАЦИОННЫЕ ТЕХНОЛОГИИ» © Л.Ю. Дмитриева Модели и алгоритмы 7. Написание программы

«ИНФОРМАЦИОННЫЕ ТЕХНОЛОГИИ»

© Л.Ю. Дмитриева

Модели и алгоритмы

7. Написание программы

Несколько правил написания

КАЧЕСТВЕННОГО кода:

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

Правило 2. Давайте наглядные имена объектам (переменные, модули, процедуры и т.д.)
Имена классов и типов должны быть существительными. Название метода должно содержать глагол.
Если метод определяет, является ли какая-то информация об объекте истинной или ложной, его имя должно начинаться с «is».
Методы, которые возвращают свойства объектов, должны начинаться с «get», а устанавливающие значения свойств — «set»

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

Слайд 20

«ИНФОРМАЦИОННЫЕ ТЕХНОЛОГИИ» © Л.Ю. Дмитриева Модели и алгоритмы 7. Написание программы

«ИНФОРМАЦИОННЫЕ ТЕХНОЛОГИИ»

© Л.Ю. Дмитриева

Модели и алгоритмы

7. Написание программы

Несколько правил написания

КАЧЕСТВЕННОГО кода:

Правило 6. Разделяйте код на короткие, обособленные части

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

Правило 5. Проверяйте на ошибки и реагируйте на них

Правило 4. Не повторяйтесь

Слайд 21

«ИНФОРМАЦИОННЫЕ ТЕХНОЛОГИИ» © Л.Ю. Дмитриева Модели и алгоритмы 8. Отладка программы

«ИНФОРМАЦИОННЫЕ ТЕХНОЛОГИИ»

© Л.Ю. Дмитриева

Модели и алгоритмы

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

Отладка программы — это специальный этап

в разработке программы, состоящий в выявлении и устранении программных ошибок, факт существования которых уже установлен.
Программные ошибки, как правило, делятся на три вида:
Синтаксическая ошибка 
Неправильное употребление синтаксических конструкций, например употребление оператора цикла For без tо или Next.
Семантическая ошибка 
Нарушение семантики той или иной конструкции, например передача функции параметров, не соответствующих ее аргументам.
Логическая ошибка
Нарушение логики программы, приводящее к неверному результату. Это наиболее трудный для "отлова" тип ошибки, ибо подобного рода ошибки, как правило, кроются в алгоритмах и требуют тщательного анализа и всестороннего тестирования.
Слайд 22

«ИНФОРМАЦИОННЫЕ ТЕХНОЛОГИИ» © Л.Ю. Дмитриева Модели и алгоритмы Методы разработки алгоритмов Метод пошаговой ДЕТОЛИЗАЦИИ

«ИНФОРМАЦИОННЫЕ ТЕХНОЛОГИИ»

© Л.Ю. Дмитриева

Модели и алгоритмы

Методы разработки алгоритмов

Метод пошаговой ДЕТОЛИЗАЦИИ

Слайд 23

«ИНФОРМАЦИОННЫЕ ТЕХНОЛОГИИ» © Л.Ю. Дмитриева Модели и алгоритмы Методы разработки алгоритмов

«ИНФОРМАЦИОННЫЕ ТЕХНОЛОГИИ»

© Л.Ю. Дмитриева

Модели и алгоритмы

Методы разработки алгоритмов

Структурный подход - алгоритм

может состоять только из 3 основных БАЗОВЫХ структур

Структура
«СЛЕДОВАНИЯ»

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

Структура
«РАЗВИЛКА»

Структура
«ЦИКЛ»

Полное  ветвление:  по  каждой  ветке  выполняется действие (набор  действий)
Неполное  ветвление:  действие (набор  действий) выполняется  только  в  одном  случае  когда  условие истинно

«ПОКА»-с предусловием

«ДО»-с постусловием

Слайд 24

«ИНФОРМАЦИОННЫЕ ТЕХНОЛОГИИ» © Л.Ю. Дмитриева Модели и алгоритмы Типы алгоритмов 1.

«ИНФОРМАЦИОННЫЕ ТЕХНОЛОГИИ»

© Л.Ю. Дмитриева

Модели и алгоритмы

Типы алгоритмов

1. Линейный алгоритм
Алгоритм называется ЛИНЕЙНЫМ,

если он не имеет логических условий и имеет ОДНУ ветвь вычислений. Основная базовая структура- «СЛЕДОВАНИЯ»
Слайд 25

«ИНФОРМАЦИОННЫЕ ТЕХНОЛОГИИ» © Л.Ю. Дмитриева Модели и алгоритмы Типы алгоритмов 2.

«ИНФОРМАЦИОННЫЕ ТЕХНОЛОГИИ»

© Л.Ю. Дмитриева

Модели и алгоритмы

Типы алгоритмов

2. Разветвляющийся алгоритм
Алгоритм называется РАЗВЕТВЛЯЮЩИМСЯ,

если он имеет хотя бы 1 логическое условие. Основная базовая структура- «РАЗВИЛКА»
Слайд 26

«ИНФОРМАЦИОННЫЕ ТЕХНОЛОГИИ» © Л.Ю. Дмитриева Модели и алгоритмы Типы алгоритмов 3.

«ИНФОРМАЦИОННЫЕ ТЕХНОЛОГИИ»

© Л.Ю. Дмитриева

Модели и алгоритмы

Типы алгоритмов

3. Циклический алгоритм
Цикл –это часть

алгоритма, повторяющаяся многократно
Алгоритм называется ЦИКЛИЧЕСКИМ, если он предусматривает выполнение одной и той же серии команд в данном месте алгоритма
Слайд 27

«ИНФОРМАЦИОННЫЕ ТЕХНОЛОГИИ» © Л.Ю. Дмитриева Литература: 15 правил написания качественного кода.

«ИНФОРМАЦИОННЫЕ ТЕХНОЛОГИИ»

© Л.Ю. Дмитриева

Литература:

15 правил написания качественного кода. Ресурс доступа: https://tproger.ru/translations/15-rules-for-writing-quality-code/
Логинов,

В.И. Основы алгоритмизации : учеб.-метод. пособие для студ. оч. и заоч. обуч. технич. специальностей / В.И. Логинов, Л.Н. Шемагина. – Н. Новгород : Изд-во ФГОУ ВПО «ВГАВТ», 2010. – 81 с.
«Алгоритмика» Ресурс доступа: https://sites.google.com/site/algoritmika8/didakticeskie-materialy-dla-8-klassa/4-svojstva-algoritmov
Сайт учителей информатики: Скобелев Сергей Федорович, Скобелева Татьяна Сергеевна
Ресурс доступа: https://skobelevserg.jimdofree.com/%D0%BE%D0%B1-%D0%B0%D0%B2%D1%82%D0%BE%D1%80%D0%B0%D1%85/