Реферат: Методика создания программ

Реферат: Методика создания программ




🛑 👉🏻👉🏻👉🏻 ИНФОРМАЦИЯ ДОСТУПНА ЗДЕСЬ ЖМИТЕ 👈🏻👈🏻👈🏻




























































Здесь мы рассмотрим один из наиболее важных вопросов: как создавать программу?
До сих пор мы имели дело с относительно небольшими программами для решения несложных алгоритмических проблем. Мы познакомились с важностью и ролью спецификации программы, ясностью формулировки основных шагов алгоритма при обработке данных, трансляцией этих шагов в эффективные последовательности операторов программы на языке Pascal, комментировании программы, проверки ее правильности. Мы убедились, что проверять правильность программы надо, даже тогда, когда корректность использованного алгоритма была доказана. Причем, заметим, что внутренняя организация всех программ, которые мы написали до сих пор, может быть представлена в a’lePascal форме как на рис. 13.1.
Разработка большой программы отличается от разработки малой в двух основных аспектах.
Текст программы для решения большой проблемы занимает много больше места, чем одна страница.
Создание таких программ путем написания Pascal программы “с листа”практически невозможно.
Как правило, эта разработка предполагает систематический подход:
Созданная программа должна быть читабельной, эффективной и корректной.
{Описание используемых пременных в пред и пост условиях}
Рис. 13.1. Типичная внутренняя организация программы.
Создание программы - это систематический процесс, состоящий из определённых этапов. В результате этого процесса мы получаем программу. Поскольку мы хотим получать программу
ясную для понимания, т.е. читабельную;
эффективную, т.е. экономно расходующую ресурсы исполнителя и выполняемую им быстро;
правильную, т.е. не содержащую ошибок;
то не любой процесс создания программы нам подходит.
Нам нужна методика создания ясных, правильных, эффективных программ.
Ясность означает, что любой, кто знаком с языком Pascal и прикладной областью, поймет алгоритм, читая текст программы, комментарии и спецификацию проблемы.
Эффективность предполагает, что алгоритм и программа составлены так, чтобы минимизировать по возможности ресурсы вычислительной системы, необходимые для ее решения.
Корректность означает, что любое исполнение программы с допустимыми исходными данными дает правильный результат.
Под методикой создания какого-либо продукта мы будем понимать чётко определённую последовательность этапов, выполнив которую, мы получим желаемый продукт с нужными характеристиками.
Давайте напишем небольшую программу, сосредоточив теперь наше внимание именно на процессе её создания. Пусть к нам обратились с просьбой написать программу на Pascal, которая размещает компоненты вектора в возрастающем порядке. Пусть после общения с заказчиком нам удалось выяснить, что:
компонентами вектора могут быть только натуральные числа;
Мы уже специфицировали исходные данные для этой задачи в лекции 7. Там исходные данные мы специфицировали так:
Q 1
= "i : 1 £i £ 100 :v i
ÎN Ù v i
>0.
Теперь надо выразить тот факт, что все компоненты различны:
Q 2
= "i : 1 £i £ 100 : Ø$j : 1 £ j £ 100 : v i
= v j
Ù i¹j.
Отсюда спецификация исходных данных выглядит так:
Q=Q 1
ÙQ 2
="i : 1 £i £ 100 : (v i
ÎN Ù v i
>0)ÙØ$j : 1 £ j £ 100 : v i
= v j
Ù i¹j .
Спецификация множества возможных результатов там была записана в следующей форме:
"i : 1 £i < 100 :(o i
ÎN Ù o i
>0 Ù o 100
ÎN Ù o 100
>0 Ù o i
0)ÙØ$j: 1 £ j £ 100: v i
= v j
Ù i¹j .
R "i: 1 £i £ 100: о i
ÎN Ùо i
>0 Ù$j : 1 £ j £ 100 : о i
= v j
Ù
constM=100 ; {M - число компонентов в векторе}
t, i, errngtv, erreqvl : integer ; {errngtv, erreqvl - признакиошибоквисходныхданных;
beginwrite (‘Введите‘, i ,’-ую_компоненту =’);
if {Данные корректны} then {Обработка данных};
Q : 1. "i: 1 £ i £ 100 : v [i]ÎNÙ v [i]>0 ;
"i: 1 £ i £ 100 : Ø$j: 1 £ j £ 5: v[i] = v[j] Ù i¹j .
{Проверкаусловия Q1: "i: 1 £ i £ 100 : v[i]ÎNÙ v[i]>0}
errngtv:=0 ; for i:=1 to 100 do if v[i]<=0 then
{Проверка условия Q2: "i: 1 £i£ 100 : Ø$j: 1 £j£ 100: v[i] = v[j] Ùi¹j}
if errngtv =0 Ù erreqvl:=0 then {Q}
Рис. 13.3. Фрагмент программы “Проверка исходных данных”.
{Данные корректны} Обработка исходных данных.
whilei <= Mdo {Цикл заполнения вектора-результата}
{P 1
: "i: 1 £i £ 100: "k : 1 £ k £ i : о[k]<о[k+1]}
forj:=1 toMdo {Поиск очередного наименьшего
begin {P 2
: "j: 1 £ j < i: "k : 1 £ k £100: î[j]< v[k]
if (î[i]>v[j]) and (v[j]< >-1) then
v[t]:=-1; {Заменяем в исходном массиве наименьший
компонент на -1, чтобы больше его не выбирать}
i:=i+1 ; {Переход к очередному свободному компоненту
Рис. 13.4. Фрагмент программы “Обработка исходных данных”.
На рис. 13.4 представлена основная часть нашей программы - обработка данных. Она состоит из двух вложенных циклов. В цикле while мы последовательно заполняем компоненты вектора о. В цикле for мы выбираем наименьший компонент в исходном массиве v, размещаемего в массиве о, а найденный наименьший в массиве v “забиваем” -1, чтобы исключить из рассмотрения при последующих итерациях цикла while.
В качестве комментария к этим циклам мы указали их инварианты. Инвариант цикла for утверждает, что на любой итерации компоненты массива v либо больше уже заполненных компонентов массива о, либо = -1.
указанное после цикла for гарантирует нам что массив о в итоге будет содержать только компоненты массива v, т.е. будет его перестановкой. Инвариант цикла while утверждает, что на всех итерациях заполненная часть массива о упорядочена по возрастанию. Это гарантирует нам выполнение постусловия программы по окончании цикла while.
Детальное рассмотрение правильности мы пока отложим. Заметим лишь, что мы можем воспользоваться методом “компьютера с кнопкой”, который мы уже использовали в лекции 11-12.
Итак, подведём итог. Только что проделанный процесс можно разбить на следующие этапы:
Формирование и осознание проблемы. Назовём этот этап постановкой задачи.
Разбиение проблемы на подпроблемы, до тех пор пока не подберём существующий алгоритм, либо не сможем “сходу” выписать свой.
Подбор существующего, т.е. попытаться использовать уже существующие программы или их фрагменты. Здесь очень полезны будут их спецификации, чтобы построить их контекст данной программы.
Запись на языке Pascal программы со спецификациями промежуточных состояний.
*)
Заметим, что Exmpl 10.X не удовлетворяет определению имени в языке Pascal, т.к. здесь используется пробел и точка, которые не являются ни буквой, ни цифрой. Однако, в целях наглядности мы будем использовать такой способ именования примеров.

Название: Методика создания программ
Раздел: Рефераты по информатике, программированию
Тип: реферат
Добавлен 06:51:07 27 февраля 2008 Похожие работы
Просмотров: 68
Комментариев: 17
Оценило: 3 человек
Средний балл: 4.7
Оценка: неизвестно   Скачать

Срочная помощь учащимся в написании различных работ. Бесплатные корректировки! Круглосуточная поддержка! Узнай стоимость твоей работы на сайте 64362.ru
Привет студентам) если возникают трудности с любой работой (от реферата и контрольных до диплома), можете обратиться на FAST-REFERAT.RU , я там обычно заказываю, все качественно и в срок) в любом случае попробуйте, за спрос денег не берут)
Да, но только в случае крайней необходимости.

Реферат: Методика создания программ
Реферат: Harley Davidson The American Motorcycle Essay Research
Практические Работы Пм 02
Методическое указание по теме Основные задачи и порядок действий оператора наземного пункта управления беспилотными летательными аппаратами
Реферат: Стамболич, Петар
Реферат по теме Успех Sony: Гениальные изобретения
Уголовные Наказания Курсовая
Реферат: Особенности методики бухгалтерского учета операций по договору простого товарищества
Доклад по теме Энцефалит
Деловая этика
Реферат по теме Економічна статика і динаміка. Основні завдання кон'юнктурних досліджень
Контрольная Работа 9 Класс Тема Политика
Реферат: Выход из тупика Ошибки медицины исправляет физиология
Развитие Способностей Эссе
Контрольная работа по теме Производственная программа цеха
Эссе На Тему Духовные Ценности
Основные Направления Внешней Политики Ивана Грозного Курсовая
Курсовая работа по теме Распределение перевозок в узле между тремя видами транспорта
Сочинение По Произведению Телеграмма
Отчет по практике: Илишевское ДРСУ ГУП "Башкиравтодор"
Контрольная Работа На Тему История Развития Феодализма
Реферат: Великие люди XIX века
Реферат: Внимание
Реферат: Специфика воспитания детей в различных по структуре семьях

Report Page