Составители:
Рубрика:
{5} procedure Write_List ( x : Ref_S_expr );
begin {выводит последовательность элементов }
if not Null( x ) then {списка без обрам ляющихего скобок}
begin Write_H_list ( Head ( x ) ); Write_List ( Tail ( x ) )
end;
end {Write_List};
Смысл сообщений об ошибках, обнаруженных при вводе иерархического
списка, очевиден. Пробелы при вводе списка игнорируются. Процедуру выво-
да списка предлагается написать самостоятельно.
1.8. Упражнения
Каждое задание предполагает самостоятельную разработку студентом од-
ного или нескольких модулей Турбо-Паскаля, реализующих согласованный с
преподавателем набор операций над списками, а также главной программы,
непосредственно решающей поставленную задачу.
В заданиях 1-16 термином "список" обозначен линейный список. При выпол-
нении этих заданий следует применять по указанию преподавателя итеративные
или рекурсивные процедуры обработки линейных списков. Задание 17 предлага-
ется выполнить в двух вариантах: с использованием базовых функций рекурсив-
ной обработки иерархических списков и без использования рекурсии.
Во всех случаях, когда это не оговорено особо, предполагается, что исход-
ные и результирующие списки размещаются в файлах подходящего типа. Для
представления иерархических списков в задании 17 рекомендуется использо-
вать сокращенную скобочную запись.
1. Вставить в список l элементов типа Real:
а) новый элемент e1 перед каждым вхождением элемента e;
б) новый элемент e1 за каждым вхождением элемента e;
в) новый элемент e так, чтобы сохранилась упорядоченность по неубыва-
нию исходного непустого списка.
2. Удалить из списка l элементов типа Real:
а) за каждым вхождением элемента e один элемент, если такой есть и он
отличен от e;
б) все отрицательные элементы.
3. Проверить:
а) равны ли списки l1 и l2;
б) входит ли список l1 в список l2;
в) равны ли множества, представленные списками l1 и l2 ( рассматривать
одинаковые элементы списка как один элемент множества);
г) составляют ли элементы списка l1 подмножество элементов списка l2;
д) есть ли в списке l хотя бы два одинаковых элемента;
е) предшествует ли в списке l первое вхождение элемента e1 первому вхо-
ждению элемента e2.
32
{5} procedure Write_List ( x : Ref_S_expr ); begin {выводит последовательность элементов } if not Null( x ) then {списка без обрам ляющихего скобок} begin Write_H_list ( Head ( x ) ); Write_List ( Tail ( x ) ) end; end {Write_List}; Смысл сообщений об ошибках, обнаруженных при вводе иерархического списка, очевиден. Пробелы при вводе списка игнорируются. Процедуру выво- да списка предлагается написать самостоятельно. 1.8. Упражнения Каждое задание предполагает самостоятельную разработку студентом од- ного или нескольких модулей Турбо-Паскаля, реализующих согласованный с преподавателем набор операций над списками, а также главной программы, непосредственно решающей поставленную задачу. В заданиях 1-16 термином "список" обозначен линейный список. При выпол- нении этих заданий следует применять по указанию преподавателя итеративные или рекурсивные процедуры обработки линейных списков. Задание 17 предлага- ется выполнить в двух вариантах: с использованием базовых функций рекурсив- ной обработки иерархических списков и без использования рекурсии. Во всех случаях, когда это не оговорено особо, предполагается, что исход- ные и результирующие списки размещаются в файлах подходящего типа. Для представления иерархических списков в задании 17 рекомендуется использо- вать сокращенную скобочную запись. 1. Вставить в список l элементов типа Real: а) новый элемент e1 перед каждым вхождением элемента e; б) новый элемент e1 за каждым вхождением элемента e; в) новый элемент e так, чтобы сохранилась упорядоченность по неубыва- нию исходного непустого списка. 2. Удалить из списка l элементов типа Real: а) за каждым вхождением элемента e один элемент, если такой есть и он отличен от e; б) все отрицательные элементы. 3. Проверить: а) равны ли списки l1 и l2; б) входит ли список l1 в список l2; в) равны ли множества, представленные списками l1 и l2 ( рассматривать одинаковые элементы списка как один элемент множества); г) составляют ли элементы списка l1 подмножество элементов списка l2; д) есть ли в списке l хотя бы два одинаковых элемента; е) предшествует ли в списке l первое вхождение элемента e1 первому вхо- ждению элемента e2. 32
Страницы
- « первая
- ‹ предыдущая
- …
- 30
- 31
- 32
- 33
- 34
- …
- следующая ›
- последняя »