- •27. Составной оператор (блок). Условный оператор. Оператор перехода goto и помеченный оператор. Оператор цикла с параметром (оператор for)
- •28. Оператор цикла с предусловием (оператор while). Оператор цикла с постусловием (оператор repeat). Оператор варианта (оператор case).
- •29. Функции и процедуры в псевдокодах
- •30.Бинарное дерево поиска. Сортировка элементов, хранящихся в бинарном дереве поиска.
- •31. Оператор проверки принадлежности элемента множеству. Оператор вставки элемента в бинарное дерево поиска.
- •32.Оператор удаления элемента из бинарного дерева
- •33. Оценка эффективности алгоритмов на бинарном дереве поиска.
- •34. Частично упорядоченные деревья – основные понятия. Оператор удаления наиболее приоритетного элемента из частично упорядоченного двоичного дерева.
- •35. Оператор вставки элемента в частично упорядоченное дерево.
- •36. Реализация частично упорядоченного двоичного дерева двоичной кучей.
- •37. Нагруженные деревья – основные понятия. Реализации узлов нагруженного дерева (атд treenode). Основные операторы для атд treenode.
- •38. Реализация нагруженного дерева (атд tree). Структура программы для проверки орфографии с помощью нагруженного дерева.
- •39. Структура 2-3 дерева. Поиск записи с заданным ключом в 2-3 дереве.
- •40. Вставка элемента в 2-3 дерево.
- •41. Удаление элемента из 2-3 дерева
- •42. Остовные деревья минимальной стоимости (одмс) – основные понятия. Основное свойство одмс (с доказательством).
- •43. Алгоритм Прима построения одмс.
- •44. Понятие задачи коммивояжера. Жадный алгоритм для приближенного решения задачи коммивояжера.
- •45. Задача коммивояжера для полного графа с неравенством треугольника. Основные шаги алгоритма решения задачи. Утверждение 5.1 максимально погрешности алгоритма.
27. Составной оператор (блок). Условный оператор. Оператор перехода goto и помеченный оператор. Оператор цикла с параметром (оператор for)
Блок:
begin
x:=1;
y:=2;
end;
Условный оператор:
if ptr E=nil then x:=1 else x:=2;
После служебных слов then и else можно размещать по 1-му оператору, если надо совершить много действий, то следует оформить как блок goto и помеченный оператор:
(пример оператора перехода в составе условного оператора)
if x<=3 then goto 23;
23:y:=5; // помеченный оператор
В псевдокоде в качестве меток могут использоваться целые не отрицательные числа или идентификаторы.
Оператор с параметром (for):
Оператор начинается с for, после которого с помощью операторов присваивания задаются стартовые значения параметрам цикла, после to задаются конечные значения параметров, после do ставится тело цикла (1 оператор). При выполнении каждой итерации соответствующей параметрам цикла, значения параметров передаются от стартового до конечного, после цикл завершает работу.
Пример:
z:=0;
for i:=2 to n begin
mas [i] := i*x/y;
z := z+i*y;
end;
28. Оператор цикла с предусловием (оператор while). Оператор цикла с постусловием (оператор repeat). Оператор варианта (оператор case).
Оператор с предусловием (while):
Оператор начинается со служебного слова while, после записывается логическое выражение (по смыслу условия продолжения цикла и если false, то цикл завершается), после do ставится тело цикла (1 оператор).
Пример:
var
c: char;
c:=0; // стартовое значение счетчика итераций
while (i<=maxsize) and ((x/y)<i) do begin
i:=i+1;
mas1[1]:=x*i;
Dmas[i+1, c] :=r+I;
end;
Оператор с постусловием (repeat):
Начинается с repeat, после которого записывается последовательность операторов (тело цикла), после идет until, после котрого записывается логическое выражение логики работы цикла: в начале тело цикла → вычисление логического значения, если false, то новая итерация, иначе конец цикла.
Пример:
var
Ri:real;
DEL:real = 1.0e^(-7); // объявляем вещественные переменные
i:=0; y:=0; x:=0; // начальные значения переменных
repeal
y:=y+x;
i:=i+1;
x:=x*(z/i);
Ri:=y*x;
until Ri<DEL;
Оператор варианта (case):
Аналогичным в С++ является переключатель svich.
Оператор начинается со служебного слова case, после которого записывается «ключ выбора» - это выражения порядкового типа (целочисленное выражение), далее после of идет список выбора, состоящий из элементов выбора, каждый элемент включает в себя 1-ну или несколько меток выбора, после каждой метки ставится «:». В качестве меток должны использоваться те же типы, что и ключи, после меток в каждом элементе ставится 1-н оператор и после «;», далее идет else, после которого задается список операторов через «;». Оператор заканчивается «end;». Допустимо сокращение без «else».
Логика работы: вычисляется ключ выбора и управление передается тому оператору, который помечен меткой совпадающей по значению с ключом выбора, после выполнения работа оператора варианта в целом заканчивается, если значение ключа не совпало ни с одной меткой, то выполняется список операторов после else, а если else нет, то оператор прекращает работу.
Пример:
До входа некоторой переменной нужно стартовое значение (i), в примере оператор с 3-мя ветвями и дополнительная ветвь else
case (i div 5) of
1: j:=1;
3, 4, 9: j:=1000;
else j:=0, x:=0,99;
end;