ПОСТРОЕНИЕ ПРОГРАММЫ СЛОЖНОЙ СТРУКТУРЫ С ИСПОЛЬЗОВАНИЕМГРАММ, ПРОЦЕДУР, ФУНКЦИЙ, ОПРЕДЕЛЯЕМЫХ ПОЛЬЗОВАТЕЛЕМ



           

При создании программ разработчик сталкивается с некоторыми нежелательными обстоятельствами:

1) Если программа достаточно объемна (количество операторов превышает 100-150), то время на отладку возрастает и сравнимо с временем затраченным на создание самой программы.

2) В большинстве программ встречаются повторяющиеся части, например: выведение горизонтальных линий при выводе результатов в табличной форме. Запись их резко увеличивает объем и делает процесс написания далеко не творческим.

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

Чтобы сделать программу более удобной, легко читаемой, а также, чтобы время на отладку было сравнимо с временем, затраченным на написание программы, желательно разбить ее на отдельные части. Каждую часть оформить в виде отдельных программных модулей, ограниченных либо объемом, либо общей повторяющейся частью, либо представляющей функционально законченную часть общей задачи. В ТБ это достигается использованием подпрограммы, процедуры и функции, определенной пользователем. Такое построение программы получило название программы сложной структуры. В этом случае модуль, из которого вызываются другие модули, получил название корневой, или основная программа. В литературе часто этот модуль называют программой – «монитор», так как в ней осуществляется диалог между пользователем и сообщениями о выполнении (невыполнении) того или иного модуля, входящего в состав программы сложной структуры.

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

 

Подпрограмма

 

Под подпрограммой будем понимать часть общей программы, оформленную по таким же синтаксическим правилам ТБ, как ранее рассматривались обыкновенные программы простой структуры.

 

Формат программы сложной структуры:

 

rem начало основной программы … gosub <метка> ------- --------               |---- метка строки, с которой начинается программа   |---- ключевое слово, оператор вызова подпрограммы … stop ‘конец основной программы

 

<метка> rem начало подпрограммы … return ‘ ключевое слово, оператор окончания подпрограммы      ‘ или оператор возврата в основную программу

 

Подпрограмма в общей структуре программы записывается после окончания основной (после оператора stop). Такое расположение подпрограммы получило название внешней подпрограммы. Слева от программных модулей, выделенных двумя прямоугольниками, стрелками <вниз>, <влево>, <вверх> и <вправо> схематично показан ход вычислительного процесса в программе сложной структуры с использованием подпрограммы: вычислительный процесс начинается с основной, при встрече с оператором gosub управление передается первому оператору подпрограммы, затем выполняются все операторы в подпрограмме, при встрече с оператором return происходит возврат в основную программу к оператору, стоящему за gosub, и выполняются оставшиеся операторы основной программы.

Операторов return в подпрограмме может быть несколько, каждый из них передает управление в основную в то место, место откуда была вызвана подпрограмма. Если необходимо изменить точку возврата, то оператор return надо записать так: return <p>, здесь <p> - метка оператора основной программы, куда пользователь желает передать управление.

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

Подпрограмма может вызываться другой подпрограммой, в этом случае она называется вложенной. ТБ разрешает использовать подпрограммы до пятого уровня вложенности. Ограничение связанно с размещением таблицы точек возврата оперативной памяти, создаваемым компилятором языка.

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

 


Дата добавления: 2021-11-30; просмотров: 20; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!