«аочное дистанционное образование с получением государственного диплома через Internet










ѕолучить информацию о поступлении
 
√лавна€ Ќовости  арта сайта ‘отоальбом √остева€ книга  онтакты

ќсновы безошибочного программировани€
јнализ правильности алгоритмов

 

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

ѕри создании средних по размеру приложений (несколько тыс€ч строк исходного кода) используетс€ структурное программирование, иде€ которого заключаетс€ в том, что структура программы должна отражать структуру решаемой задачи, чтобы алгоритм решени€ был €сно виден из исходного текста. ƒл€ этого надо иметь средства дл€ создани€ программы не только с помощью трех простых операторов, но и с помощью средств, более точно отражающих конкретную структуру алгоритма. — этой целью в программирование введено пон€тие подпрограммы Ц набора операторов, выполн€ющих нужное действие и не завис€щих от других частей исходного кода. ѕрограмма разбиваетс€ на множество мелких подпрограмм, кажда€ из которых выполн€ет одно из действий, предусмотренных исходным заданием.  омбиниру€ эти подпрограммы, удаетс€ формировать итоговый алгоритм уже не из простых операторов, а из законченных блоков кода, имеющих определенную смысловую нагрузку, причем обращатьс€ к таким блокам можно по названи€м.
 
»деи структурного программировани€ по€вились в начале 70-годов в компании IBM, в их разработке участвовали известные ученые Ё. ƒейкстра, ’. ћилс, Ё.  нут, —. ’оор.

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

“ипы управл€ющих структур:
Ц последовательность;
Ц альтернатива (условие выбора);
Ц цикл.
 
–аспространены две методики (стратегии) разработки программ, относ€щиес€ к структурному программированию:
Ц программирование Ђсверху внизї;
Ц программирование Ђснизу вверхї.

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

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

¬ данном случае программа конструируетс€ иерархически - сверху вниз: от главной программы к подпрограммам самого нижнего уровн€, причем на каждом уровне используютс€ только простые последовательности инструкций, циклы и условные разветвлени€.

“акой подход удобен тем, что позвол€ет человеку посто€нно мыслить на предметном уровне, не опуска€сь до конкретных операторов и переменных.  роме того, по€вл€етс€ возможность некоторые подпрограммы не реализовывать сразу, а временно откладывать, пока не будут закончены другие части. Ќапример, если имеетс€ необходимость вычислени€ сложной математической функции, то выдел€етс€ отдельна€ подпрограмма такого вычислени€, но реализуетс€ она временно одним оператором, который просто присваивает заранее выбранное значение (например, 5).  огда все приложение будет написано и отлажено, тогда можно приступить к реализации этой функции.
 
ѕрограммирование Ђснизу вверхї, или восход€щее программирование Ц это методика разработки программ, начинающа€с€ с разработки подпрограмм (процедур, функций), в то врем€ когда проработка общей схемы не закончилась.

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

ќчень важна€ характеристика подпрограмм Ц это возможность их повторного использовани€. — интегрированными системами программировани€ поставл€ютс€ большие библиотеки стандартных подпрограмм, которые позвол€ют значительно повысить производительность труда за счет использовани€ чужой работы по созданию часто примен€емых подпрограмм.

ѕодпрограммы бывают двух видов Ц процедуры и функции. ќтличаютс€ они тем, что процедура просто выполн€ет группу операторов, а функци€ вдобавок вычисл€ет некоторое значение и передает его обратно в главную программу (возвращает значение). Ёто значение имеет определенный тип.

„тобы работа подпрограммы имела смысл, ей надо получить данные из внешней программы, котора€ эту подпрограмму вызывает. ƒанные передаютс€ подпрограмме в виде параметров или аргументов, которые обычно описываютс€ в ее заголовке так же, как переменные.

ѕодпрограммы вызываютс€, как правило, путем простой записи их названи€ с нужными параметрами.

ѕодпрограммы активизируютс€ только в момент их вызова. ќператоры.  оторые наход€тс€ внутри подпрограммы, выполн€ютс€, только если эта подпрограмма €вно вызвана.

ѕодпрограммы могут быть вложенными Ц допускаетс€ вызов подпрограммы не только из главной программ, но и из любых других программ.

¬ некоторых €зыках программировани€ допускаетс€ вызов подпрограммы из себ€ самой. “акой прием называетс€ рекурсией и опасен тем, что может привести к зацикливанию Ц бесконечному самовызову.
 
ƒостоинства структурного программировани€:
Ц повышаетс€ надежность программ (благодар€ хорошему структурированию при проектировании, программа легко поддаетс€ тестированию и не создает проблем при отладке);
Ц повышаетс€ эффективность программ (структурирование программы позвол€ет легко находить и корректировать ошибки, а отдельные подпрограммы можно переделывать (модифицировать) независимо от других);
Ц уменьшаетс€ врем€ и стоимость программной разработки;
Ц улучшаетс€ читабельность программ.
 
“аким образом, технологи€ структурного программировани€ при разработке серьезных программных комплексов, основана на следующих принципах:
Ц программирование должно осуществл€тьс€ сверху вниз;
Ц весь проект должен быть разбит на модули (подпрограммы) с одним входом и одним выходом;
Ц подпрограмма должна допускать только три основные структуры Ц последовательное выполнение, ветвление (if, case) и повторение (for, while, repeat).
Ц недопустим оператор передачи управлени€ в любую точку программы (goto);
Ц документаци€ должна создаватьс€ одновременно с программированием в виде комментариев к программе.

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



 
     
   
 


ѕриглашаем прин€ть участие в круглом столе!
подробнее   >>>
 

»нститут ћенеджмента, Ёкономики и »нноваций начинает набор на курсы повышени€ квалификации!
подробнее   >>>
 

”важемые студенты јЌќ ¬ѕќ »ћЁи»!
подробнее   >>>
 

Ќачинаетс€ набор на курсы повышени€ квалификации!
подробнее   >>>
 

ѕриглашаем прин€ть участие в конференци€х!
подробнее   >>>
 


все новости...

 


–ассылки Subscribe.Ru
—овременное образование
ѕодписатьс€ письмом