- •Базы Данных
- •3.2. Case – технология, назначение, возможности. Программные средства автоматизированного проектирования информационных систем.
- •5. Команда по реинжинирингу
- •3.5. Функциональное моделирование. Методология idef0. Особенности моделирования.
- •3.6. Функциональное моделирование. Элементы модели: работа, стрелка, icom-коды. Графическая интерпретация модели.
- •Последовательность создания диаграммы
- •3.7. Информационное моделирование. Методология dfd. Особенности моделирования.
- •3.15. Язык sql.Структура инструкции: команда, ключевое слово. Инструкции select, update, delete. Создание однотабличных и многотабличных запросов.
- •3.17. Запросы. Запросы и локальные представления. Создание запросов. Язык sql.
- •3.18. Отчеты. Назначение и типы отчетов. Инструменты создания отчетов. Технология создания отчетов.
- •3.19. Данное и его характеристики. Основные и производные типы данных. Инициализация данных.
- •3.20. Понятие алгоритма. Свойства алгоритма. Управляющие структуры алгоритмов и их разновидности.
- •Свойства алгоритмов
- •Типовые структуры алгоритмов
- •3.21. Классификация алгоритмических языков программирования. Особенности языков программирования.
- •3.26. Интегрированная среда программирования. Элементы среды и их назначение. Инструменты отладки программ.
- •Виды трансляторов
- •2 Часть – раздел объявлений
- •Сложные (структурные) переменные
- •3.30. Понятие массива. Массивы строк. Инициализация массивов.
- •Объявление одномерного числового массива
- •Операции ссылки
- •3.32. Реализация управляющих структур (условие, цикл) в языке программирования.
- •Требования к организации цикла
- •Типы циклов
- •3.33. Функции и процедуры. Понятие, типы. Формальные и фактические аргументы. Объявление функций. Вызов функций.
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. Типы операций. Приоритеты операций. Унарные и бинарные операции, операции ссылки.
Различают следующие категории (типы) операций:
Операции ссылки (первичные)
Унарные (воздействуют на один операнд)
Унарные побитовые
Бинарные (участвуют два операнда)
Бинарные побитовые
Тернарные (участвуют три операнда)
Присваивания
Каждая операция имеет два свойства:
Приоритет – это свойство, которое задает порядок выполнения разнотипных операций в одном выражении.
Группировка (ассоциативность) – порядок выполнения однотипных операций (все операции группируются слева направо).
Унарные операции (приоритет выше):
( ) – взятие в круглые скобки (наивысший приоритет; используется для изменения стандартных приоритетов).
- - унарный минус (операция изменения знака).
not – логическое отрицание, логическая операция. Приоритет ниже. Может применяться к различным типам данных.
Boolean – not false→true
Цикл – while not Eof (пока не обнаружит конец файла повторять цикл)
Integer – not превращается в побитовую операцию – каждый бит целого числа заменяется на противоположное значение.
Бинарные операции
Приоритет ниже, чем у унарных. Группируются слева направо.
Операции умножения:
Арифметическое умножение
* - обычное умножение;
/ - обычное деление;
div – целочисленное деление – результат целое число (25 div 7 → 3)
mod – остаток от целочисленного деления (25 mod 7 → 4)
Логические операции умножения
And – для Boolean и Integer логическое «и». (для Integer побитовое логическое «и»)
Результат – парное перемножение бит соответствующих разрядов левого и правого операндов.
Побитовые операции.
Shl – побитовый сдвиг влево первого операнда на количество позиций, указанных во втором операнде (2 shl 1 → 4 результат 0010 → 0100)
Shr - побитовый сдвиг вправо первого операнда на количество позиций, указанных во втором операнде (2 shl 1 → 4 результат 0010 → 0001)
Операции сложения.
«+» - обычное сложение, «-» - обычное вычитание (арифметические)
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 или 0).