Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
3 БазыДанных- ответы.doc
Скачиваний:
23
Добавлен:
22.02.2015
Размер:
354.3 Кб
Скачать

3.30. Понятие массива. Массивы строк. Инициализация массивов.

Массив – это совокупность однородных данных, которые имеют один тип и одно имя, различаются по порядковому номеру (индексу).

Обращение к элементу массива происходит по порядковому номеру (указывается имя массива и в квадратных или круглых скобках (зависит от языка программирования) номер элемента).

Типы массивов:

- одномерный массив

- двумерных массив

- массив строк

- многомерный массив

Пример: В[2] означает второй элемент массива В.

Пусть имеется некоторая последовательность величин 1, 2, 4, 8, 3.

Все элементы этой последовательности имеют одно имя А.

Отличаются они друг от друга индексами, например, A[1]=1, A[2]=2, A[3]=4, A[5]=8, A[6]=3.

При описании массива указывается число его элементов, и это число остается постоянным при выполнении программы. Каждый элемент массива имеет явное обозначение, и к нему возможно непосредственное обращение.

Количество индексов в обозначении элемента массива определяет размерность массива. Массив может быть одномерным (один индекс S[4]), двумерным (два индекса N[2,4]), трех мерным (три индекса Y[2,4,1]) и т.д.

Массив описывается в разделе описания переменных, при этом описание массива включает описание типа массива (тип его элементов, т.е. какие значения они могут принимать) и типа индексов. Например, массив вещественного типа с именем vector может быть описан следующим образом:

var vector: array [1..50] of real

Это описание означает, что одномерный массив vector имеет 50 элементов типа real со значениями индекса 1,2, ...,50. Элементы этого массива будут иметь обозначения: vector[1], vector[2], ..., vector[50]

Объявление одномерного числового массива

1) Var

Mas:Array[1..100] of Integer;

2) CONST

M=100;

Var

Mas:Array[1..M] of Integer;

3) TYPE

DIM=1..100;

Var

Mas:Array[DIM] of Integer;

Все перечисленные – это объявление статических массивов, для которых память распределяется при компиляции программы, до ее выполнения.

Доступ к элементу массива

Mas[i], где i=1..M

Инициализация массива

CONST

Mas:Array[1..3] of Real=(1.5,2.5,3.5); (присвоение значений только в константах, в Var нельзя)

Двумерный массив matrix, с целочисленными компонентами можно определить следующим образом:

var matrix [1..10,1..15] of integer

Двумерный массив часто называют матрицей. Первый индекс этого массива (номер строки матрицы) принимает значения из отрезка 1..10, а второй (номер столбца) - из отрезка 1..15. Компоненты массива могут иметь обозначения: matrix[1,5], matrix[8,8], matrix[i,j] и т.п.

Доступ к элементу массива

Mas[i,j] ,где i - количество строк, j - количество столбцов.

Инициализация двумерного массива

CONST

Mas:Array[1..2,1..2] of Integer=((1,2),(3,4))

Объявление массива строк

Var

List:Array[1..4] of String; где List - идентификатор массива строк (переменная)

Инициализация массива строк

CONST

Menu:Array[1..4] of String=(‘1.Открыть’,’2.-----‘,’3.------‘,’4.-------‘);

Доступ к одной строке массива строк

For i=1 To 4 Do

Writeln(menu[i]);

Многомерный массив строк

Объявление многомерного массива строк

TYPE

Name=String[20]; {тип объявления переменной для фамилии}

Group=Array[40] of Name;

Var

Gr:Group; {Gr - переменная, Group - тип переменной}

Potok:Array[10] of Group;

3.31. Типы операций. Приоритеты операций. Унарные и бинарные операции, операции ссылки.

Различают следующие категории (типы) операций:

  • Операции ссылки (первичные)

  • Унарные (воздействуют на один операнд)

  • Унарные побитовые

  • Бинарные (участвуют два операнда)

  • Бинарные побитовые

  • Тернарные (участвуют три операнда)

  • Присваивания

Каждая операция имеет два свойства:

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

Группировка (ассоциативность) – порядок выполнения однотипных операций (все операции группируются слева направо).

Унарные операции (приоритет выше):

  1. ( ) – взятие в круглые скобки (наивысший приоритет; используется для изменения стандартных приоритетов).

  2. - - унарный минус (операция изменения знака).

  3. not логическое отрицание, логическая операция. Приоритет ниже. Может применяться к различным типам данных.

  • Boolean – not false→true

  • Цикл – while not Eof (пока не обнаружит конец файла повторять цикл)

  • Integer – not превращается в побитовую операцию – каждый бит целого числа заменяется на противоположное значение.

Бинарные операции

Приоритет ниже, чем у унарных. Группируются слева направо.

  1. Операции умножения:

    1. Арифметическое умножение

* - обычное умножение;

/ - обычное деление;

div – целочисленное деление – результат целое число (25 div 7 → 3)

mod – остаток от целочисленного деления (25 mod 7 → 4)

    1. Логические операции умножения

And – для Boolean и Integer логическое «и». (для Integer побитовое логическое «и»)

Результат – парное перемножение бит соответствующих разрядов левого и правого операндов.

    1. Побитовые операции.

Shl – побитовый сдвиг влево первого операнда на количество позиций, указанных во втором операнде (2 shl 1 → 4 результат 0010 → 0100)

Shr - побитовый сдвиг вправо первого операнда на количество позиций, указанных во втором операнде (2 shl 1 → 4 результат 0010 → 0001)

  1. Операции сложения.

«+» - обычное сложение, «-» - обычное вычитание (арифметические)

or – логическое «или» для Boolean (для Integer побитовая операция, т.е. логическая сумма соответствующих пар битов)

xor – исключающая «или» - для Boolean результат операции True, если операнды различны (для Integer является побитовой операцией, сравниваются соответствующие пары бит целых чисел).

a

b

a or b

a xor b

f

f

false

false

t

f

true

true

f

t

true

true

t

t

true

false

  1. Операции отношения или операции сравнения (>, >=, <, <=, == равно, <> не равно)

Результатом операции отношения является истина или ложь (1 или 0).