Основы алгоритмизации

Автор: Пользователь скрыл имя, 23 Марта 2012 в 21:24, курс лекций

Краткое описание

Этапы решения задач на ЭВМ. Алгоритм и его свойства. Способы записи алгоритма: словесный способ; структурно-стилизованный способ; блочно-схематический способ; структурограммы Насси-Шнейдермана; программный способ.

Файлы: 1 файл

ЛЕКЦИИ ПО ИНФОРМАТИКЕ.doc

— 4.37 Мб (Скачать)

     S=S+A(I, J)

   NEXT I

 

 

 

 

B(J)=S : PRINT B(J);

NEXT J

END

 



Тема 17. Модульное программирование

Подпрограммы. Процедуры и функции

При создании программы для решения сложной задачи программисты выполняют разделение этой задачи на подзадачи, подзадачи – на еще меньшие подзадачи и так далее, до легко программируемых элементарных задач. QB позволяет разделять программу на отдельные части, которые называются подпрограммами. Сам термин подпрограмма говорит о том, что она подобна и подчинена основной программе. Подпрограммы решают три важные задачи, значительно облегчающие программирование:

      избавляют от необходимости многократно повторять в тексте программы аналогичные фрагменты, т.е. сократить объем программы;

      улучшают структуру программы, облегчая понимание при разборе;

      уменьшают вероятность появления ошибок, повышают устойчивость к ошибкам программирования и непредвиденным последствиям при модификации.

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

Принципы выделения подпрограмм:

      если в программе необходимо переписывать одни и те же последовательности команд, то стоит эту последовательность команд оформить в виде подпрограммы;

      иногда слишком много мелочей закрывают главное. Стоит перенести в подпрограмму подробности, заслоняющие основной смысл программы;

      слишком длинную программу полезно разбить на составные части;

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

      все, что сделано хорошо в одной программе, можно переносить в новые программы. Для повторного использования частей кода лучше сразу выделять в программе полезные подзадачи в виде отдельных подпрограмм.

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

Процедуры

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

Общий вид процедуры:

SUB имя [(формальные параметры)]

   [операторы]

[EXIT SUB]

   [операторы]

END SUB

Результат выполнения процедуры – это одно или несколько значений. Результат передается в основную программу как значение ее параметра. При вызове процедуры ее формальные параметры заменяются фактическими в порядке их следования.

Фактические параметры – это параметры, которые передаются процедуре при обращении к ней.

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

Число и тип формальных и фактических параметров должны совпадать с точностью до их следования. Все формальные параметры делятся на два вида: параметры-переменные и параметры-значения.

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

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

Областью действия переменной (идентификатора) называется часть программы, где она может быть использована. Область действия переменных определяется местом их объявления. В программе  все переменные делятся на глобальные и локальные. Глобальные переменные – это те переменные, которые объявлены в описании основной части, и их могут использовать любые процедуры и функции данной программы. Переменные, описанные внутри подпрограммы, называются локальными и могут быть использованы только внутри данной подпрограммы. Локальные переменные могут быть описаны как в заголовке программы, так и в разделе описания переменных. При совпадении имен глобальных и локальных переменных, локальные определения в пределах своего действия отменяют действия локальных, и эти переменные никак не связаны между собой.

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

Локальность или глобальность – понятия относительные. Программа с вложенными в нее подпрограммами представляет собой иерархическое дерево. Объект, локальный по отношению к более высокому уровню иерархии, ведет себя как глобальный по отношению к объектам более низкого уровня.

Задача 17.1. Вычислить площади двух прямоугольников.



INPUT A1, B1

C=A1 : D=B1 : CALL AREA

S1=S

INPUT A2, B2

C=A2 : D=B2 : CALL AREA

S2=S

PRINT ″S1=″;S1

PRINT ″S2=″;S2

END

SUB AREA

S=C*D

END SUB

 

 

 

 




Функции

Функции предназначены для того, чтобы вычислять только одно значение, поэтому ее первое отличие состоит в том, что процедура может иметь новые значения у нескольких параметров, а функция только одно (оно и будет ее результатом).

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

FUNCTION имя [(формальные параметры)]

   []

   имя=выражение

[EXIT FUNCTION]

   [операторы]

END FUNCTION

Например:

DECLARE FUNCTION TEST.RESULT$(ANSWER%)

? ″ Первый компьютер появился в″

? ″1) 1945 году ″

? ″2) 1955 году ″

? ″3) 1965 году ″

? ″Введите номер правильного ответа″

INPUT NUMBER%

TXT$=TEST.RESULT$(NUMBER%)

? TXT$

END

FUNCTION TEST.RESULT$(ANSWER%)

IF ANSWER%=1 THEN

   TEST.RESULT$= ″Верно″

ELSE

   TEST.RESULT$= ″Неверно″

END IF

END FUNCTION

 

 



Информация о работе Основы алгоритмизации