28616

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

Доклад

Информатика, кибернетика и программирование

Функции Другой вид подпрограммыфункцияоформляется аналогично процедуре. Отличительные особенности функции: она имеет только один результат выполнения но может иметь несколько входных параметров; результат обозначается именем функции и передаётся в основную программу. Функция оформляется в следующем виде: Function имя функции формальные параметры: тип: тип значения функции; Var . Вызов функции можно делать непосредственно внутри выражения.

Русский

2013-08-20

21.26 KB

1 чел.

Подпрограмма - это отдельная функционально независимая часть программы. Любая подпрограмма обладает той же структурой, которой обладает и вся программа. Подпрограммы решают три важные задачи:

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

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

  1.  Когда Вы несколько раз перепишите в программе одни и те же последовательности команд, необходимость введения подпрограммы приобретает характер острой внутренней потребности.
  2.  Иногда слишком много мелочей закрывают главное. Полезно убрать в подпрограмму подробности, заслоняющие смысл основной программы. Полезно разбить длинную программу на составные части - просто как книгу разбивают на главы. При этом основная программа становится похожей на оглавление.
  3.  Бывают сложные частные алгоритмы. Полезно отладить их отдельно в небольших тестирующих программах. Включение программ с отлаженными алгоритмами в основную программу будет легким, если они оформлены как подпрограммы.
  4.  Все, что Вы сделали хорошо в одной программе, Вам захочется перенести в новые. Для повторного использования таких частей лучше сразу выделять в программе полезные алгоритмы в отдельные подпрограммы.

Подпрограммы могут быть стандартными, т.е. определенными системой, и собственными, т.е. определенными программистом.

Стандартная подпрограмма (процедура или функция) - подпрограмма, включенная в библиотеку программ ЭВМ, доступ к которой обеспечивается средствами языка программирования. Вызывается она по имени с заданием фактических параметров с типом описанным при описании данной процедуры в библиотечке процедур и функций.

Из набора стандартных процедур и функций по обработке одного типа информации составляются модули. Каждый модуль имеет своё имя (мы уже хорошо знакомы с модулями Crt, Graph). Доступ к процедурам и функциям модуля осуществляется при подключении этого модуля (Uses Crt, Graph).

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

Процедуры

Структура процедуры имеет следующий вид:

Procedure <имя процедуры>(формальные параметры : их тип);

Var

    (локальные переменные)

begin

     . . .

end;

Процедура вызывается по имени:

<имя процедуры> (фактические параметры);

Значение каждого фактического параметра при вызове процедуры передаётся формальному параметру. Временно управление передаётся процедуре. После завершения работы процедуры управление возвращается в основную программу.

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

Заголовок процедуры может выглядеть так:

PROCEDURE GG(a,b,c:integer); вызываться так: GG(3,n,m)

Здесь a,b,c-формальные параметры, а 3, n, m-фактические параметры

Таким образом в процедуру передаются значения: a=3, b=n, c=m

Переменные описанные в процедуре после слова Var, являются внутренними переменными процедуры или промежуточными, они не являются данными для операций внутри процедуры и не являются результатом её выполнения, а нужны лишь для промежуточных действий. Данные и результаты описываются в круглых скобках после имени процедуры. Перед описанием переменных-результатов пишут служебное слово var.

Например:

Procedure express(a,b,c : real; var x,y:real);

Var

  z : real;

begin

  z:=a+ b+ c;

  x:=sqr(z);

  y:=sqrt(z);

end ;

Эту процедуру можно вызвать следующим образом:

express(7.6, 6.8, 9.5, x1, x2);

Формальные входные параметры a, b, c принимают значения соответствующих фактических параметров a=7.6; b=6.8; c=9.5.

При этих значениях выполняется процедура. Результатом выполнения процедуры являются x, y, которые передают свои значения соответствующим фактическим параметрам x1, y1. Таким образом в основной программе будем иметь x1=20, y1=22.

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

Функции

Другой вид подпрограммы-функция-оформляется аналогично процедуре. Отличительные особенности функции: она имеет только один результат выполнения (но может иметь несколько входных параметров); результат обозначается именем функции и передаётся в основную программу. Функция оформляется в следующем виде:

Function <имя функции>(формальные параметры: тип): тип значения функции;

Var

  . . .

Begin

  . . .

End.

Вызывается функция по её имени с указанием фактических параметров.

Вызов функции можно делать непосредственно внутри выражения. При вызове функции тип не указывается.

Различие между процедурами и функциями

Функции - это процедуры особого характера, результатом работы которых является некоторое значение, подобное переменной. Функция, как и процедура, может иметь список параметров, следующих за именем функции в круглых скобках. Но если имя процедуры используется только для ее вызова, то с именем функции связывается ее значение. На примере сложения двух целых чисел проиллюстрируем возможности Турбо Паскаля 7.0 по оформлению программ при помощи процедур и функций, а также рассмотрим различия между этими двумя подходами.

Program ProcedureAndFunction;

Uses

 Crt;

Var

 a, b, SumNumbers : integer;

Procedure Summa1(Var Sum: integer; a, b : integer);

Begin

 Sum:= a+b;

End;

 

Function Sum(a, b : integer) : integer;

Begin

 Sum:= a+b;

End;

 

Begin

 ClrScr;

 a := 12;

 b := 15;

 Summa1(SumNumbers, a, b);

 writeln ('С помощью процедуры сумма чисел равна ',SumNumbers);

 writeln ('С помощью функции сумма чисел равна ',Sum(a, b));

End.

Вызов процедуры производится по ее имени. Наряду с параметрами-значениями a и b, которые подлежат сложению, в списке параметров присутствует параметр-переменная Sum, который содержит возвращаемое процедурой значение - сумму. Функция же имеет только два параметра. Это связано с тем, что само имя функции представляет собой идентификатор параметра, значение которого после окончания работы функции равно результату вычисления. Этот параметр соответствует параметру-переменной Sum процедуры. При объявлении функции ей в соответствие ставят определенный тип данных - тип возвращаемого функцией значения.

Объявление функции

Function Sum(a, b : integer) : integer;

внешне похоже на объявление переменной Sum типа integer. Тип функции объявляется следом за списком параметров - после закрывающейся скобки этого списка и двоеточия.

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

SumNumbers:= Sum(a,b);

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

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

Итак, из вышесказанного возьмите на заметку следующее:

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


 

А также другие работы, которые могут Вас заинтересовать

41119. Общие сведения о SQL 3.27 MB
  Сегодня Oracle поставляет на мировой рынок огромное количество продуктов, услуг и решений, ее штат насчитывает более 43 тыс. человек, и доход этой компании, превысивший в 2000 году 10 млрд. долл., определяется не только продажами СУБД.
41120. Параллельные вычислительные системы 467 KB
  К распараллеливанию прибегают при проектировании отдельных устройств ЭВМ устройств управления буферов команд каналов обращения к памяти и модулей памяти многофункциональных арифметическологических устройств АЛУ повсеместно применяемых конвейеров и т. Сложилось представление о двух основных уровнях на которых в ВС применяются практические методы распараллеливания: на уровне программ процессов процедур первый уровень распараллеливания; на уровне команд и операций второй уровень распараллеливания. Уровень команд и операций...
41121. ПСИХОЛОГІЯ СТРАХУ ТА ФОБІЙ 69.5 KB
  Ознайомити студентів з особливостями емоції страху. Основні завдання: Охарактеризувати страх як емоційний стан поняття психологічна характеристика переживання страху причини та види страхів; Охарактеризувати фобію як емоційний стан; Порівняння емоцій страху та фобій; Визначити психотерапевтичні методи подолання страхів та фобій. Визначення емоційного стану людини за зовнішніми показниками Після читання лекції Характеристика страху та фобії; причини та наслідки переживання страхів та фобій; знання основних методів...
41122. учасні приклади біотехнологій в архітектурі.Об’єкти екологічного дизайну 1.48 MB
  Біосферна концепція розвитку екосистеми міста дизайнерські рішення як один з запобіжних факторів по зменшенню антропогенного навантаження на довкілля сучасні приклади проектування біопозитивних споруд В наш час багато Європейських організацій в тому числі і урядових структур погоджуються з тим що міста відіграють надзвичайно важливу роль в питаннях повязаних із зміною клімату. Усвідомлення цієї концепції відбулося через численні конференції та обговорення внаслідок чого деякі організацій виробили чітке прогресивне бачення того як...
41123. Основные понятия программного обеспечения систем защиты информации 277.5 KB
  Быстро развивающиеся компьютерные информационные технологии вносят заметные изменения в нашу жизнь. Информация стала товаром, который можно приобрести, продать, обменять. При этом стоимость информации часто в сотни раз превосходит стоимость компьютерной системы, в которой она хранится.
41124. Техническая термодинамика и промышленная теплотехника 209.5 KB
  Если использовать в качестве тестового физического тела например руку то прикасаясь к стеклу мы скажем: стекло холодное. Из сказанного следует что для отдельного тела не контактирующего с другими телами понятие теплоты не может быть использовано. Такое тело имеет запас энергии само по себе даже при отсутствии взаимодействия с другими телами: если например тело движется с некоторой скоростью можно сказать что оно имеет некоторый запас энергии. В термодинамике принято тела нагретые больше по отношению к остальным называть...
41125. СУЩНОСТЬ И РАЗРАБОТКА МСФО 329.5 KB
  Совет также издает основы для заключений относительно МСФО и их проектов. Обязанностями Комитета являются: толкование применения МСФО и предоставление своевременных руководств тем кто выпускает финансовую отчетность по вопросам непосредственно не прописанным в МСФО или МСБУ; публикование проектов интерпретаций для публичных комментариев и рассмотрение полученных комментариев; предоставление отчетов Совету и получение одобренных Советом окончательных интерпретаций. В процессе разработки МСФО принимают...
41126. Загальний огляд інформаційно-пошукових правових систем 59 KB
  Навчальновиховна мета заняття: дати загальний огляд інформаційнопошукових правових систем Тип заняття: Наочність: Між предметні звязки: лекція таблиця інформаційнопошукових правових систем ЛІГА:ЗАКОН Кваліфікаційні вимоги до знань умінь навичок: Студенти повинні: Основні поняття інформаційнопошукових правових систем. Підведення підсумків уроку Які існують сучасні інформаційнопошукові системами Які ви знаєте види правової системи ЛігаЗакон Для чого призначена ЛігаЗакон Що знаходиться в системі ЛігаЗакон Що дуже вдало...
41127. Авторское право 79 KB
  Учения о природе авторского права Становление двух основных систем авторского права 1. В субъективном смысле авторское право совокупность правовых норм регулирующих личные неимущественные и имущественные права принадлежащие создателям произведений науки литературы и искусства. Предмет изучаемого курса включает в себя: систему правовой охраны творческих произведений авторскими и смежными правами; принципы и основные направления государственного регулирования авторского и смежных прав в Российской Федерации; объекты и субъекты...