Главная » Просмотр файлов » metod_15.03.04_atppp_oaip_ump_2016

metod_15.03.04_atppp_oaip_ump_2016 (1016599), страница 38

Файл №1016599 metod_15.03.04_atppp_oaip_ump_2016 (Методические документы) 38 страницаmetod_15.03.04_atppp_oaip_ump_2016 (1016599) страница 382017-07-08СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 38)

Примервызова процедуры без параметров: PRINT ;.Выполнение оператора вызова процедуры или функции состоит в том, что всеформальные параметры заменяются соответствующими фактическими.Функция – это подпрограмма, определяющая одно скалярное, вещественное илистроковое значение, которое всегда выдается в вызывающую программу.Описание функции также содержит заголовок функции и блок такого строения, как иблок программы.Заголовок функции:FUNCTION имя функции (список формальных параметров) : тип результата ; Имяфункции – идентификатор, по которому функция вызывается. Тип результатаможет быть любым простым типом, причем значение результата должно бытьсовместимо с типом результата функции, определенным в операторе FUNCTION. Дляформирования результата выполнения в теле функции должен быть операторприсваивания имени функции значения результата в виде:Имя функции : = выражение ;Описание формальных параметров может иметь вид:< список имен > : < тип > или var < список имен > : < тип >В первом случае формальные параметры называют параметры-значения, а во втором– параметры-переменные.Стандартные (предопределенные) функции и процедурыСтандартные функции и процедуры предназначены для вычисления значенийматематических и логических функций, выполнения операций преобразования,получения псевдослучайных чисел, времени и даты, обработки символов, строк и т.д.Список предопределенных функций и процедур Паскаля содержит большеполусотни наименований.

Вот некоторые из них (* помечены уже рассмотренныеранее).a) математические функции (были рассмотрены ранее):Например, *abs (x) – абсолютное значение числа x;b) функции преобразования:chr (x) – аргумент x – номер символа типа BYTE – определяет значение символа поего номеру;ord (x) – аргумент x порядкового типа (логический, строковый, перечисляемый) –определяет порядковый номер аргумента (0 или 1 для логического x; целое 0 – 255 длястрокового x; целое 0 – 65535 для перечисляемого x);*round (x) – аргумент x вещественного типа – округляет число x до целого;175*trunc (x) – аргумент x вещественного типа – отсекает целую часть числа (типрезультата Longint);*frac (x) – аргумент x вещественного типа – определяет дробную часть числа (типрезультата Longint или Real, если отсутствует сопроцессор);c) функции и процедуры порядкового типа:odd (x) – аргумент x целого типа – выдает true, если x четно, и false, если x нечетно;pred (x) – аргумент x порядкового типа – находит предшествующий элемент x – 1;succ (x) – аргумент x порядкового типа – определяет последующий элемент x + 1;*процедура dec (x [, ] ) – аргумент x порядкового типа, – тип longint – уменьшаетзначение переменной x на величину Δ, а если не задано, то на 1(тогда x := pred (x));*процедура ins (x [,] ) – аргумент x порядкового типа,– тип longint –увеличивает значение переменной x на величину Δ, а если не задано, то на 1(тогда x:= succ (x));d) функции разного назначения:sizeof (x) – x порядкового типа – определяет максимальное значение порядковоготипа;аргумент x произвольного типа – определяет число байтов, занимаемыхаргументом x – тип результата Word;high (x) – x порядкового типа – определяет максимальное значение порядковоготипа;low (x) – x порядкового типа – определяет минимальное значение порядкового типа;*length (x) – аргумент x типа String – определяет в виде целого числа логическуюдлину строки;random (x) – аргумент типа Word – определяет псевдослучайное число (еслипараметр x опущен, результат – вещественное число из промежутка [0;1]; еслипараметр x задан, результат целое число из промежутка [0; x-1].

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

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

Если при всех вызовах внутренней подпрограммы именаобрабатываемых ею данных и имена результатов одинаковы, т.е. подпрограммавызывается для одних и тех же фактических параметров, то целесообразно рассмотреть176возможность использования подпрограммы без параметров, с использованиемглобальных переменных.Все формальные параметры должны быть определены в списке формальныхпараметров заголовка подпрограммы под своими именами, известными в блокепроцедуры или функции, а также определен тип параметров.Примеры.PROCEDURE MNMX ( A : REAL ; M : ITEGER ; VAR MN, MX : REAL ) ;FUNCTION FACT ( B : MYTYPE ; N : INTEGER ) : INTEGER ;MYTYPE - тип параметра, определенный пользователем.MN, MX – параметры-переменные.

A, B, M, N – параметры-значения.При вызове подпрограммы фактические параметры должны быть в той жепоследовательности, что и соответствующие им формальные.В Паскале различают следующие формальных параметров: параметры-значения,параметры-переменные, параметры-константы, бестиповые параметры, параметрымассивы, строки открытого типа, процедурные параметры.Основные типы параметров подпрограммПараметры-значенияпередаютсяосновнойпрограммойввызываемуюподпрограмму через стек в виде их копий. Поэтому фактический параметрподпрограммой измениться не может.При передаче в подпрограмму из основной программы параметров-переменныхфактически через стек передаются их адреса в порядке, объявленном в заголовкеподпрограммы.

Поэтому подпрограмма имеет доступ к этим параметрам и может ихизменить.Следовательно, входные параметры подпрограммы могут быть как параметрамизначениями, так и параметрами-переменными. Выходные же - только параметрамипеременными.Нецелесообразно использовать в качестве параметров-значений массивы большихразмеров, так как это приведет к существенным дополнительным затратам ОП ивремени на их копирование из ОП вызывающей программы в ОП стека для вызваннойподпрограммы при многократных обращениях к этой подпрограмме.В версии 7.0 может быть использованы параметры-константы, которые вподпрограммах не изменяются. Их объявление осуществляется по форме:PROCEDURE P (CONST Par : WORD ) ;Если в теле процедуры появитсяоператор: P := <выражение> ;то это вызовет диагностическое сообщение об ошибке. В качестве параметровконстант можно использовать параметры любого типа, простые и сложные.В Паскале можно использовать параметры-переменные и параметры-константы безуказания типа.

В этом случае фактическим параметром может быть переменная любоготипа, являющаяся глобальным объектом – ответственность за правильностьиспользования параметра возлагается на программиста:FUNCTION EQUAL (VAR PARAM1, PARAM2; LEN : WORD ) ;177Параметр без типа перед его использованием в подпрограмме необходимо снабдитьопределенным типом в основной программе. Для формальных параметров PARAM1,PARAM2 в качестве фактических параметров можно использовать любые переменныепростого типа, массивы записи и пр.В качестве открытых параметров-переменных в языке Паскаль могут использоватьсямассивы и строки.

Открытые массивы – это параметры-массивы подпрограмм, размеркоторых не указывается в списке формальных параметров заголовка подпрограммы:FUNCTION SUM ( VAR A : ARRAY OF BYTE ) : BYTE ;Ключевое слово VAR в объявлении параметра открытого типа обязательно.Фактическим параметром открытого массива может быть массив любого размера.Тип элементов фактического массива должен совпадать с типом массива – формальногопараметра.

В качестве открытых массивов могут использоваться только одномерныемассивы. Внутри подпрограмм границы переданного массива могут определяться спомощью функций LOW (low (x) возвращает минимальное значение порядкового типа)и HIGH (high (x) возвращает максимальное значение порядкового типа). При этомрезультат вызова функции LOW всегда даст 0. А результат вызова функции HIGH –верхнее значение индекса при нумерации его элементов от 0.Открытые строки аналогичны открытым массивам. Для их использования послеобъявления имени программы необходимо включить директиву {$P+}. Формальныепараметры объявляются в виде string.

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

Например:TYPE PROC1 = PROCEDURE ( A, B, C, : REAL ; VAR D : REAL ) ;PROC2 = PROCEDURE ( VAR A, B, C, : REAL ) ;PROC3 = PROCEDURE ;{ процедура без параметров }FUNC1 = FUNCTION ( S : STRING ): REAL ;FUNC2 = FUNCTION : STRING ;{ без параметров }В данном примере PROC1, PROC2, PROC3, FUNC1, FUNC2 - имена типовпроцедурных параметров, идентификаторы.Использование подпрограмм, в которых в качестве формальных параметровприменяются процедурные типы и в качестве фактических – имена подпрограмм,требует директивы компилятора {$f+} или опции компилятора OPTIONS / COMPILE /FORCE FAR CALLS – дальний вызов подпрограмм.178МодулиОсновные сведения о модуляхНа практике, когда речь идет о больших программных разработках, возможностейпроцедур и функций оказывается недостаточно.

Характеристики

Тип файла
PDF-файл
Размер
4,37 Mb
Тип материала
Высшее учебное заведение

Список файлов учебной работы

Свежие статьи
Популярно сейчас
Как Вы думаете, сколько людей до Вас делали точно такое же задание? 99% студентов выполняют точно такие же задания, как и их предшественники год назад. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
7046
Авторов
на СтудИзбе
259
Средний доход
с одного платного файла
Обучение Подробнее