Задание к лабораторной работе




Составить подпрограмму, реализующую действия, соответствующие варианту задания, приведенному ниже. Номер варианта выбирается по порядковому номеру студента в списке группы. Для отладки подпрограммы составляется основная программа, включающая определение структур данных и средства контрольного вывода результатов на экран. Числа и множества можно выводить в шестнадцатеричном виде.

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 одинаковые записи и вывести такие записи на экран вместе с индексами.

 



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2016-04-27 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: