Студопедия Главная Случайная страница Обратная связь

Разделы: Автомобили Астрономия Биология География Дом и сад Другие языки Другое Информатика История Культура Литература Логика Математика Медицина Металлургия Механика Образование Охрана труда Педагогика Политика Право Психология Религия Риторика Социология Спорт Строительство Технология Туризм Физика Философия Финансы Химия Черчение Экология Экономика Электроника

Пример. Найти приближенное значение суммы ряда , учитывающее все слагаемые, от начала ряда до первого, величина которого меньше e = 0,0001





Найти приближенное значение суммы ряда ,
учитывающее все слагаемые, от начала ряда до первого, величина которого меньше e = 0,0001.
Решение:

Program SumRow;
Сonst e=1E-4; {точность вычислений}

 

 

C.10.4. Лекция 4 (2 часа) Понятие процедур и функций. Стандартные (встроенные) функции и функции пользователя. Описание процедур и функций и их параметров. Использование готовых процедур и функций (модулей). Формальные и фактические параметры, ограничения на их типы и описания. Параметры – значения и параметры – переменные. Механизм передачи параметров. Примеры программ с процедурами и функциями.

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

Procedure <;имя > (<;список формальных параметров >);

Заголовок функции:

Function <;имя >(<;список формальных параметров >): <;тип >;;

Список формальных параметров необязателен и может отсутствовать. Если же он есть, то в нем должны быть перечислены имена формальных параметров и их тип. Несколько однотипных параметров можно объединять в подсписки, например:
Procedure SB(a: Real; b,d: Integer; c: Char);
Операторы подпрограммы рассматривают список формальных параметров как своеобразное расширение раздела описаний: все переменные из этого списка могут использоваться внутри подпрограммы.
Обращение к подпрограммам осуществляется указанием имени подпрограммы и списка фактических параметров, в качестве которых могут выступать константы, переменные и выражения, отделяемые друг от друга запятой. Количество и типы фактических параметров при обращении к подпрограмме должны точно соответствовать количеству и типам ее формальных параметров. В момент обращения к подпрограмме происходит замена формальных параметров на фактические. Таким образом осуществляется настройка алгоритма подпрограммы на конкретную задачу. Само обращение к процедурам и функциям происходит по разному. Для обращения к процедуре используется специальный оператор, состоящий из имени процедуры и списка фактических параметров. Для обращения к функции ее имя со списком фактических параметров должно войти как операнд в некоторое выражение. Отсюда вытекает несколько отличий описания функции от описания процедуры:
- в виде функции описывается алгоритм, результатом выполнения которого является скалярная величина;
- в блоке функции должен быть хотя бы один оператор присваивания с именем функции в левой части;
- в заголовке функции должен быть указан тип функции (тип возвращаемого через имя функции результата).
Любой из формальных параметров подпрограммы может быть либо параметром-значением, либо параметром-переменной.
В предыдущем примере параметры были определены как параметры-значения. Если параметры определяются как параметры-переменные, перед ними необходимо ставить зарезервированное слово Var, например:
Procedure FF(Var a: Real);
Если формальный параметр объявлен как параметр-переменная, то при обращении к подпрограмме ему должен соответствовать фактический параметр в виде переменной нужного типа; если формальный параметр объявлен как параметр-значение, то при обращении ему может соответствовать выражение.
Для того, чтобы понять, в каких случаях использовать параметры-значения, а в каких - параметры переменные, рассмотрим, как осуществляется замена формальных параметров на фактические в момент обращения к подпрограмме.
Если параметр определен как параметр-значение, то перед вызовом подпрограммы это значение вычисляется, полученный результат копируется во временную память и передается подпрограмме. Если же параметр определен как параметр-переменная, то при вызове подпрограммы передается сама переменная, а не ее копия. Любые возможные изменения в подпрограмме параметра-значения никак не воспринимаются вызывающей программой, так как в этом случае изменяется копия фактического параметра, в то время как изменения параметра-переменной приводит к изменению самого фактического параметра в вызывающей программе.
Поэтому параметры-переменные могут использоваться как "средство связи" алгоритма, реализованного в подпрограмме, с “внешним миром”, в частности, с помощью этих параметров процедура передает результаты своей работы вызывающей программе.
Однако, злоупотребление этими возможностями делает программу, как правило, трудной в понимании и сложной в отладке. В соответствии с требованиями хорошего стиля программирования рекомендуется использовать передачу результатов через фактические параметры для процедур и через имя для функций.
Переменные, описанные в разделе описаний переменных подпрограммы, называются локальными переменными этой подпрограммы и доступны только в ней.
Концепция глобальных и локальных имен относится не только к переменным но и к другим описываемым объектам Паскаля: константам, типам, процедурам и функциям.

Пример.
В программе задается два целых числа 5 и 7, эти числа передаются процедуре Inc2, в которой они удваиваются. Один из параметров передается как параметр-переменная, другой - как параметр-значение. Значения параметров до и после вызова процедуры, а так же результат их удвоения выводятся на экран.

Program Exampl;
Var a,b: Integer;
Procedure Inc2(Var c: Integer; b: Integer);
Begin
c:= c + c;
b:= b + b;
Writeln(‘Удвоенные:’, c:5, b:5)
End; {Inc2}
Begin {Main}
a:=5; b:=7;
Writeln(‘Исходные:’, a:5, b:5); Inc2(a, b);
Writeln(‘Результат:’, a:5, b:5)
End. {Main}

В результате прогона программы будет выведено:

Исходные: 5 7

Удвоенные: 10 14

Результат: 10 7

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

Program Calc;
Var n,m: Integer; f: Real;
Function fact(n: Integer): Integer;
Var i,p: Integer;
Begin p:=1;
For i:=2 To n do p:= p* i;
fact:= p
End;
Begin
Read(m,n);
f:= fact(n) * fact(m) / fact(n+m);
Writeln(f)
End.

 

 







Дата добавления: 2015-09-04; просмотров: 569. Нарушение авторских прав; Мы поможем в написании вашей работы!




Важнейшие способы обработки и анализа рядов динамики Не во всех случаях эмпирические данные рядов динамики позволяют определить тенденцию изменения явления во времени...


ТЕОРЕТИЧЕСКАЯ МЕХАНИКА Статика является частью теоретической механики, изучающей условия, при ко­торых тело находится под действием заданной системы сил...


Теория усилителей. Схема Основная масса современных аналоговых и аналого-цифровых электронных устройств выполняется на специализированных микросхемах...


Логические цифровые микросхемы Более сложные элементы цифровой схемотехники (триггеры, мультиплексоры, декодеры и т.д.) не имеют...

ОПРЕДЕЛЕНИЕ ЦЕНТРА ТЯЖЕСТИ ПЛОСКОЙ ФИГУРЫ Сила, с которой тело притягивается к Земле, называется силой тяжести...

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

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

Интуитивное мышление Мышление — это пси­хический процесс, обеспечивающий познание сущности предме­тов и явлений и самого субъекта...

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

Законы Генри, Дальтона, Сеченова. Применение этих законов при лечении кессонной болезни, лечении в барокамере и исследовании электролитного состава крови Закон Генри: Количество газа, растворенного при данной температуре в определенном объеме жидкости, при равновесии прямо пропорциональны давлению газа...

Studopedia.info - Студопедия - 2014-2025 год . (0.008 сек.) русская версия | украинская версия