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

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

Пример. Найти приближенное значение суммы ряда , учитывающее все слагаемые, от начала ряда до первого, величина которого меньше 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. Нарушение авторских прав; Мы поможем в написании вашей работы!




Расчетные и графические задания Равновесный объем - это объем, определяемый равенством спроса и предложения...


Кардиналистский и ординалистский подходы Кардиналистский (количественный подход) к анализу полезности основан на представлении о возможности измерения различных благ в условных единицах полезности...


Обзор компонентов Multisim Компоненты – это основа любой схемы, это все элементы, из которых она состоит. Multisim оперирует с двумя категориями...


Композиция из абстрактных геометрических фигур Данная композиция состоит из линий, штриховки, абстрактных геометрических форм...

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

Классификация ИС по признаку структурированности задач Так как основное назначение ИС – автоматизировать информационные процессы для решения определенных задач, то одна из основных классификаций – это классификация ИС по степени структурированности задач...

Внешняя политика России 1894- 1917 гг. Внешнюю политику Николая II и первый период его царствования определяли, по меньшей мере три важных фактора...

Билет №7 (1 вопрос) Язык как средство общения и форма существования национальной культуры. Русский литературный язык как нормированная и обработанная форма общенародного языка Важнейшая функция языка - коммуникативная функция, т.е. функция общения Язык представлен в двух своих разновидностях...

Патристика и схоластика как этап в средневековой философии Основной задачей теологии является толкование Священного писания, доказательство существования Бога и формулировка догматов Церкви...

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

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