- •1. Структура модулей и преимущества их использования
- •2. Описание объектных типов в языке программирования Pascal. Статические и виртуальные методы.
- •Нетипизированные файлы
- •Текстовые фалы
- •4. Моделирование линейных динамических информационных структур средствами высокого уровня
- •5. Рекурсивные процедуры обхода двоичных деревьев.
- •6. Представление разреженных матриц линейными массивами
- •8. Номенклатура сегментных регистров и способы адресации в младших моделях процессоров Intel.
- •8. Макросредства языка Assembler.
- •9. Основные типы ядра операционной системы
- •11. Семиуровневая модель взаимодействия открытых систем iso.
- •Уровни модели osi
- •12. Технология «клиент-сервер». Назначение прокси-сервера, сервера приложений, web-сервера и т.П.
- •13. Барьерная синхронизация. Флаги и управляющие процессы: крупномодульное решение.
- •15. Алгоритмы сортировки.
- •16. Нормализация. 1нф, н1нф, 2нф, 3нф, нфбк.
- •17. Транзакции. Тупики. Уровни изолированности пользователей.
- •II. Транзакции и параллельная работа
- •III. Транзакции, откаты и восстановление после сбоев
- •18. Язык sql. Таблицы. Запросы. Вставка, удаление и обновление.
- •19. Реляционная алгебра.
- •20. Классические и стандартные технологические процессы.
- •21. Основные технологические подходы.
- •3.5.2.4.
- •23. Создание mdi приложений в Delphi.
- •24. Методы описания языков программирования. Бнф. Классы грамматик языков. Общая схема трансляции. Функции отдельных блоков транслятора.
6. Представление разреженных матриц линейными массивами
Способы линейного упорядочение массива:
построчное
постолбцовое
для определения номера элемента массива в линейном упорядочении определим функцию расстановки.
A: array[1..m, 1..n] of ElemType;
При построчном упорядочении элементов этой матрицы . при постолбцовом:.
Разряженной называется матрица, большая часть элементов которой принимает некоторое стандартное значение(обычно 0).
Для нижняя прямоугольная матрица:
может быть представлена через следующее соотношение:
Index = ((i - 1) * i) DIV 2 + j
Представление разряженной матрицы на основе линейных массивов основано на использовании двух статически определенных массивов. В 1ом массиве хранятся сами значения элементов разряженной матрицы, а во 2ом – их положение в матрице.
Const
N = 20;
M = (n * n) DIV 2;
Type
VectE = array[1..m] of real;
VectC = array[1..m] of word;
Procedure InputA3(var VE:VectE;
var LC:VectC,
var s: word);
var
I, j : byte;
Elm : real;
Begin
Writeln(‘input matrix’);
S := 0;
For j := 1 to n do
For i := 1 to n do
begin
Readln(elm);
If elm <> 0 then
Begin
Inc(s);
VE[s] := elm;
Lc[s] := I + (j - 1) * n;
End;
End;
end;
procedure sumAB(var VEA, VEBm VEC : VectE;
var LCA, LCB, LCC : VectC;
var sa, sb, sc : word);
var
ka, kb, l, i, j : word;
begin
if sa = 0 then
begin
sc := sb;
LCC := LCB;
VEC := VEB;
end
else
if sb = 0 then
begin
sc := sa;
LCC := LCA;
VEC := VEA;
End
Else
Begin
ka := 1;
kb := 1;
sc := 0;
for j := 1 to n do
for i := 1 to n do
begin
l := I + (j – 1) * n;
if (l = LCA[ka]) and (l = LCB[kb]) then
begin
inc(sc);
VEC[sc] := VEA[ka] + VEB[kb];
Inc(ka);
Inc(kb);
LCC[sc] := l;
End
Else
If l = LCA[ka} then
Begin
Inc(sc);
VEC[sc] := VEA[ka];
Inc(ka);
LCC[sc] := l;
End
Else
If l = LCB[kb] then
Begin
Inc(sc);
VEC[sc] := VEB[kb];
Inc(kb);
LCC[sc] := l;
End;
end;
End;
end;
8. Номенклатура сегментных регистров и способы адресации в младших моделях процессоров Intel.
Регистр является локальной памятью микропроцессора(устройства, допускающего чтение и запись). Процессор имеет группу регистров общего назначения. Эти регистры могут быть использованы в арифметических, логических командах, операциях пересылки. Кроме того, они могут иметь специальное назначение.
Ax(Ah:Al) – сохранение результатов вычисления
Bx(Bh:Bl) – регистр базы, хранилище адреса
Cx(Ch:Cl) – регистр счетчика, служит в командах организации цикла местом, где хранится число повторений цикла
Dx(Dh:Dl) – регистр данных, имеет специальное применение в командах умножения и деления.
К содержимому этих регистров можно обратится как к 16-ти разрядному или к паре 8-ми битных.
SP- указатель стека. Он используется в командах работы со стеком.
BP- указатель базы, при работе со стеком для того, чтобы отмечать область стека, отличную от верхушки стека.
SI – регистр индекса источника. DI – регистр индекса приемника. SI и DI используются в командах работы с массивами или строками. К половине регистра нельзя обратиться.
Сегментными называются 16-ти разрядные регистры, которые используются для вычисления физического адреса. CS-сегментный регистр кода. DS – сегментный регистр данных. SS – сегментный регистр стека. ES – регистр дополнительного сегмента. Команда микропроцессора может занимать 1-6 байтов (количество операндов 0-2). Если команда работает с операндами, то операнд можно указывать: в самой команде(непосредственный операнд); в регистре (в команде указывается номер соответствующего регистра); операнд находится в ячейке памяти. Если в команде указываются физические адреса, то её общая длина сильно увеличивается.
Для сокращения кода адреса используется прием, который называется сегментированием.
Адрес произвольной ячейки в ОП отсчитывается не от самого начала ОП(не от 0), а от некоторой границы области в ОП, которую имеет смысл рассматривать в данной задаче.
Адрес = базовый_адрес + смещение.
Сегмент – это непрерывная область в ОП, начальный адрес которой кратен 16, а размер не превышает 64 Кб.
Параграф – участок ОП размером 16 байт, начальный адрес которого кратен 16.
Любой сегмент должен начинаться с какого-либо параграфа. Сегменты могут не перекрываться, частично перекрываться или полнгостью перекрываться. Начальные адреса сегментов хранятся в сегментных регистрах.
Физический адрес = Base * 16 + offset
Base – адрес сегмента
Offset – исполнительный адрес
Сдвиг влево на 1-ну 16-ричную цифру с дописыванием нулевой 16-ричной цифры в качестве крайней правой объясняется тем, что из-за того, что адрес сегмента всегда кратен 16-ти, то младшая цифра в сегментный регистр не пишется.
Варианты задания исполнительного адреса:
прямая адресация: в команде указывается то смещение, которое соответствует началу размещения в памяти соответствующего операнда (считается, что все операнды находятся в сегменте данных, поэтому при вычислении адреса используется текущее содержимое регистра DS)
косвенная адресация – смещение соответствующего операнда в сегменте содержится в одном из регистров микропроцессора. Таким образом, текущее содержимое регистра микропроцессора определяет исполнительный адрес того операнда, который бедт использоваться в команде.
Add ax, word ptr ds:[bx]
Add ax, word ptr[bx]
стандартная адресация – в качестве регистра косвенной адресации для микропроцессора могут использоваться только регистры Bx, SI, DI, BP. Для первых 3-ч регистров их содержимое является смещением по отношению к сегменту данных. Регистр Bp определяет смещение в сегменте стека для вычисления адреса.
Относительная адресация: add ax, pole
Индексная адресация: add ax, pole[SI] (pole имеет относительный адрес, SI – адрес смещения относительно самого массива pole)