Составить подпрограмму, реализующую действия, соответствующие варианту задания, приведенному ниже. Номер варианта выбирается по порядковому номеру студента в списке группы. Для отладки подпрограммы составляется основная программа, включающая определение структур данных и средства контрольного вывода результатов на экран. Числа и множества можно выводить в шестнадцатеричном виде.
1. Для списка List, содержащего сведения о книгах в библиотеке, вывести на экран названия всех книг заданного автора Author, изданных между годами Year1 и Year2.
type ListPtr=^ListNode;
ListNode=record
Author: string[30];
BookName: string;
Year: word;
Next: ListPtr
end;
var List: ListPtr;
Author: string[30];
Year1, Year2: word;
2. В списке из задания 1 удалить вершины, в которых поля Author и BookName пусты, либо значение поля Year находится вне диапазона задаваемого Year1 и Year2. Управление динамической памятью не учитывать.
3. В массиве, содержащем список телефонов Phone длиной Len, упорядочить записи по возрастанию номеров Number.
var Phone: array[1..10] of record
Name: string;
Number: longint
end;
Len:byte.
4. В массиве из задания 3 удалить записи, имеющие поле Number <= 0, либо пустое поле Name, откорректировав длину списка Len.
5. По символьной матрице с максимальным размером 10х10 получить транспонированную матрицу, поменяв местами строки и столбцы. Текущий размер матрицы находится в переменной N.
6. Дано произвольное множество А и переменная N, содержащая номер элемента множества, написать подпрограммы, выполняющие: исключение N из А – procedure Off(var A; N: byte); включение N в А – procedure On(var A; N: byte); проверку вхождения N в А (возвращает true, если входит) – function Test(var A; N: byte): boolean. Если N превышает максимально допустимое значение, то первые две процедуры ничего не должны выполнять, а функция возвращает false.
|
7. Для произвольных, но одинаковых по размеру множеств A, B с объявленным числом элементов М составить подпрограммы, выполняющие: подсчет реального числа элементов (мощность множества) – function Card(var A; M: byte): byte; проверку включения множества А в множество В (возвращает true, если входит) – function SubSet(var A, B; M: byte): boolean; операции объединения (s=0), разности (s=3) множеств А, В с результатом в В – procedure Operate(var A, B; M, S: byte). Ошибка превышения М предельного значения не контролируется.
8. Вывести на экран в алфавитном порядке все русские буквы из массива Letters: array['a'..'h'] of string, входящие в него по одному разу. Индекс последней строки массива находится в переменной N: char.
9. В символьной матрице 20х20, первоначально содержащей пробелы, заполнить позиции, индексы i,j которых входят в множества SetI(строки) и SetJ(столбцы) типа set of 0..19. Код символа-наполнителя связан с индексами выражением: Sym=i+j+32.
10. Для списка List из задания 1 написать подпрограмму реверсирования, переставляющую первую вершину с последней, вторую – с предпоследней и т.д.
11. В списке List из задания 1 упорядочить записи по возрастанию года издания Year.
12. Написать подпрограмму function SubSet (List, List1: ListPtr): boolean, возвращающую true, если список List (задание 1) включает все вершины списка List1.
13. Упорядочить по убыванию числа в столбцах массива A: array[-4..5, '0'..'7'] of longint. Текущие границы массива находятся в переменных Imax, Jmax.
14. Написать подпрограмму подстановки в список List (задание 1) вершин из списка List1, отсутствующих в List.
15. В упорядоченный по возрастанию номеров Number список Phone (задание 3) включить все отсутствующие в нем записи из неупорядоченного списка Phone1 длиной Len1, сохранив упорядоченность и соответственно изменив Len.
|
16. Для списка List из задания 1 осуществить поиск и вывод на экран сведений о книгах с годом издания Year1, имя автора которых включает подстроку Substr типа string в произвольном месте поля Author.
17. Написать подпрограмму вывода на экран сведений из списка Phone (задание 3), в которых поле Number лежит в пределах определяемых переменными Number1, Number2, а поле Name не содержит букв из множества Letters: set of char.
18. Написать подпрограмму определяющую, является ли целочисленная матрица с максимальным размером 10х10 "магическим квадратом", суммы всех строк и столбцов которого одинаковы. Текущий размер матрицы задается переменной N.
19. В списке List из задания 1 удалить одинаковые вершины, не учитывая управление динамической памятью.
20. Определить, есть ли в произвольно упорядоченных списках Phone и Phone1 (задание 3), равной длины Len одинаковые записи и вывести такие записи на экран вместе с индексами.