Формальные и фактические параметры
Формальные параметры подпрограммы указывают, с какими параметрами следует обращаться к этой программе (количество примеров, их последовательность, типы). Они задаются в заголовке подпрограммы в виде списка формальных параметров, разбитого на группу формальных параметров включаются однотипные параметры одной категории. Все формальные параметры можно разбить на четыре категории: · параметры значения (эти параметры в основной программе подпрограммой не меняются); · параметры - переменные (эти параметры подпрограмма может изменить в основной программе); · параметры-константы (используются только в версии 7.0); · параметры-процедуры и параметры-функции (т.е. процедурного типа). Для каждого формального параметра следует указать имя и, как правило, тип, а в случае параметра-переменной или параметра-константы - его категорию. Имена параметров могут быть любыми, в том числе и совпадать с именами объектов программы. Необходимо лишь помнить, что в этом случае параметр основной программы с таким именем становится недостурным для непосредственного использования подпрограммой. 18. Линейный список. Реализация с использованием массивов.(код?) Реализация многомерного массива.
Списком называется упорядоченное множество, состоящее из переменного числа элементов, к которым применимы операции включения, исключения Линейный список - это конечная последовательность однотипных элементов (узлов), возможно, с повторениями. Количество элементов в последовательности называется длиной списка, причем длина в процессе работы программы может изменяться. Линейный список F, состоящий из элементов D1,D2,...,Dn, записывают в виде последовательности значений заключенной в угловые скобки F=, или представляют графически (см.рис.12).
Например, F1=< 2,3,1>,F2=< 7,7,7,2,1,12 >, F3=< >. Длина списков F1, F2, F3 равна соответственно 3,6,0.
Реализация с использованием массивов. Программа работы с линейной очередью на языке Паскаль ProgrammQueue_Test; qnext, (* Индекс занесения *) procedureqstore(i:Integer); (* Процедура записи в очерель *) functionqretrieve():Integer; (* Функция считывания из очереди *) Функция qretrieve() извлекает из очереди первый элемент; хранившиеся в этом элементе данные "разрушаются". Если из очереди удалены все элементы, она становится пустой. На самом деле qretrieve() в этом примере не разрушает информацию, но информацию можно считать удаленной, так как дальнейший доступ к ней невозможен.
|