23
Языки и методы программировани я Преподаватель – доцент каф. ИТиМПИ Кузнецова Е.М. Лекция 8

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

Embed Size (px)

DESCRIPTION

Лекция 8. Языки и методы программирования. Преподаватель – доцент каф. ИТиМПИ Кузнецова Е.М. Содержание. Построение модели Разработка и анализ алгоритмов. проектирование и разработка программ состоит из этапов:. 1)постановка задачи; 2) проектирование программы; 3) построение модели; - PowerPoint PPT Presentation

Citation preview

Page 1: Языки и методы программирования

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

Преподаватель – доцент каф. ИТиМПИ Кузнецова Е.М.

Лекция 8

Page 2: Языки и методы программирования

Содержание

Построение модели Разработка и анализ алгоритмов

Page 3: Языки и методы программирования

проектирование и разработка программ состоит из этапов:

1)постановка задачи;2) проектирование программы;3) построение модели;4) разработка алгоритма;5) реализация алгоритма;6) анализ алгоритма и его сложности;7) тестирование программы;8)документирование.

Page 4: Языки и методы программирования

Построение модели

1. Какие математические структуры больше всего подходят для решения задачи?

2. Существуют ли решенные аналогичные задачи?

Page 5: Языки и методы программирования

Задача коммивояжера Джек – агент по продаже компьютеров (коммивояжер). На его

территории 20 городов, разбросанных по всему штату. Компания возмещает ему только 50% стоимости деловых поездок. Джек вычислил, сколько ему будет стоить переезд на машине между каждыми двумя городами на его территории. Ему, естественно, хотелось бы снизить свои дорожные расходы.

Дано: двумерный массив с элементами cij, равными стоимости переезда из города i в город j.

Дополнительная информация: маршрут должен начинаться и заканчиваться в одном городе, каждый город посещается один раз.

Найти: самый выгодный маршрут!

Page 6: Языки и методы программирования

Задача коммивояжера с 5 городами:

граф — это совокупность объектов со связями между ними. Сеть - множество точек на плоскости вместе с линиями,

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

Page 7: Языки и методы программирования

Построение модели (принципы):

дедуктивный (от общего к частному) индуктивный (от частного к общему).

Схема построения модели при дедуктивном способе

Схема построения модели при индуктивном способе

Page 8: Языки и методы программирования

Индуктивный способ

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

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

Page 9: Языки и методы программирования

Технология построения модели при индуктивном способе:

эмпирический этап умозаключение; интуиция; предположение; гипотеза.

постановка задачи для моделирования; оценки; количественное и качественное описание; построение модели.

Page 10: Языки и методы программирования

Разработка алгоритма

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

методика доказательства правильности алгоритма : алгоритм описан в виде последовательности шагов. Для каждого шага предлагается некое обоснование его правильности для всех подходящих входных (условиях до данного шага) и выходных данных (условиях после этого шага). Затем предлагается доказательство конечности алгоритма с окончательными исходными входными и выходными данными.

Page 11: Языки и методы программирования

Конструирование и реализация алгоритма

• кодирование; • интеграцию; • тестирование (сертификацию).

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

Page 12: Языки и методы программирования

Анализ алгоритма

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

Page 13: Языки и методы программирования

ПРИНЦИПЫ РАЗРАБОТКИ И АНАЛИЗА АЛГОРИТМОВ

При построении алгоритма для сложной задачи используют системный подход с использованием декомпозиции (нисходящее проектирование сверху-вниз) и синтеза (программирование снизу-вверх).

При формировании алгоритма используют дедуктивный и индуктивный методы.

Page 14: Языки и методы программирования

Дедуктивный подход

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

алгоритм приспосабливается к условиям решаемой задачи.

В настоящее время получили распространение специализированные пакеты, позволяющие решать многие задачи (Mathcad, Eureka, Reduce— Autocad и т.п.).

Page 15: Языки и методы программирования

Индуктивный подход

предполагает эвристический системный подход (декомпозиция - анализ - синтез). общих и наиболее удачных методов не

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

Page 16: Языки и методы программирования

структурное программирование

- один из системных методов разработки алгоритмов.

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

Блок-схема - это ориентированная сеть, у которой могут быть функциональные, предикатные или объединяющие вершины.

Функциональные (а), предикатные (б) и объединяющие (в) вершины

Page 17: Языки и методы программирования

управляющие структуры

композиция, альтернатива,

итерация.

Page 18: Языки и методы программирования

Композиция

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

begin S1;S2; end

Структура «композиция»

Page 19: Языки и методы программирования

Альтернатива

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

Структура «альтернатива».

Page 20: Языки и методы программирования

Итерация

- это циклическая конструкция алгоритма, которая, вообще говоря, является составной структурой, состоящей из композиции и альтернативы.

Структура «итерация»

Page 21: Языки и методы программирования

Идея структурного программирования сверху-вниз

- если для некоторой функции f существует ее композиция через две другие функции g и h, т.е. f=h(g(х)), то проблема разработки алгоритма для f сводится к проблемам разработки алгоритмов для h и g. В структурном программировании сверху-

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

Page 22: Языки и методы программирования

Пошаговая детализация построения алгоритма

Page 23: Языки и методы программирования

С. Гудман, С. Хидетниеми Введение в разработку и анализ алгоритмов. , 1981, Изд-во «Мир»

Левитин Ананий В. Алгоритмы: введение в разработку и анализ,  2006, Изд-во: Диалектика-Вильямс