ВУЗ:
Составители:
Рубрика:
17
3. Если переменная, используемая в процедуре, должна сохранить
своё значение до следующего вызова этой процедуры, то такую переменную
следует описать во внешнем блоке, содержащем данную процедуру.
Локализация переменных даёт программисту большую свободу в
выборе идентификаторов. Так, если две процедуры А и Б полностью
отделены друг от друга (т. е. не вложены одна
в другую), то идентификаторы
в них могут быть выбраны совершенно произвольно, в частности, могут
повторяться. В этом случае совпадающим идентификаторам соответствуют
разные области памяти, совершенно друг с другом не связанные.
Если один и тот же идентификатор описан в блоке Б и второй раз
описан во вложенном в Б блоке С,
то надо помнить, что эти два одинаковых
идентификатора соответствуют разным
ячейкам памяти.
Если локальная и глобальная переменная принадлежат к одному и
тому же сложному типу, то этот тип надо описывать в разделе TYPE, а сами
переменные описывать через этот общий тип.
Пример:
program T1(output);
type AB=array [1 . .3] of real;
var A:AB;
procedure Q (var B:AB; x:real);
begin ……….. end;
. . . . . . . . . . . . . . . . . . . . . . . .
end.
В этом примере переменные А и В описаны через общий тип АВ. Если
же локальная и глобальная переменные описаны одинаково, но не через
общий тип, то компилятор может “не понять”, что эти переменные
принадлежат одному общему типу и выдаёт сообщение о несоответствии
типов: TYPE MISMATCH.
Пример:
program T2(output);
var A:array [1 . .3] of real;
procedure Q;
var B:array [1 . .3] of real;
. . . . . . . . . . . . . . . . . . . . . . . . . .
end.
В этом примере переменные А и В – одинаковые массивы, т.е. типы
этих переменных одинаковы, но компилятор тем не менее “не считает ”, что
18
А и В – принадлежат одному типу. Это происходит из–за того, что описание
массивов дано в разных блоках.
Подпрограмма функция
Подпрограмма функция – представляет собой группу операторов, в
результате выполнения которых вычисляется одно значение, которое
присваивается имени функции, именно это значение возвращается в
основную программу.
Имея один и тот же смысл и аналогичную структуру, процедуры и
функции различаются назначением
и способом их использования. Смысл
функции заключается в том, чтобы определить алгоритм получения нового
значения некоторого простого или ссылочного типа. В этом смысле функции
подобны выражениям, которые также вычисляют значения.
Описание функции:
Заголовок функции
:
Всё, что было сказано относительно процедур, справедливо и для
функций со следующими поправками:
1. В теле функции имени функции должно присваиваться одно
значение. Поэтому понятие оператора присваивания значения расширяется:
И
мя
функции
function
Список
формальных
параметров
тип значения
функции
:
Блок
Директива
Заголовок
функции
;
;
3. Если переменная, используемая в процедуре, должна сохранить А и В принадлежат одному типу. Это происходит изза того, что описание своё значение до следующего вызова этой процедуры, то такую переменную массивов дано в разных блоках. следует описать во внешнем блоке, содержащем данную процедуру. Локализация переменных даёт программисту большую свободу в Подпрограмма функция выборе идентификаторов. Так, если две процедуры А и Б полностью отделены друг от друга (т. е. не вложены одна в другую), то идентификаторы Подпрограмма функция представляет собой группу операторов, в в них могут быть выбраны совершенно произвольно, в частности, могут результате выполнения которых вычисляется одно значение, которое повторяться. В этом случае совпадающим идентификаторам соответствуют присваивается имени функции, именно это значение возвращается в разные области памяти, совершенно друг с другом не связанные. основную программу. Если один и тот же идентификатор описан в блоке Б и второй раз Имея один и тот же смысл и аналогичную структуру, процедуры и описан во вложенном в Б блоке С, то надо помнить, что эти два одинаковых функции различаются назначением и способом их использования. Смысл идентификатора соответствуют разным ячейкам памяти. функции заключается в том, чтобы определить алгоритм получения нового Если локальная и глобальная переменная принадлежат к одному и значения некоторого простого или ссылочного типа. В этом смысле функции тому же сложному типу, то этот тип надо описывать в разделе TYPE, а сами подобны выражениям, которые также вычисляют значения. переменные описывать через этот общий тип. Описание функции: Пример: program T1(output); Заголовок type AB=array [1 . .3] of real; функции ; Блок ; var A:AB; procedure Q (var B:AB; x:real); Директива begin .. end; ........... . ............ end. В этом примере переменные А и В описаны через общий тип АВ. Если Заголовок функции: же локальная и глобальная переменные описаны одинаково, но не через общий тип, то компилятор может не понять, что эти переменные тип значения Имя принадлежат одному общему типу и выдаёт сообщение о несоответствии function функции : функции типов: TYPE MISMATCH. Пример: Список program T2(output); формальных var A:array [1 . .3] of real; параметров procedure Q; var B:array [1 . .3] of real; ..... ..................... Всё, что было сказано относительно процедур, справедливо и для end. функций со следующими поправками: В этом примере переменные А и В одинаковые массивы, т.е. типы 1. В теле функции имени функции должно присваиваться одно этих переменных одинаковы, но компилятор тем не менее не считает , что значение. Поэтому понятие оператора присваивания значения расширяется: 17 18
Страницы
- « первая
- ‹ предыдущая
- …
- 7
- 8
- 9
- 10
- 11
- …
- следующая ›
- последняя »