- •Задачи часть 2
- ••3. Задача о рисовании движущейся картинки (Квадрат вписанный в Круг).
- •Вопросы и задачи к экзамену 2010
- •Вопросы
- •1.Понятия алгоритм, программа, процесс. Дайте формальное определение алгоритма и поясните его свойства. Понятия
- •6.Понятие рекурсии. Определение рекурсивного алгоритма. Какие задачи решаются рекурсивными методами. Разбиение задачи на
- •11.Изложите алгоритм метода быстрой сортировки Хоара. (11,22)
- •16.Для чего нужны древовидные структуры данных? Приведите и проиллюстрируйте основные определения: порядок узла,
- •20.Понятия статического и динамического распределения памяти. Что такое указатель? Операции над указателями. Что
- •24.Что такое записи в языке Pascal? Как они описываются, в чем особенность вариантной
- •Задачи
- ••1) В упорядоченном по ключу к массиве записей {a[i].f, a[i].k} (f – фамилия;
- ••3. Задача о рисовании движущейся картинки (Квадрат вписанный в Круг).
- ••2) Ввести массив записей {a[i].f, a[i].k} (f - фамилия; к - учетный номер)
- ••6) Ввести массив записей {a[i].f, a[i].k} (f - фамилия; к - учетный номер)
- ••8) Ввести массив записей {a[i]:TInf } (Inf.F - фамилия; Inf.к - учетный номер)
- ••7) Ввести массив записей {a[i]:TInf } (Inf.F - фамилия; Inf.к - учетный номер)
- ••10) Составить программу вычисления
- ••11) Составить программу преобразования арифметического выражения, записанного в инфиксной форме в выражение, записанное
- ••12) Ввести массив n записей с заданным распределением ключей {a[i]:TInf} (Inf.F - фамилия;
- ••15) Ввести массив записей со случайным распределением ключей {a[i].Inf} (Inf.F - фамилия; Inf.к
- ••14) Ввести массив записей с
- ••13) Составить программу, в которой организовать ввод массива n записей с заданным распределением
•10) Составить программу вычисления
арифметического выражения,
записанного в постфиксной форме.
•Выражение ввести из окна TEdit1, значения
однобуквенных операндов ввести из StringGrid1, результат поместить в Edit2.
• Алгоритм вычисления оформить в отдельном модуле в виде методов Add, Read работы со стеком и метода AV класса. (11,27)
21
•11) Составить программу преобразования арифметического выражения, записанного в инфиксной форме в выражение, записанное в постфиксной форме.
•Исходное выражение ввести из окна Edit1, преобразованное выражение поместить в
Edit2.
•Алгоритм преобразования оформить в отдельном модуле в виде методов Add, Read работы со стеком и метода OBP класса. (12,28)
22
•12) Ввести массив n записей с заданным распределением ключей {a[i]:TInf} (Inf.F - фамилия; Inf.к - учетный номер) из
StringGrid1 в двоичное дерево поиска
методом AddB, после чего прочитать его в
StringGrid2 методом Wrt1B.
•Методы класса AddB и Wrt1В оформить в отдельном модуле. (13,29)
23
•15) Ввести массив записей со случайным распределением ключей {a[i].Inf} (Inf.F - фамилия; Inf.к - учетный номер) из
StringGrid1 в двоичное дерево поиска
процедурой AddB.
•После чего найти в дереве поиска и
распечатать в Memo1 запись с ключом k, введенным из Edit1.
•Методы класса AddB и PoiskВ оформить в отдельном модуле. (14)
24
•14) Ввести массив записей с
упорядоченным распределением ключей {a[i]:TInf } (Inf.F - фамилия; Inf.к - учетный номер) из StringGrid1 в двоичное сбалансированное дерево с помощью метода Blns.
•После чего найти в дереве поиска с помощью функии MinkB и распечатать в Memo1 запись с минимальным ключом.
•Методы класса Blns, MinkB оформить в отдельном модуле. (17)
25
•13) Составить программу, в которой организовать ввод массива n записей с заданным распределением ключей {a[i].Inf} (Inf.F - фамилия; Inf.к - учетный номер) из
StringGrid1 в хеш-таблицу размера M>=n
методом Add и организовать поиск записи в хеш-таблице по заданному ключу x методом
Read.
•Значения М, х ввести из окон Edit, найденную фамилию вывести в окно Edit.
•В отдельном модуле написать класс для работы с хеш-таблицей на основе массива из стеков, который включает конструктор
Create(M0), а также два метода Add(Inf:Tinf) и Read(Key:Word):Tinf. (16,26)
26
