реферат. Контрольная работа по дисциплине Программирование финансовых операций Процедуры и функции пользователя. Описание и вызов процедур и функций
![]()
|
Министерство сельского хозяйства Российской Федерации Департамент образования научно-технологической политики и рыбохозяйственного комплекса Федеральное государственное бюджетное образовательное учреждение высшего образования "Костромская государственная сельскохозяйственная академия" Экономический факультет Направление подготовки: 38.03.01 «Экономика» Профиль: «Финансы и кредит»/»Бухгалтерский учет, анализ и аудит» Кафедра бухгалтерского учета и информационных систем в экономике КОНТРОЛЬНАЯ РАБОТА по дисциплине «Программирование финансовых операций»/ «Процедуры и функции пользователя. Описание и вызов процедур и функций» Вариант № 11
Караваево 2022 Введение Впрактике программирования часто встречается ситуация, когда одну иту же группу операторов требуется повторить без изменений несколько раз в различных местах программы. Для реализации подобной ситуации используется концепция подпрограмм. Подпрограмма - это именованная, логически законченная группа операторов языка, которую можно вызвать по имени для выполнения любое количество раз из различных мест программы. Для организации подпрограмм используются процедуры и функции. Процедура - это независимая поименованная часть программы, предназначенная для выполнения определенных действий. По структуре ее можно рассматривать как программу в миниатюре. После однократного описания процедуру можно вызвать по имени из последующих частей программы. Вызов процедуры по имени называется оператором вызова. После выполнения процедуры, управление передается в точку вызова и выполнение программы продолжается с оператора, следующего непосредственно за оператором вызова процедуры. Отличительные особенности процедуры: • имя процедуры не может находиться в выражении в качестве операнда; • процедура может передать в точку вызова любое количество значений (результат работы процедуры). Функция аналогична процедуре. Отличительные особенности функции: • имя функции может входить в выражение в качестве операнда (при этом оно называется указателем функции или обращением к функции); • функция может передать в точку вызова единственное скалярное значение (результат работы функции). Все процедуры и функции можно разделить на две группы: встроенные иопределенные пользователем 3 Встроенные (стандартные) процедуры и функции являются частью языка программирования и могут вызываться по имени без предварительного определения в разделе описаний. Процедуры и функции пользователя организовываются самим пользователем в соответствии с синтаксисом языка и представляют собой локальный блок. Предварительное описание процедур и функций пользователя обязательно. Допускаются различные способы размещения подпрограмм. В данных методических указаниях рассматривается способ, когда основная программа, процедуры и функции расположены в одном файле. 4 1. Процедуры пользователя Процедура пользователя представляет собой группу операторов, которые реализуют определенную часть общей задачи и вызываются при необходимости для выполнения по имени из любой позиции раздела операторов. 1.1. Описание процедуры пользователя Описание процедуры пользователя состоит из заголовка и тела процедуры. Формат заголовка: Procedure <имя> (формальные параметры); где Procedure - зарезервированное слово; имя - идентификатор имени процедуры, уникальный в пределах программы; формальные параметры - список формальных параметров с указанием типа каждого параметра. Список может отсутствовать. В этом случае заголовок имеет следующий вид: Procedure <имя>; Пример заголовка процедуры: Procedure Sort (A : Integer; В : Real); Procedure Kvadro (Alfa, Beta : Integer; Gamma : Boolean); Procedure Summa; Тело процедуры представляет собой локальный блок, по структуре аналогичный основной программе. Поэтому полный формат процедуры пользователя имеет следующий вид: Procedure <имя> (формальные параметры); <разделы описаний> begin <раздел операторов> end; 5 1.2. Обращение к процедуре пользователя Для обращения к процедуре используется оператор вызова процедуры. Формат оператора вызова процедуры: <имя> (фактические параметры); где имя - идентификатор имени процедуры, уникальный в пределах программы; фактические параметры - список параметров, значения которых заданы или вычислены к моменту обращения к процедуре Список фактических параметров может отсутствовать, если в заголовке процедуры отсутствует список формальных параметров. Пример обращения к процедуре: Sort(A1,B1); Kvadro(14,25 True); Summa; Пример программы с использованием процедуры пользователя: Program Examplel; Const N=64; Procedure Draw; Var i: Integer; Begin For i:=1 To N Do Wrlte('*'); End; Begin Draw; Draw; Draw; End. В результате работы процедуры Draw строка экрана длинной 64 позиции заполняется символом * столько раз, сколько раз происходит обращение к подпрограмме Draw в основной программе (в приведенном примере 3 раза). 2. Функции пользователя Хотя набор встроенных функций языка Паскаль достаточно широк, он вряд ли может удовлетворить требованиям каждого пользователя. Поэтому пользователю предоставлена возможность реализовывать нужные ему алгоритмы в виде функций и обращаться к ним из программы по мере необходимости. 6 2.1. Описание функции пользователя Описание функции определенной пользователем состоит из заголовка и тела функции. Формат заголовка: Function <имя> (формальные параметры): <тип результата>; где Function - зарезервированное слово; имя - идентификатор имени функции, уникальный в пределах программы; формальные параметры - список формальных параметров с указанием типа каждого параметра; тип результата - любой скалярный тип. Список формальных параметров может отсутствовать. В этом случае заголовок имеет следующий вид: Function <имя>: <тип peзультата>; Пример заголовка функции: Function Prov (X, Y, Т: Integer; В : Real) : Real; Procedure Zx: Boolean; Тело функции представляет собой локальный блок, по структуре аналогичный основной программе. Поэтому полный формат функции пользователя имеет следующий вид: Function <имя>(формальные параметры): <тип результата>; <разделы описаний> begin <:раздел операторов> end; Замечание. В разделе операторов должен находиться, по крайней мере, один оператор, который присваивает имени функции значение полученного результата. Если таких операторов несколько, то результатом выполнения функции будет значение последнего выполненного оператора присваивания. 2.2. Обращение к функции пользователя Обращение к функции осуществляется по имени с указанием списка 7 фактических параметров. Обращение является операндом и может быть записано в любом операторе, допускающем указание имени функции в качестве операнда. Обычно обращение указывается в операторе присваивания или в операторе обращения к процедуре вывода. Формат обращения: <имя> (фактические параметры), где имя - идентификатор имени функции, уникальный в пределах программы; фактические параметры - список параметров, значения которых заданы или вычислены к моменту обращения к функции. Список фактических параметров может отсутствовать, если в заголовке функции отсутствует список формальных параметров. Пример обращения к функции: Z:=A+2*Prov(X1,Y1,T1); F:=Zx; Пример программы с использованием функции пользователя: Program Example2; Var Z1, Z2, AZ1, AZ2 : Real; Function Step(F: Real; N; Integer): Real; Var R : Real; i: Integer; Begin If N<>0 Then begin R:=F; For i:=2 To Abs(N) Do R:=R*F; If N<0 Then Step:= 1/R Else Step:= R; end Else Step= 1; End; Begin Read(Z1, Z2); Writeln(Z1:8:2, Z2:8:2) AZ1:= Step(Z1,4); AZ2:= Step(Z2,5); Writeln (AZ1:8:2); Writeln(Step(Z1, -4):8:2); Writeln (AZ2:8:2); Writeln(Step(Z2, -5):8:2); End. 8 В результате работы функции Step переменная вещественного типа возводится в целую положительную или отрицательную степень. В приведенном примере, Z1 возводится в степень 4, и в степень - 4, a Z2 - в степень 5 и в степень -5. 3. Параметры Параметры процедур и функций обеспечивают механизм замены, который позволяет выполнять подпрограмму с различными начальными данными. Механизм замены заключается в том, что при каждом обращении к подпрограмме формальные параметры заменяются на соответствующие им фактические параметры. Между фактическими и формальными параметрами устанавливается взаимно-однозначное соответствие в результате их перебора слева направо. Поэтому количество, тип и порядок следования фактических параметров должен соответствовать количеству, типу и порядку следования фактических параметров. Параметры могут иметь любой тип, включая структурированный. Формальные параметры можно разбить на следующие категории: •параметры-значения; •параметры-переменные; •параметры-константы; •параметры-процeдуры и параметры-функции; Наиболее часто используются параметры-значения и параметрыпеременные. Рассмотрим эти категории более подробно. 3.1. Параметры-значения Если параметры передаются по значениям, то формальный параметр является переменной, локальной в блоке. Фактический параметр должен быть выражением того же типа, что и соответствующий ему формальный параметр. Такие параметры называются параметрами-значениями. Отличительные особенности параметров-значений: • изменение формальных параметров не влечет за собой изменения 9 соответствующих фактических параметров; • при описании параметров-значений в списке формальных параметров перед ними не ставится никакого зарезервированного слова. Приведем пример типичной записи параметров-значений в описании процедур и функций пользователя: Procedure Копс (А, B, С: Integer; D : Real); Function Docs (S1, S2 : Real; Flag: Boolean) : Real; Вданном случае параметры A, В, C, D, S1, S2, Flag описаны как параметры-значения. Пример программы с использованием параметров-значений: Program Example3; Procedure Square(N: Integer); Var i,j: Integer; Begin For i:=1 To N Do begin For j:=1 To N Do Write('*'); Writeln; end End; Begin Square(3); Writeln; Square(5); End. Врезультате работы процедуры Square на экране рисуется квадрат размера N*N. Формальный параметр N описан как параметр-значение. В приведенном примере рисуется квадрат размером 3*3, а затем - размером 5*5. 3.2. Параметры-переменные Если параметр передается как переменная, то соответствующий ему фактический параметр также является переменной. Формальный параметр обозначает эту фактическую переменную в течение всего времени 10 активизации процедуры. Такие параметры называются параметрамипеременными Отличительные особенности параметров-переменных: •любое изменение формального параметра влечет за собой изменение соответствующего фактического параметра; •при описании в списке формальных параметров перед ними ставится зарезервированное слово Var; Приведем пример типичной записи параметров-переменных в описании процедур пользователя: Procedure Копc (Var A, В, С : Integer; Var D : Real);
End В процедуре Change формальные параметры X, Y описаны как параметры-переменные. Результат работы приведенной программы имеет следующий вид: А= 10 В=-10 A= -10 B= 10 11 А= 10 В=-10 Замечания: 1.Параметры-переменные обычно используются в процедурах пользователя. Использование их в функциях не желательно, так как если функция изменяет значения формальных параметров, это нарушает структурированность программы. 2.Допускается сочетание параметров-переменных и параметровзначений в одной секции формальных параметров, например. Procedure Mix (А, В, С: Real; VarX, Y, Z: Real); 3.Если формальные параметры имеют структурированный тип, например массив, то этот тип должен быть предварительно описан в разделе описания типов, например. Type Massiv – Array(1..100] of Real; Procedure Inp(k: Integer; Var H: Massiv); 4.Если результаты выполнения процедуры необходимо возвратить вточку вызова, они должны быть описаны как параметры-переменные. В противном случае результаты работы процедуры не будут возвращены. Пример программы с использованием различий между параметрамизначениями и параметрами-переменными: Program Ехатрle5; Var А, В: Integer; Procedure Add(X: Integer; Var Y: Integer); Begin X:=X+10; Y:= Y-10; Writeln('X=', X:3, ' Y=', Y:3); End; Begin A:=0; B:=0; Writeln('A=', A:3, 'B=', B:3); Add(A,B); Writeln('A =', A:3, ' B=', B:3); End. В процедуре Add формальный параметр X описан как параметрзначение, поэтому изменение формального параметра X не влечет за собой изменение соответствующего фактического параметра A. Параметр Y описан 12 как параметр-переменная, поэтому изменение формального параметра Y влечет за собой изменение фактического параметра В. Результат работы приведенной программы имеет следующий вид: А= 0 В= 0 Х=10 Y= -10 А= 0 В=-10 4. Область действия идентификаторов Программа на языке Паскаль имеет модульную структуру и может состоять из ряда вложенных друг в друга блоков. Основная программа - это блок, который не входит ни в какой другой. Объекты, описанные в этом блоке, являются глобальными и могут использоваться во всех вложенных блоках. Вложенные блоки - это процедуры и функции. Описанные в них объекты локальны и недоступны во внешних блоках. Для правильного использования и определения области действия идентификаторов необходимо придерживаться следующих правил: 1.Каждый идентификатор должен быть описан перед тем, как он будет использован. 2.Областью действия идентификатора является блок, в котором он описан. 3.Все идентификаторы в блоке должны быть уникальными, т.е. не должны повторяться. 4.Один и тот же идентификатор может быть по-разному определен в каждом отдельном блоке. 5.Если идентификатор программы пользователя совпадает с именем стандартной процедуры или функции, то последние недоступны в пределах области действия подпрограммы, объявленной пользователем, т.е. стандартная процедура или функция игнорируется, а выполняется процедура или функция пользователя. Список литературы 1 Фаронов В.В. Турбо Паскаль 7.0. Начальный курс: Учебное пособие / В. В. Фаронов. - М. : Нолидж, 1997. - 616 с. 2.Фаронов В.В. Турбо Паскаль 7.0. Практика программирования : Учебное пособие / В.В. Фаронов. - М. : Нолидж, 1997. - 432 с. 3.Епанешников А.Н. Программирование в среде Turbo Pascal 7.0 / АН. Епанешников, В.Н Епанешников. - 3-е изд. - М.: Диалог-МИФИ, 1996. - 288с. 4.Турбо Паскаль 7.0 - К.: Торгово-издательское бюро BHV, 1996. - 448 с. 5.Зубов B.C. Программирование на языке Turbo Pascal (версии 6.0 и 7.0). Справочник по процедурам, функциям, диагностическим сообщениям / ВС. Зубов. - 3-е изд. - М.: Инф.-изд. дом «Филинь», 1997. - 320 с. 6.Пильщиков В.Н. Сборник задач и упражнений по языку Паскаль. Учеб. пособие для вузов / В.Н. Пильщиков. М.: Наука, 1989. — 160 с.0> |