Автор работы: Пользователь скрыл имя, 02 Ноября 2011 в 21:39, реферат
описание прикладной информатики
Рассмотрим i – слагаемое этой суммы, т.е. необходимо вычислить значение P = iK и прибавить его к сумме, т.е. S = S + P
Опишем вычисление P
P = 1
For j = 1 to K
P = P * i
Next
S
= S + P
А теперь этот фрагмент нужно выполнить для всех значений i, изменяющихся от 1 до N, предварительно обнулив значение суммы S.
‘ Ввод N
‘ Ввод K
S = 0
For i = 1 to N
P = 1
For j = 1 to K
P = P * i
Next
S
= S + P
Next
‘ Вывод S
27
В некоторых задачах количество чисел в наборе неизвестно, но известен признак завершения ввода. Во всех задачах из задачника PT4 (группа Series) признаком завершения при вводе данных является число 0.
Алгоритм 3. Обработка элементов последовательности, признаком завершения которой является число 0.
26
Алгоритм 1. Общая схема обработки последовательности.
Алгоритм 2 (детализированная версия алгоритма 1).
Обработка элементов последовательности, удовлетворяющих определенному условию.
25
Итерационными циклами называют циклы с неизвестным числом повторений, реализующие процесс получения последовательности значений y1, y2, … , yn, сходящейся к некоторому пределу y. Каждое новое значение yn в такой последовательности определяется с учетом предыдущего значения yn-1 и является более точным приближением к y.
Итерационный цикл заканчивается, т.е. считается, что yn » y, если для некоторого значения n выполняется условие | yn – yn-1 | < ε, где ε – допустимая погрешность вычисления результата.
Рекуррентное соотношение для вычисления очередного слагаемого выведено и имеет вид – a=a*x/i.
Опишем словесно схему алгоритма, реализуемого в функции:
Конец-пока
24
Параметры в списке параметров в заголовке процедуры, называемые иначе формальными параметрами, разделяется запятыми. Формальный параметр имеет произвольное допустимое имя, необходимое только для описания алгоритма. Место в памяти для формального параметра не выделяется.
Формальный параметр имеет синтаксис:
[Optional][ByVal|ByRef] имяПеременной[()][As тип][=значение]
Optional — означает, что параметр необязательный, т.е. при вызове процедуры он может быть опущен, но тогда и все следующие за ним параметры также должны быть необязательными.
ByVal — этот описатель указывает, что параметр передается по значению (этот описатель используется по умолчанию); передача параметра по значению означает, что в процедуру передается не сама переменная, а ее копия. Поэтому изменение параметра в теле процедуры не изменяет саму переменную.
ByRef — указывает, что этот параметр передается по ссылке (по адресу). Передача по ссылке означает, что в этом случае вызываемая процедура получает доступ к области памяти вызывающей процедуры, в которой эта переменная хранится. Значит при изменении параметра в вызываемой процедуре, происходит изменение значения переменной–параметра.
Оператор Exit Sub приводит к немедленному выходу из процедуры. Выполнение программы продолжается с оператора, следующего за оператором, содержащим вызов процедуры. Допускается наличие любого числа операторов Exit Sub.
Фактические параметры замещают соответствующие формальные. Они должны согласовываться с формальными параметрами по порядку, типу и количеству.
Процедура Function
Синтаксис описания процедуры Function имеет вид:
[Public|Private][Static] Function имя[(списПарам)][As тип]
[Операторы]
[имя = выражение]
[Exit Function]
[Операторы]
[имя = выражение]
End Function
Синтаксис списка формальных параметров такой же, как и для процедуры Sub.
23
Параметры в списке параметров в заголовке процедуры, называемые иначе формальными параметрами, разделяется запятыми. Формальный параметр имеет произвольное допустимое имя, необходимое только для описания алгоритма. Место в памяти для формального параметра не выделяется
Фактические параметры замещают соответствующие формальные. Они должны согласовываться с формальными параметрами по порядку, типу и количеству.
Передача параметров
Как следует из синтаксиса параметров процедуры, существует два способа передачи параметров процедур и функций: ByVal — по значению (применяется по умолчанию) и ByRef — по ссылке (по адресу).
Передача по адресу означает, что вызывающая процедура и вызываемая работают с одним и тем же (общим) адресом памяти. Фактическим параметром в этом случае может быть только переменная.
Другой способ передачи — по значению. В этом случае в области памяти, доступной только вызываемой процедуре, создается копия значения передаваемого параметра. Оригинал в вызывающей процедуре не изменяется. Значит, если нужно обезопасить переменную от возможного изменения, ее нужно передавать по значению.
Существует две возможности показать, что передается значение, а не адрес: использование ключевого слова ByVal в описании соответствующего формального параметра в заголовке процедуры; использование выражения для соответствующего фактического параметра.
Рекомендации по применению одного из способов передачи параметра:
если процедура должна изменить значение параметра — то по ссылке; если не должна менять — то по значению.
Вывод: входные параметры можно передавать по значению или по ссылке (но лучше — по значению), выходные параметры — только по ссылке. Параметр-массив лучше передавать по ссылке.
22
Процедура Function
Синтаксис описания процедуры Function имеет вид:
[Public|Private][Static] Function имя[(списПарам)][As тип]
[Операторы]
[имя = выражение]
[Exit Function]
[Операторы]
[имя = выражение]
End Function
Синтаксис списка формальных параметров такой же, как и для процедуры Sub. Посмотрим на отличия Function от Sub.
В заголовке после списка параметров появилась опция, описывающая тип возвращаемого функцией значения. Если она опущена, то тип назначается по умолчанию, т.е. Object.
Возвращаемым значением называют значение, которое функция передает обратно в вызвавшую ее программу. Функция может вернуть значение двумя способами:
– значение присваивается самому имени функции один или несколько раз по ходу выполнения процедуры. Управление (и, соответственно, возвращаемое значение) не будет передано в программу, вызвавшую функцию, до тех пор, пока не выполнится Exit Function или End Function.
– использованием оператора Return выражение, чтобы определить возвращаемое значение с немедленной передачей управления программе, вызвавшей функцию.
Таким образом, выход из функции организуется:
– по последнему оператору End Function;
– досрочно — по оператору Exit Function (возможно наличие любого числа операторов Exit Function);
– по оператору Return (которых может быть несколько).
Не допускается описание процедуры Function внутри другой процедуры Function или Sub.
Если имени функции не присваивается никакого значения и отсутствует оператор Return, то процедура Function возвращает значение по умолчанию: числовая функция возвращает нулевое значение, строковая функция возвращает значение пустой строки, функция типа Object — значение Empty.
Чаще
всего функцию используют как
операнд в выражении через указатель
функции, который имеет вид: имя(списокФактическихПараметро
Будем считать, что функцию можно использовать только в выражении, и функция может иметь только входные параметры. Хотя на самом деле, функцию можно использовать как оператор, если она не возвращает никакого значения. Кроме значения, возвращаемого через имя функции, функция может возвращать значения через параметры (так называемый побочный эффект функции).
21
Процедура Sub
Синтаксис описания процедуры Sub:
[Public|Private][Static] Sub имя[(списокПараметров)]
[Операторы]
[Exit Sub]