КАТЕГОРИИ:
АстрономияБиологияГеографияДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРиторикаСоциологияСпортСтроительствоТехнологияФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника
|
Билет №5. Параметры-переменныеПараметры-переменные Признаком параметра-переменной является ключевое слово var перед описанием параметра: var имя : тип; Например, передача в процедуру Р параметра-переменной целого типа записывается так: procedure P(var x : integer); При вызове подпрограммы в область параметров копируется не значение переменной, а ее адрес, и подпрограмма через него имеет доступ к ячейке, в которой хранится переменная. Этот способ передачи параметров называетсяпередачей по адресу. Подпрограмма работает непосредственно с переменной из вызывающей программы и, следовательно, может ее изменить. ВНИМАНИЕ При вызове подпрограммы на месте параметра-переменной может находиться только ссылка на переменную точно того же типа. Проиллюстрируем передачу параметров-значений и параметров-переменных на примере. var a, b, c, d, e : word; procedure X(a, b, c : word; var d : word); var e : word;begin c := a + b; d := c; e := c; writeln ('Подпрограмма:'); writeln ('c = ', c, ' d = ', d, ' e = ', e);end; begin a := 3; b := 5; x(a, b, c, d); writeln ('Главная программа:'); writeln ('c = ', c, ' d = ', d, ' e = ', e);end.Результаты работы этой программы приведены ниже: Подпрограмма: c = 8 d = 8 e = 8Главная программа: c = 0 d = 8 e = 0Значение переменной с в главной программе не изменилось, поскольку переменная передавалась по значению, а значение переменной е не изменилось потому, что в подпрограмме была описана локальная переменная с тем же именем.
Массивы: описание и действия с ними Массив - это упорядоченная совокупность данных одного типа. Такая совокупность характеризуется общим числом элементов (компонент), размером и размерностью, которая определяет способ организации данных внутри массива. Различают одномерные массивы (векторы), двумерные массивы (матрицы) и n-мерные массивы. Величина n ограничивается максимальным размером структуры. Следовательно, вектор характеризуется одним типом индексов, который задает нумерацию его элементов; матрица - двумя типами индексов, один из которых определяет номер строки в массиве, а другой задает номер столбца; n-мерный массив использует n типов индексов. Одномерный тип-массив описывается следующим образом: type <имя_типа> = array [<тип_индексов>] of <тип_компонент>; Тип индексов может быть любым порядковым, кроме Longint, Integer, Word. Компоненты могут быть любого типа, в том числе и структурированного, т.е. можно описать тип-массив, элементами которого будут, например, записи. Двумерный тип-массив может быть описан одним из двух способов: type <имя_типа> = array [<тип_индексов_строк>] of array [<тип_индексов_столбцов>] of <тип_компонент>; Такой тип представляет собой массив строк, каждая из которых - массив элементов определенного типа. Обычно приведенную конструкцию разбивают для упрощения восприятия описания на две, например так: type stroka = array [1..5] of byte; {строка матрицы} matrix = array [1..3] of stroka; {матрица - массив строк} 2) type matrix = array [1..3, 1..5] of byte; Второй способ описания типа предполагает перечисление через запятую в квадратных скобках типов индексов строк и столбцов матрицы. Оба способа равнозначны. Элемент матрицы m типа matrix, находящийся на пересечении i-ой строки и j-го столбца, в программе записывается следующим образом: Действия над массивами
|