Ћекции.ќрг


ѕоиск:




 атегории:

јстрономи€
Ѕиологи€
√еографи€
ƒругие €зыки
»нтернет
»нформатика
»стори€
 ультура
Ћитература
Ћогика
ћатематика
ћедицина
ћеханика
ќхрана труда
ѕедагогика
ѕолитика
ѕраво
ѕсихологи€
–елиги€
–иторика
—оциологи€
—порт
—троительство
“ехнологи€
“ранспорт
‘изика
‘илософи€
‘инансы
’ими€
Ёкологи€
Ёкономика
Ёлектроника

 

 

 

 


ѕошагова€ детализаци€




 

—труктурное программирование до сих пор было у нас представлено как свойство или оценка окончательного текста программы. Ќеобходимо добавить еще один ключевой элемент: методологию, или особенности мыслительного процесса, управл€ющего проектированием модул€ дл€ по≠лучени€ структурной программы. Ётот мыслительный процесс, который мы будем сейчас рассматривать, называетс€ пошаговой детализацией [1].

ѕошагова€ детализаци€ представл€ет собой простой процесс, пред≠полагающий первоначальное выражение логики модул€ в терминах гипо≠тетического €зыка Ђочень высокого уровн€ї с последующей детализацией каждого предложени€ в терминах €зыка более низкого уровн€, до тех пор пока наконец не будет достигнут уровень используемого €зыка програм≠мировани€. Ќа прот€жении всего процесса логика выражаетс€ основными конструкци€ми структурного программировани€.

ƒл€ иллюстрации этого процесса применим его дл€ разработки фрагмента программы имитирующую передачу отсчетов по каналу св€зи дл€ определени€ веро€тностных и статистических характеристик. »сход≠на€ формулировка такова:

 

(обнуление счетчиков)

While (не достигли максимального числа переданных сообщений) do

Begin

If (вес вектора ошибки меньше кратности исправл€емой ошибки)

Then (передача отсчета произошла без искажени€, увеличиваем на единицу счетчик правильных передач);

If (вес вектора ошибки больше кратности исправл€емой ошибки)

Then (при передаче сообщени€ произошла ошибка, и поскольку она не была исправлена при декодировании на приемной стороне, уве≠личиваем на единицу счетчик трансформаций);

”величиваем счетчик переданных сообщений:

End;

 

ќчевидно, это первоначальна€ формулировка выражена на €зыке, уровень которого существенно выше уровн€ выбранного нами €зыка про≠граммировани€. —ледующий шаг состоит в ее детализации. ƒл€ этого рас≠кроем содержимое условного оператора if и while:

 

(обнуление счетчиков)

While N<100000 do

Begin

If (e<=s)

Then (передача отсчета произошла без искажени€, увеличиваем на единицу счетчик правильных передач);

If (e>s)

Then (при передаче сообщени€ произошла ошибка, поэтому она была исправлена при декодировании на приемной стороне, уве≠личиваем на единицу счетчики правильных передач и исправленных ошибок);

N=N+1;

End;

 

¬ качестве третьего шага расшифруем последовательность действий при выполнении услови€:

(обнуление счетчиков)

While N<100000 do

Begin

If (e<=s)

Then Cpr=Cpr+1;

If (e>s)

Then Ctrns=CTrns+1;

N=N+1;

End;

 

ѕоследним шагом расшифруем обнуление всех счетчиков исполь≠зуемых в блоке программы:

 

N:=0;

Cpr:=0;

Ctrns:=0;

D:=0;

While N<100000 do

Begin

If (e<=s)

Then Cpr=Cpr+1;

If (e>s)

Then Ctrns=Ctrns+1;

N=N+1;

End;

 

ƒостоинство пошаговой детализации состоит в том, что она позво≠л€ет проектировщику упор€дочить свои рассуждени€. јльтернативный подход Ц попытка написать окончательный текст модул€ за один шаг Ц го≠раздо более сложен и чреват ошибками. Ўаги детализации программы Ц не академические и теоретические рассуждени€, а в точности тот метод, ко≠торым разрабатывалась данна€ программа.

ќдна из св€занных с описанным методом проблем состоит в том, что все варианты, кроме заключительного, по-видимому, тотчас же выбрасы≠ваютс€. Ёто, похоже, расточительство, поскольку предыдущие шаги фик≠сировали различные уровни абстракции логики и ход мысли разработчика. „тобы как-то сохранить информацию об этой работе, исходный вариант следует поместить в качестве комментари€ перед текстом программы на €зыке программировани€.

 





ѕоделитьс€ с друзь€ми:


ƒата добавлени€: 2015-05-08; ћы поможем в написании ваших работ!; просмотров: 1435 | Ќарушение авторских прав


ѕоиск на сайте:

Ћучшие изречени€:

—тудент может не знать в двух случа€х: не знал, или забыл. © Ќеизвестно
==> читать все изречени€...

1046 - | 677 -


© 2015-2023 lektsii.org -  онтакты - ѕоследнее добавление

√ен: 0.008 с.