сколько выходных параметров будет у функции не имеющей параметров значений

Сколько выходных параметров будет у функции не имеющей параметров значений

Урок 16. Запись вспомогательных алгоритмов на языке Паскаль. Процедуры

Ключевые слова:

• подпрограмма
• процедура
• функция
• рекурсивная функция

Запись вспомогательных алгоритмов в языках программирования осуществляется с помощью подпрограмм. В Паскале подпрограмма является частью основной программы. Её описание располагается между разделом var и программным блоком главной программы. Если подпрограмм несколько, то их описания располагаются в произвольном порядке одно за другим.

Структура описания подпрограммы аналогична структуре главной программы. Описание подпрограммы начинается с заголовка и заканчивается оператором end.

В Паскале различают два вида подпрограмм: процедуры и функции.

2.4.1. Процедуры

сколько выходных параметров будет у функции не имеющей параметров значений. Смотреть фото сколько выходных параметров будет у функции не имеющей параметров значений. Смотреть картинку сколько выходных параметров будет у функции не имеющей параметров значений. Картинка про сколько выходных параметров будет у функции не имеющей параметров значений. Фото сколько выходных параметров будет у функции не имеющей параметров значенийПроцедура — подпрограмма, имеющая произвольное количество входных и выходных данных.

Описание процедуры имеет вид:

сколько выходных параметров будет у функции не имеющей параметров значений. Смотреть фото сколько выходных параметров будет у функции не имеющей параметров значений. Смотреть картинку сколько выходных параметров будет у функции не имеющей параметров значений. Картинка про сколько выходных параметров будет у функции не имеющей параметров значений. Фото сколько выходных параметров будет у функции не имеющей параметров значений

В заголовке процедуры после её имени приводится перечень формальных параметров и их типов. Входные параметры, значения которых не изменяются в программе, должны быть параметрами-значениями. Выходные (результирующие) параметры должны быть параметрами-переменными.

Для вызова процедуры достаточно указать её имя со списком фактических параметров. В качестве параметров-значений можно указывать имена переменных, константы и выражения.

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

procedure nod (a, b: integer; var с: integer);

Возможны следующие варианты вызова этой процедуры:

nod (36, 15, z) — в качестве параметров-значений использованы константы;

nod (х, у, z) — в качестве параметров-значений использованы имена переменных;

nod (х+у, 15, z) — в качестве параметров-значений использованы выражение и константа.

В любом случае между фактическими и формальными параметрами должно быть полное соответствие по количеству, порядку следования и типу.

Пример 1. Напишем процедуру для нахождения наибольшего общего делителя двух чисел с помощью алгоритма Евклида. Используем её для нахождения наибольшего общего делителя следующих шести чисел: 16, 32, 40, 64, 80 и 128.

сколько выходных параметров будет у функции не имеющей параметров значений. Смотреть фото сколько выходных параметров будет у функции не имеющей параметров значений. Смотреть картинку сколько выходных параметров будет у функции не имеющей параметров значений. Картинка про сколько выходных параметров будет у функции не имеющей параметров значений. Фото сколько выходных параметров будет у функции не имеющей параметров значений

Измените программу так, чтобы с её помощью можно было найти:

а) наибольший общий делитель следующих пяти чисел: 12, 24, 30, 48 и 51;
б) наибольший общий делитель произвольных десяти целых двузначных чисел.

2.4.2. Функции

Описание функции имеет вид:

сколько выходных параметров будет у функции не имеющей параметров значений. Смотреть фото сколько выходных параметров будет у функции не имеющей параметров значений. Смотреть картинку сколько выходных параметров будет у функции не имеющей параметров значений. Картинка про сколько выходных параметров будет у функции не имеющей параметров значений. Фото сколько выходных параметров будет у функции не имеющей параметров значений

В заголовке функции после её имени приводится описание входных данных — указывается перечень формальных параметров и их типов. Там же указывается тип самой функции, т. е. тип результата.

Для вызова функции достаточно указать её имя со списком фактических параметров в любом выражении, в условиях (после слов if, while, until) или в оператореwrite главной программы.

Пример 2. Напишем программу нахождения максимального из четырёх целых чисел, использующую функцию поиска максимального из двух чисел:

сколько выходных параметров будет у функции не имеющей параметров значений. Смотреть фото сколько выходных параметров будет у функции не имеющей параметров значений. Смотреть картинку сколько выходных параметров будет у функции не имеющей параметров значений. Картинка про сколько выходных параметров будет у функции не имеющей параметров значений. Фото сколько выходных параметров будет у функции не имеющей параметров значений

Измените программу так, чтобы с её помощью можно было найти:

а) максимальное из чисел а, b, с;
б) максимальное из чисел b, с, d;
в) минимальное из четырёх чисел;
г) разность максимального и минимального из четырёх чисел.

Пример 3. В январе Саше подарили пару новорождённых кроликов. Через два месяца они дали первый приплод — новую пару кроликов, а затем давали приплод по паре кроликов каждый месяц. Каждая новая пара также даёт первый приплод (пару кроликов) через два месяца, а затем — по паре кроликов каждый месяц. Сколько пар кроликов будет у Саши в декабре?

Числа 1, 1, 2, 3, 5, 8. образуют так называемую последовательность Фибоначчи, названную в честь итальянского математика, впервые решившего соответствующую задачу ещё в начале XIII века.

Оформим в виде функции вычисление члена последовательности Фибоначчи.

сколько выходных параметров будет у функции не имеющей параметров значений. Смотреть фото сколько выходных параметров будет у функции не имеющей параметров значений. Смотреть картинку сколько выходных параметров будет у функции не имеющей параметров значений. Картинка про сколько выходных параметров будет у функции не имеющей параметров значений. Фото сколько выходных параметров будет у функции не имеющей параметров значений

Полученная функция — рекурсивная; в ней реализован способ вычисления очередного значения функции через вычисление её предшествующих значений.

Напишите программу, вычисляющую и выводящую 10 первых членов последовательности Фибоначи.

САМОЕ ГЛАВНОЕ

Запись вспомогательных алгоритмов в языках программирования осуществляется с помощью подпрограмм. В Паскале различают два вида подпрограмм:процедуры и функции.

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

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

Вопросы и задания

1. Ознакомьтесь с материалами презентации к параграфу, содержащейся в электронном приложении к учебнику. Дополняет ли презентация информацию, содержащуюся в тексте параграфа?

2. Для чего используются подпрограммы?

3. В чём основное различие процедур и функций?

4. Напишите программу вычисления наименьшего общего кратного следующих четырёх чисел: 36, 54, 18 и 15. Используйте процедуру вычисления наибольшего общего делителя двух чисел.

5. Напишите программу перестановки значений переменных а, b, с в порядке возрастания, т. е. так, чтобы а

Факториал — функция, определённая на множестве неотрицательных целых чисел. Название происходит от лат. factorialis — действующий, производящий, умножающий;
обозначается n!, произносится эн факториал. Факториал натурального числа n определяется как произведение всех натуральных чисел от 1 до n включительно:

сколько выходных параметров будет у функции не имеющей параметров значений. Смотреть фото сколько выходных параметров будет у функции не имеющей параметров значений. Смотреть картинку сколько выходных параметров будет у функции не имеющей параметров значений. Картинка про сколько выходных параметров будет у функции не имеющей параметров значений. Фото сколько выходных параметров будет у функции не имеющей параметров значений
Например,

сколько выходных параметров будет у функции не имеющей параметров значений. Смотреть фото сколько выходных параметров будет у функции не имеющей параметров значений. Смотреть картинку сколько выходных параметров будет у функции не имеющей параметров значений. Картинка про сколько выходных параметров будет у функции не имеющей параметров значений. Фото сколько выходных параметров будет у функции не имеющей параметров значений

Из определения факториала следует соотношение сколько выходных параметров будет у функции не имеющей параметров значений. Смотреть фото сколько выходных параметров будет у функции не имеющей параметров значений. Смотреть картинку сколько выходных параметров будет у функции не имеющей параметров значений. Картинка про сколько выходных параметров будет у функции не имеющей параметров значений. Фото сколько выходных параметров будет у функции не имеющей параметров значений, откуда при n = 1 формально находим 0!=1.

8. Напишите программу вычисления выражения:

9. Напишите функцию, вычисляющую длину отрезка по координатам его концов. Напишите программу, вычисляющую периметр треугольника по координатам его вершин с помощью этой функции.

10. Напишите функцию, вычисляющую площадь треугольника по целочисленным координатам его вершин. Напишите программу вычисления площади четырёхугольника по координатам его вершин с помощью этой функции.

сколько выходных параметров будет у функции не имеющей параметров значений. Смотреть фото сколько выходных параметров будет у функции не имеющей параметров значений. Смотреть картинку сколько выходных параметров будет у функции не имеющей параметров значений. Картинка про сколько выходных параметров будет у функции не имеющей параметров значений. Фото сколько выходных параметров будет у функции не имеющей параметров значенийТест «Запись вспомогательных алгоритмов»

сколько выходных параметров будет у функции не имеющей параметров значений. Смотреть фото сколько выходных параметров будет у функции не имеющей параметров значений. Смотреть картинку сколько выходных параметров будет у функции не имеющей параметров значений. Картинка про сколько выходных параметров будет у функции не имеющей параметров значений. Фото сколько выходных параметров будет у функции не имеющей параметров значений

Электронное приложение к уроку

Ссылки на свободно распространяемое программное обеспечение:

сколько выходных параметров будет у функции не имеющей параметров значений. Смотреть фото сколько выходных параметров будет у функции не имеющей параметров значений. Смотреть картинку сколько выходных параметров будет у функции не имеющей параметров значений. Картинка про сколько выходных параметров будет у функции не имеющей параметров значений. Фото сколько выходных параметров будет у функции не имеющей параметров значений

сколько выходных параметров будет у функции не имеющей параметров значений. Смотреть фото сколько выходных параметров будет у функции не имеющей параметров значений. Смотреть картинку сколько выходных параметров будет у функции не имеющей параметров значений. Картинка про сколько выходных параметров будет у функции не имеющей параметров значений. Фото сколько выходных параметров будет у функции не имеющей параметров значенийсколько выходных параметров будет у функции не имеющей параметров значений. Смотреть фото сколько выходных параметров будет у функции не имеющей параметров значений. Смотреть картинку сколько выходных параметров будет у функции не имеющей параметров значений. Картинка про сколько выходных параметров будет у функции не имеющей параметров значений. Фото сколько выходных параметров будет у функции не имеющей параметров значенийсколько выходных параметров будет у функции не имеющей параметров значений. Смотреть фото сколько выходных параметров будет у функции не имеющей параметров значений. Смотреть картинку сколько выходных параметров будет у функции не имеющей параметров значений. Картинка про сколько выходных параметров будет у функции не имеющей параметров значений. Фото сколько выходных параметров будет у функции не имеющей параметров значений
Презентации, плакаты, текстовые файлыВернуться к материалам урокаРесурсы сети Интернет

сколько выходных параметров будет у функции не имеющей параметров значений. Смотреть фото сколько выходных параметров будет у функции не имеющей параметров значений. Смотреть картинку сколько выходных параметров будет у функции не имеющей параметров значений. Картинка про сколько выходных параметров будет у функции не имеющей параметров значений. Фото сколько выходных параметров будет у функции не имеющей параметров значений

Cкачать материалы урока
сколько выходных параметров будет у функции не имеющей параметров значений. Смотреть фото сколько выходных параметров будет у функции не имеющей параметров значений. Смотреть картинку сколько выходных параметров будет у функции не имеющей параметров значений. Картинка про сколько выходных параметров будет у функции не имеющей параметров значений. Фото сколько выходных параметров будет у функции не имеющей параметров значений

Источник

Входные и выходные параметры

Входные параметры – это переменные, в которые передаются значения переменных или констант основной программы в Процедуру, и не предназначены для возврата.

Begin

writeln(‘квадрат числа ‘, x:5:2);

Выходныепараметры– это переменные (не константы), которые передаются основной программой в Процедуру, но их измененные в Процедуре значения, будут возвращены основной программе. При объявлении таких параметров указывается служебное слово Var.

Begin

writeln(‘куб числа ‘, y:5:2);

Procedure fakt(n:integer;Var rez:integer);

Begin

Begin

. Fakt(1,f1); Fakt(3,f3); Fakt(5,f5); Fakt(7,f7);Данный фрагмент программы из 4-х строк позволяет вычислить значения факториалов простых чисел первого десятка. После завершения процедуры fakt в основной программе переменные f1, f3, f5, f7 будут равны факториалу их индекса.

Функции

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

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

y:=funMin(a,b);— вызов функцииfunMin

Структура Функции полностью аналогична структуре Процедуры и располагается перед «главным» оператором BEGIN.

сколько выходных параметров будет у функции не имеющей параметров значений. Смотреть фото сколько выходных параметров будет у функции не имеющей параметров значений. Смотреть картинку сколько выходных параметров будет у функции не имеющей параметров значений. Картинка про сколько выходных параметров будет у функции не имеющей параметров значений. Фото сколько выходных параметров будет у функции не имеющей параметров значенийFunction (список переменных: ): ;

Параметры функции

Var

Begin

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

Работа со строками

Строковые переменные

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

Строка (символьная/литерная константа) – это последовательность любых символов из кодовой таблицы персонального компьютера (в том числе и пробелов). При использовании в выражениях строка заключается в апострофы.

‘summa’ ‘Строка’ ‘Монета достоинством в 2 рубля’

Количество символов в строке может меняться от 1 до 255.

Для определения данных строкового типа используется идентификатор string, за которым следует заключенное в квадратные скобки значение максимально допустимой длины строки данного типа. Если значение не указывается, то оно равно 255 символов.

s1:string – максимальная длина 255 символов

Во избежание ошибок ввода рекомендуется задавать строковые константы отдельным оператором Readln(‘. ‘) в отдельнойстроке.

К отдельным символам строки можно обращаться как к элементам массива следующим образом:

Действия со строковыми переменными

Над строковыми переменными можно выполнить следующие операции:

· Преобразование в число и обратно

Присваивание

st:=’Иванов Константин Петрович’;

Stroka:=’Информатика наука современная’;

Readln(st);строка будет введена с клавиатуры

Сравнение

Обычно сравниваются строки одинаковой длины. В противном случае большей считается строка большей длины

If kisa=kot. If kisa>kot2.. If kisa Kisa(по количеству символов) и Kot1

или Gruppa:= Concat(Kisa,Kot1,Kot2);

переменная Gruppaбудет иметь значение «МуркаТузикБарсик». При необходимости между словами вставляют дополнительные символы Пробел, «подчерк», «плюс», «запятая» что делает восприятие более удобным.

Результат: «Мурка, Тузик, Барсик»

8.2.4 Преобразование строка ↔число

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

Число ‑2,75Строка ‘12924’ ‘‑2,75’

Str(X,Str) – преобразует число в его строковое представление;

Val(Str,X,Code) – преобразует строковое выражение в число, если это невозможно, то в Code выдается номер символа с которого преобразование невозможно

Обработка строк

Стандартные процедуры и функции обработки строк приведены в табл.3. Они позволяют выполнить:

· удаление начальных и конечных пробелов

Примечание. Если команда является процедурой, то ее применяют без оператора присваивания

Insert(gruppa,‘Васька’,17); это процедура.
Нет оператора Присваивания.
Результат «МуркаТузикБарсикВаська»

St:=Copy(gruppa,10,4) это функция.
Есть опрератор Присваивания. Результат «Барс»

Рекомендации

1. Пишите программы так, чтобы их можно было понять не только Вам, а и иным людям. Для этого:

· Предоставляйте переменным такие имена, которые отвечают названию именованной величины.

· Каждый оператор старайтесь писать с новой строки.

· Делайте отступы перед вложенными операторами.

· Не ленитесь вставлять комментарии

2. Не забывайте сохранять программу после корректировки кода.

3. При модификации программы сохраните старую версию с прежнем именем, а новую – с другим, новым логическим именем файла.

4. При анализе входных данных постарайтесь выделить особые случай и аномалии.

Например, при решении простой задачи «Найти периметр треугольника по трем сторонам» необходимо учесть не только неотрицательность вводимых значений длин сторон, но и варианты

· «Наибольшая сторона равна сумме двух других» – особый случай

· «Наибольшая сторона меньше суммы двух других» – аномалия.

Список используемой литературы

1. Язык программирования ТурбоПаскаль (под ред.Павленка И.А.), СПЛ, 2005г.

2. Шаньгин В.Ф., Поддубная Л.М. Программирование на языке ПАСКАЛЬ. – М.: Высш.шк., 1991 – 143с.

3. Гусева А.И. Учимся программировать: Pascal70. – М.: «Диалог-МИФИ», 1998. – 272с.

4. Зубов В.С. Программирование на языке ТURBO PASCAL. – М.: «Филинъ», 1997. – 320с.

5. Вирт Н., Йенсен К.. PASCAL. Руководство для пользователя и описание языка /Пер. с англ. – М.: Финансы и статистика,1992, ‑ 152с.

6. Пильщиков В.Н. Сборник упражнений по языку Паскаль: Учеб. Пособие для вузов. – М.: Наука, 1989. ‑160с.

7. http://sunschool.math.rsu.ru, http://it.mmcs.rsu.ru Ресурсы разработчиков среды PascalABC

сколько выходных параметров будет у функции не имеющей параметров значений. Смотреть фото сколько выходных параметров будет у функции не имеющей параметров значений. Смотреть картинку сколько выходных параметров будет у функции не имеющей параметров значений. Картинка про сколько выходных параметров будет у функции не имеющей параметров значений. Фото сколько выходных параметров будет у функции не имеющей параметров значений

PascalABC. Часть I.Основные конструкции. СПЛ, 2007г

Источник

1. Что такое функция?

Функция – это подпрограмма, которая возвращает значение.

2. Как объявляется функция?

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

3. Как выглядит заголовок функции?

4. Каков может быть тип возвращаемого значения функции?

Тип возвращаемого значения может быть любым стандартным или пользовательским типом, кроме файлов.

5. Как осуществляется возврат значения из функции?

Само имя функции ведёт себя как специальная переменная, в которой хранится возвращаемое функцией значение. Так же ведёт себя предопределённая переменная result, которая неявно объявляется в каждой функции, если включено использование расширенного синтаксиса.

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

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

Если функция завершается без присваивания какого-либо значения имени функции или переменной result, то результат функции считается неопределённым.

6. Как выглядит вызов функции?

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

7. Что происходит при вызове функции?

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

8. Как передаются данные в функцию и из функции?

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

9. Что такое формальные параметры?

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

Список формальных параметров определяется количество, порядок и типы параметров, которые должны быть переданы в процедуру при вызове. Список формальных параметров представляет собой последовательность объявлений, разделённых точкой с запятой, заключённую в круглые скобки. Каждое объявление – это разделяемый запятыми список имён параметров, после которого следует двоеточие и тип. Кроме того, каждому объявлению может предшествовать одно из ключевых слов var, const или out.

10. Что такое фактические параметры?

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

Список фактических параметров – это список вполне конкретных значений, которые реально передаются в процедуру и которые она обрабатывает. Формальные параметры – это, в общем-то, абстракция. Фактические параметры должны реально существовать, т.е. это должна быть объявленная и обычно проинициализированная переменная, константа или выражение.

Список фактических параметров представляет собой список выражений, разделённых запятыми. Значения этих выражений подставляются вместо формальных параметров последовательно, т.е. значение первого фактического параметра – вместо первого формального параметра, значение второго фактического параметра – вместо второго формального параметра и т.д.

11. Какая связь между формальными и фактическими параметрами?

Имена формальных и фактических параметров совпадать не должны.

12. Что такое параметры-константы?

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

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

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

13. Что такое параметры-значения?

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

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

14. Что такое параметры-переменные?

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

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

15. Что такое выходные параметры?

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

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

16. Что такое область видимости?

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

Каждый такой блок образует так называемую область видимости, т.е. все идентификаторы, объявленные в каком-либо блоке, доступны в этом блоке, а также во вложенных блоках, но не доступны в охватывающих и «параллельных» блоках.

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

Два «параллельных» блока образуют непересекающиеся области видимости, поэтому при объявлении в них одинаковых идентификаторов никаких конфликтов не возникает. Если идентификатор, объявленный в охватывающем блоке, переобъявляется во внутреннем блоке, то локальное, внутреннее объявление имеет преимущество и определяет значение этого идентификатора во внутреннем блоке.

17. Что такое локальные и глобальные объявления?

Блок программы является самым внешним блоком. Идентификаторы, объявленные в нём, называются глобальными. Идентификаторы, объявленные в других блоках, называются локальными.

18. Как инициализируются локальные и глобальные переменные?

Локальные переменные не могут иметь инициализаторов. Глобальные переменные могут быть проинициализированы при объявлении. Если инициализатор отсутствует, компилятор инициализирует глобальную переменную значением 0. Локальные переменные автоматически не инициализируются!

19. Когда можно вызвать одну подпрограмму из другой?

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

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

20. Примеры использования функций

В данных примерах внутренние функции имеют минимальное количество параметров и ссылаются на обрабатываемый массив как на «глобальную» переменную (хотя, конечно, в данном случае это не глобальная переменная). Это сделано для уменьшения передач параметров – поскольку функции локальные, они не могут быть вызваны из других процедур и функций и из основной программы, и используются только в той процедуре или функции, где они определены. При этом локальное объявление имени x всегда будет сильнее любого глобального объявления этого имени, поэтому внутренняя функции будет ссылаться на правильный объект.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *