Реферат: Метод пошаговой детализации в программировании - текст реферата. Скачать бесплатно.
Банк рефератов, курсовых и дипломных работ. Много и бесплатно. # | Правила оформления работ | Добавить в избранное
 
 
   
Меню Меню Меню Меню Меню
   
Napishem.com Napishem.com Napishem.com

Реферат

Метод пошаговой детализации в программировании

Банк рефератов / Программирование

Рубрики  Рубрики реферат банка

закрыть
Категория: Реферат
Язык реферата: Русский
Дата добавления:   
 
Скачать
Архив Zip, 46 kb, скачать бесплатно
Заказать
Узнать стоимость написания уникального реферата

Узнайте стоимость написания уникальной работы

Реферат по теме: Метод пошаг овой детализации в программировании Принцип нисходящего проектирования алгоритмов и программ (метод проектировани я сверху вниз) Для создания “хороших” программ необходимо приде рживаться определенных правил программирования. В связи с этим предста вляет интерес рассмотреть новый подход к разработке программ, получивш ей достаточно широкое распространение в последние годы - структурное программирование. Идеи структурного программирования были высказаны Э. Дейкстрой еще в 1965 г. Позже им были изложены основные положения структурног о программирования в работе “Заметки по структурному программированию ”. С тех пор термин “структурное программирование” широко используется, но в разных смыслах и без строгого определения. Структурное программиров ание - метод программирован ия, использование которого снижает вероятность ошибок в процессе соста вления программ, повышает их надежность, эффективность, упрощает понима ние, обеспечивает создание программ, структура которых ясна и неразрывн о связана со структурой решаемых задач. Целью структурного программирования является попытка упростить проце сс написания правильных программ и обеспечить возможность чтения прог раммы от начала до конца, следуя логике. Программы, написанные с использованием традиционных методов, обычно им еют хаотичную структуру, поэтому и чтение, и понимание их затруднено. Стр уктурированные программы можно читать как обычный текст сверху вниз бе з перерыва, так как они имеют последовательную организацию, т.е. применен ие метода структурного программирования улучшает ясность и читабельно сть программ. Иначе его еще называют методом пошаговой детализации. Нисходящее проектирование программы, когда первоначально программа ра ссматривается, как совокупность действий, каждое из которых затем детал изируется и представляется как последовательность более про стых и конкретных действий и т. д. Вплоть до отдельных операторов языка; такой подход позволяет реализовать нали чие двух видов подпрограмм в языке – процедур и функций. Первоначально продумывается общая структура алгоритма без детальной п роработки отдельных его частей. Блоки требующие дальнейшей детализаци и, обозначаются пунктирной линией. Далее прорабатываются отдельные бло ки, не детализированные на предыдущем шаге. Таким образом, на каждом шаге разработки уточняется реализация фрагмен та алгоритма (или программы), т.е. решается более простая задача. Полностью закончив детализацию всех блоков, получаем решение задачи в целом. Если на каждом шаге детализации использовать принципы структурного пр ограммирования, то получается хорошая структурированная программа в ц елом. Процесс проектирования сверху вниз блок-схемы алгоритма пока зан на нижеприведенном примере. Пример. Вычислить значения функции y=f(x) для x, изменя ющегося от x 0 до x n с шагом h : , где x 0 = – 5; x n = 10; h = 1; a = – 1; b = 3.5. Технология нисходящего проектирования с пошаговой детализацией являе тся неотъемлемой частью создания хорошо структурированных программ. Р азработка алгоритма методом пошаговой детализации заключается в следу ющем: Любой алгоритм можно представить в виде одного предписания - в виде пост ановки задачи. Но если исполнитель не обучен исполнять заданное предпис ание, то возникает необходимость представить данное предписание в виде некоторой совокупности более простых предписаний. Если исполнитель не может выполнить и некоторые из них, то такие предписания вновь представл яются в виде совокупности еще более простых предписаний. Объединяя так полученные предписания в еди ную совокупность выполняемых в определенном порядке предписаний получают выполнение исходного з адания в целом. Достоинства метода пошаговой детализации: 1. Сохраняется концептуальная целостность программы: от сложного к прост ому. 2. Проектирование программы, кодирование, проверку и документирование мо жно делать параллельно. 3. В каждый момент времени (даже в начале разработки) имеется работающий ва риант программы. 4. Фразы естественного языка, будучи закомментированными, служат хорошим путеводителем по программе. В процессе создания программы особое внимание нуж но уделять разработке алгоритмов. Такой подход поможет избежать ошибок, допущенных при проектировании программного продукта. Наличие подобных ошибок потребует массу времени на исправление, возврат на предыдущие эт апы разработки с целью их доработки. При разработке алгоритмов обычно используют метод пошаговой детализац ии (поэтапно): 1. На первом этапе описываются решения поставленной перед программой зад ачи, выделяются подзадачи. 2. В последующих этапах описывается решение каждой подзадачи, выделяя пр и этом новые подзадачи. Так происходит до тех пор, пока решение подзадач н е будет очевидным. Рекомендовано решение каждой задачи описывать при по мощи 1 - 2 конструкций не более, чтобы более четко представлять структуру п рограммы. Например: Требуется разработать программу, которая с определенной точн остью eps находит значение аргумента x по заданному значению функции y при и звестном значении n Где: n>1, x>0 При n>1 функция является монотонно возрастающей, значение аргумента x можн о определить с помощью метода половинного деления. В чем заключается это метод? 1. Находим отрезок [x1, x2], который удовлетворяет условию: f(x1)<=y<=f(x2). 2. Делим полученный отрезок пополам: xt=(x1+x2)/2 и определеяем в какой половине от резка находится x. Для этого сравниваем два значения: f(x1) и y. 3. Полученный отрезок вновь делим пополам, процесс повторяется до тех пор, пока разность x1 и x2 не станет меньше заданного значения eps. При разработке алгоритма данной программы используем метод пошаговой детализации. 1 этап. Общая структура программы: Программа: Ввести y, n, eps Определить x Вывести x, y Конец. 2 этап. Детализируем операцию определения x: Определить x Определить x1 такое, что f(x1)<=y Определить x2 такое, что f(x2)>=y Определить x на интервале [x1, x2] Все. 3 этап. Детализируем операцию определения x1. Значение x1 подбираем таким об разом, чтобы выполнялось условие f(x1)<=y. Известно, что x>0, следовательно, берем любое значение x, например x1=1 и будем его пследовательно уменьшать, допуст им в 2 раза. Таким образом определим значение x1, удовлетворяющее данному у словию: Определить x1: x1:=1 цикл - пока f(x1)>y x1:=x1/2 Все - цикл Все 4 этап. Детализируем операцию определения x2. Значение x2 определяем аналог ично x1, но исходное значение будем последовательно увеличивать в 2 раза. Определить x2: x2:=1 цикл - пока f(x2)< y x2:=x2*2 Все - цикл Все. 5 этап. Детализируем операцию определения x. Определение x выполняется пос ледовательным сокращением отрезка [x1, x2]. Определить x: цикл - пока x2-x1>eps сократить отрезок [x1, x2] все - цикл Все. 6 этап. Детализируем операцию сокращения отрезка [x1, x2]. Интервал определени я x сокращаем делением пополам и отбрасываем половину, которая не удовле творяет условию f(x1)<=y<=f(x2): Сократить интервал определения x: xt=(x1+x2)/2 если f(xt)>y то x2:=xt иначе x1:=xt все - если Все. Таким образом, за 6 этапов разработан следующий алгоритм: Программа: Ввести y, n, eps x1:=1 цикл - пока f(x1)>y x1:=x1/2 все - цикл x2:=1 цикл - пока f(x2)< y x2:=x2*2 все - цикл цикл - пока x2-x1>eps xt:=(x1+x2)/2 если f(xt)>y то x2:=xt иначе x1:=xt все - если все - цикл Вывести xt, y Конец. Таким образом, на каждом этапе решается простая задача, что облегчает ра зработку алгоритма. Для решения данной задачи был использован псевдоко д, но можно использовать и блок - схемы алгоритмов Плюсы и минусы методик программирования После того, как мы разобрались в сущности обеих мет одик, давайте рассмотрим, какие удобства мы получаем от их использования , и с какими проблемами сталкиваемся. Программирование снизу вверх Про граммирование сверху вниз Преимущества Можно объединить одновременно несколько подпрограмм или мо дулей, так как часто одна подпрограмма более высокого уровня в проекте з аменяет сразу несколько драйверов. Серьезные ошибки с большой вероятн остью отыскиваются уже на ранних стадиях проекта. Подпрограммы, разрабатываемые на ранней стадии работы над пр оектом, часто оказываются чрезвычайно полезными и в других случаях. Обыч но такие низкоуровневые подпрограммы объединяют в собственные библиот еки. На любом этапе мы можем работать всего с одной подпрограммой, а это позволяет легче отлаживать и изменять код. Зависимость от машинных ресурсов в целом получается меньше, т ак как только на поздних этапах проекта мы работаем с большим объемом ко да. Проще придерживаться единых правил при создании различных версий п рограммы. При этом создавать полезные частные подверсии также оказывае тся удобно. Тестирование оказывается более систематичным. Недостатки Уже реализованные, отлаженные и протестированные модули ино гда приходится отбрасывать, если в вызывающих частях программы обнаруж ились неустранимые ошибки, и необходимо переделывать целый блок. Если оказывается, что модуль низкого уровня невозможно реализовать, как заду мывалось, иногда приходится переделывать весь проект. При отладке поглощается больше машинных ресурсов Ни один практикующий программист, конечно, не будет жестко придерживаться одной из показанных методик. В настоящей работе м ы всегда используем и те, и другие приемы. Другие проблемы структурного прог раммирования Текст прог раммы должен быть удобочитаем и понятен человеку. Существует несколько хитростей, которые помогают с делать код читабельным: o Писать надо просто . Начинающие программисты частенько перетяжеляют код, используя "красив ые" замысловатые конструкции. Однако, этим они получают сразу две головн ые боли: во-первых, такой код сложнее читать, а во-вторых, в мудреные участк и легко внести ошибку. Конечн о, в любом вопросе нужно придерживаться золотой середины. Алгоритм пузыр ьковой сортировки, скажем, запомнить легче всего, но на практике лучше ис пользовать более эффективные методы. o Использовать синтаксические со глашения. Прежде всего, к ним относится система синтаксических отступов . Каждый следующий вложенный блок отодвигается относительно предыдуще го на несколько позиций (обычно 2-3). В текстовом редакторе среды этот отсту п удобно указать как ширину поля табуляции. o Еще более не правы те, кто стремится "упаковать" максимум информации в одну строку. Другое соглашение относится к им енам переменных и называется "венгерской нотацией". o Вы улучшите читабельность, если будете следовать взаимному порядку операторов, опи санному в исходной версии языка. Скажем, считается, что в Паскале блок опи сания констант const должен стоять перед блоком описания типов type. Среда прог раммирования, скорее всего не посчитает ошибкой, если вы поменяете эти р азделы местами, но из соображений читабельности лучше этого не делать. o Создавать "говорящие" идентифика торы. Если вы используете только однобуквенные переменные "a", "x", "n", как в про стейших версиях Бейсика, или идентификаторы-аббревиатуры "nklm", "prs", как писал и на старом Fortranе, ждите неприятностей. Вам придется по крайней мере тащить через весь проект длинные таблицы, объясняющие назначение параметров. Name всегда лучше х, а OldValue - понятнее a. o Не лениться вставлять комментар ии. Особенно сложные алгоритмы, оригинальные приемы нужно комментирова ть как можно подробнее, иначе, вернувшись через пару месяцев к своему ста рому тексту, вы будете несколько часов заново проходить тот же путь. Удобно давать комментарий-специ фикацию к подпрограмме сразу после или сразу до ее заголовка. o Наконец, по возможности делать подпрограммы небольшими, оптимально - не более одной печатной страницы. Необходим о снижать трудоемкость тестирования и отладки программы (Стоимость раз работки - на 80% состоит из стоимости тестирования и отладки. Поэтому, к сожа лению, именно на них и начинают экономить многие нынешние разработчики). Здесь существует только один путь: аккуратней составлять код и тщательн ее планировать тестирование. В серьезных компаниях формируют отдельны й отдел бета-тестирования, который занимается вылавливанием ошибок - как интерфейсных, так и внутренних. Проблема в ерификации - автоматического доказательства правильности работы прогр аммы. Если программа отработала правильно на десяти тестах, это, в принци пе, не значит, что на одиннадцатом она не "упадет". Но ведь нельзя проверить все возможные комбинации параметров, поэтому приходится где-то останов иться. С теоретической точки зрения вопрос о верификации чрезвычайно сложен. На практике обычно огра ничиваются выбранным для данной задачи набором тестов. Упрощение модификации программы. Любая полезная программа сейчас треб ует постоянного обновления, расширения функций, выпуска новых версий: на этом и живут серьезные софтверные корпорации. Лучше всего, если создава я первую версию, вы уже будете думать о следующей. Легкости изменений служат и отдельные приемы прогр аммирование: использование объектов (а сейчас компонентов), модульная ст руктура, использование динамически подключаемых библиотек, заготовок под будущие функции и т.д. Эффективн ость программы. Оптимально программа занимает минимум памяти и выполня ется за минимум времени. В последнее время частенько эффективность прог рамм подменяется "необходимыми системными требованиями" - пользователя вынуждают постоянно наращивать мощность оборудования. Но если у конкур ента требования к системе окажутся ниже, а процессы станут выполняться б ыстрее, пользователь непременно отвернется от вашей программы.
1Архитектура и строительство
2Астрономия, авиация, космонавтика
 
3Безопасность жизнедеятельности
4Биология
 
5Военная кафедра, гражданская оборона
 
6География, экономическая география
7Геология и геодезия
8Государственное регулирование и налоги
 
9Естествознание
 
10Журналистика
 
11Законодательство и право
12Адвокатура
13Административное право
14Арбитражное процессуальное право
15Банковское право
16Государство и право
17Гражданское право и процесс
18Жилищное право
19Законодательство зарубежных стран
20Земельное право
21Конституционное право
22Конституционное право зарубежных стран
23Международное право
24Муниципальное право
25Налоговое право
26Римское право
27Семейное право
28Таможенное право
29Трудовое право
30Уголовное право и процесс
31Финансовое право
32Хозяйственное право
33Экологическое право
34Юриспруденция
 
35Иностранные языки
36Информатика, информационные технологии
37Базы данных
38Компьютерные сети
39Программирование
40Искусство и культура
41Краеведение
42Культурология
43Музыка
44История
45Биографии
46Историческая личность
47Литература
 
48Маркетинг и реклама
49Математика
50Медицина и здоровье
51Менеджмент
52Антикризисное управление
53Делопроизводство и документооборот
54Логистика
 
55Педагогика
56Политология
57Правоохранительные органы
58Криминалистика и криминология
59Прочее
60Психология
61Юридическая психология
 
62Радиоэлектроника
63Религия
 
64Сельское хозяйство и землепользование
65Социология
66Страхование
 
67Технологии
68Материаловедение
69Машиностроение
70Металлургия
71Транспорт
72Туризм
 
73Физика
74Физкультура и спорт
75Философия
 
76Химия
 
77Экология, охрана природы
78Экономика и финансы
79Анализ хозяйственной деятельности
80Банковское дело и кредитование
81Биржевое дело
82Бухгалтерский учет и аудит
83История экономических учений
84Международные отношения
85Предпринимательство, бизнес, микроэкономика
86Финансы
87Ценные бумаги и фондовый рынок
88Экономика предприятия
89Экономико-математическое моделирование
90Экономическая теория

 Анекдоты - это почти как рефераты, только короткие и смешные Следующий
Служба в церкви. Заходит пьяный и тресь батюшку по морде со словами:
- Бьют по щеке, подставь другую. Подставляй!
Батюшка хуком справа отвешивает пьяному леща и говорит:
- Какою мерой меряешь, такой и тебе будет отмеряно.
Народ их окружил и с интересом наблюдает.
Забегает мент:
- Что происходит?
А толпа ему:
- Не мешай, Евангелие толкуют.
Anekdot.ru

Узнайте стоимость курсовой, диплома, реферата на заказ.

Обратите внимание, реферат по программированию "Метод пошаговой детализации в программировании", также как и все другие рефераты, курсовые, дипломные и другие работы вы можете скачать бесплатно.

Смотрите также:


Банк рефератов - РефератБанк.ру
© РефератБанк, 2002 - 2016
Рейтинг@Mail.ru