Студопедия

КАТЕГОРИИ:

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника



Билет №5. Параметры-переменные




Читайте также:
  1. БИЛЕТ -1
  2. Билет 1
  3. Билет 1
  4. Билет 1
  5. БИЛЕТ 1
  6. Билет 1
  7. Билет 1
  8. Билет 1
  9. Билет 1
  10. Билет 1

Параметры-переменные

Признаком параметра-переменной является ключевое слово 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-го столбца, в программе записывается следующим образом:

Действия над массивами
Для работы с массивом как единым целым используется идентификатор массива без указания индекса в квадратных скобках. Массив может участвовать только в операциях отношения "равно", "не равно" и в операторе присваивания. Массивы, участвующие в этих действиях, должны быть идентичны по структуре, т. е. иметь одинаковые типы индексов и одинаковые типы компонентов.
Например, если массивы А и В описаны как
var А, В: array[1..20] of real; то применение к ним допустимых операций даст следующий результат:
Выражение Результат
А=В True, если значение каждого элемента массива А равно соответствующему значению элемента массива В
А<>В True, если хотя бы одно значение элемента массива А не равно значению соответствующего элемента массива В
А:=В Все значения элементов массива В присваиваются соответствующим элементам массива А. Значения элементов массива В остаются неизменны.



 


Дата добавления: 2015-04-21; просмотров: 2; Нарушение авторских прав







lektsii.com - Лекции.Ком - 2014-2021 год. (0.011 сек.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав
Главная страница Случайная страница Контакты