Главная страница
Культура
Искусство
Языки
Языкознание
Вычислительная техника
Информатика
Финансы
Экономика
Биология
Сельское хозяйство
Психология
Ветеринария
Медицина
Юриспруденция
Право
Физика
История
Экология
Промышленность
Энергетика
Этика
Связь
Автоматика
Математика
Электротехника
Философия
Религия
Логика
Химия
Социология
Политология
Геология

Лабораторная 4. Лабораторная работа Получение списка из заданного списка с помощью преобразований



Скачать 34.14 Kb.
Название Лабораторная работа Получение списка из заданного списка с помощью преобразований
Анкор Лабораторная 4.docx
Дата 13.05.2017
Размер 34.14 Kb.
Формат файла docx
Имя файла Лабораторная 4.docx
Тип Лабораторная работа
#9326

Лабораторная работа № 4. Получение списка из заданного списка с помощью преобразований
Задание 4.1. Написать программу определения количества списков на заданном уровне в произвольном введенном исходном списке. Исходный список имеет уровень 0, вложенный в него список имеет уровень 1 и т.д.

Пример. Пусть имя программы p1, допустим, набрали исходный список

( a (b (c 1)d e) f ( (2 (g ) ) 3) ).

1 2 3 2 1 2 3 4 3 2 1 0

Тогда при обращении к программе (p1 '(a(b(c 1)d e)f((2(g))3)) 1) она выведет на экран сообщение “Количество списков на 1-м уровне равно 2”. При обращении к программе (p1 '(a(b(c 1)d e)f((2(g))3)) 2) она выведет на экран сообщение “Количество списков на 2-м уровне равно 2”. При обращении к программе (p1 '(a(b(c 1)d e)f((2(g))3)) 3) она выведет на экран сообщение “Количество списков на 3-м уровне равно 1”.
Задание 4.2. Написать программу определения количества атомов на заданном уровне в произвольном введенном исходном списке. Атомы, содержащиеся в исходном списке, имеют уровень 0, атомы, содержащиеся в следующем вложенном списке, имеют уровень 1 и т.д.

Пример. Пусть имя программы p1, допустим, набрали исходный список

( a (b (c 1)d e) f ( (2 (g ) ) 3) ).

1 2 3 2 1 2 3 4 3 2 1 0

Тогда при обращении к программе (p1 '(a(b(c 1)d e)f((2(g))3)) 0) она выведет на экран сообщение “Количество атомов на 0-м уровне равно 2”. При обращении к программе (p1 '(a(b(c 1)d e)f((2(g))3)) 1) она выведет на экран сообщение “Количество атомов на 1-м уровне равно 4”. При обращении к программе (p1 '(a(b(c 1)d e)f((2(g))3)) 2) она выведет на экран сообщение “Количество списков на 2-м уровне равно 3”.

Задание 4.3. Написать программу выделения списков на заданном уровне в произвольном введенном исходном списке. Сформировать из выделенных списков список и вывести его. Исходный список имеет уровень 0, вложенный в него список имеет уровень 1 и т.д.

Пример. Пусть имя программы p1, допустим, набрали исходный список

( a (b (c 1)d e) f ( (2 (g ) ) 3) ).

1 2 3 2 1 2 3 4 3 2 1 0

Тогда при обращении к программе (p1 '(a(b(c 1)d e)f((2(g))3)) 1) она выведет на экран сообщение “Список списков 1-го уровня ((b(c 1)d e)( (2(g))3))”. При обращении к программе (p1 '(a(b(c 1)d e)f((2(g))3)) 2) она выведет на экран сообщение “Список списков 2-го уровня ((c 1)(2(g) ))”. При обращении к программе (p1 '(a(b(c 1)d e)f((2(g))3)) 3) она выведет на экран сообщение “ Список списков 3-го уровня ((g ))”.

Задание 4.4. Написать программу выделения атомов на заданном уровне в произвольном введенном исходном списке. Сформировать из них список и вывести его. Атомы, содержащиеся в исходном списке, имеют уровень 0, атомы, содержащиеся в следующем вложенном списке, имеют уровень 1 и т.д.

Пример. Пусть имя программы p1, допустим, набрали исходный список

( a (b (c 1)d e) f ( (2 (g ) ) 3) ).

1 2 3 2 1 2 3 4 3 2 1 0

Тогда при обращении к программе (p1 '(a(b(c 1)d e)f((2(g))3)) 0) она выведет на экран сообщение “Список атомов 0-го уровня (a f)”. При обращении к программе (p1 '(a(b(c 1)d e)f((2(g))3)) 1) она выведет на экран сообщение “Список атомов 1-го уровня (b d e 3)”. При обращении к программе (p1 '(a(b(c 1)d e)f((2(g))3)) 2) она выведет на экран сообщение “ Список атомов 2-го уровня (с 1 2)”.

Задание 4.5. Написать программу выделения списков в заданном интервале уровней в произвольном введенном исходном списке. Сформировать из них список и вывести его. Исходный список имеет уровень 0, вложенный в него список имеет уровень 1 и т.д.

Пример. Пусть имя программы p1, допустим, набрали исходный список

( a (b (c 1)d e) f ( (2 (g ) ) 3) ).

1 2 3 2 1 2 3 4 3 2 1 0

Тогда при обращении к программе (p1 '(a(b(c 1)d e)f((2(g))3)) 0 2) она выведет на экран сообщение “Список списков с 0-го по 2-й уровни ((a(b(c 1)d e)f((2(g))3)) (b (c 1)d e)(c 1)((2(g))3)(2(g)))”. При обращении к программе (p1 '(a(b(c 1)d e)f((2(g))3)) 2 3) она выведет на экран сообщение “Список списков со 2-го по 3-й уровни ((c 1)(2(g)) (g))”.

Задание 4.6. Написать программу выделения атомов в заданном интервале уровней в произвольном введенном исходном списке. Сформировать из них список и вывести его. Атомы, содержащиеся в исходном списке имеют уровень 0, атомы, содержащиеся в следующем вложенном списке, имеют уровень 1 и т.д.

Пример. Пусть имя программы p1, допустим, набрали исходный список

( a (b (c 1)d e) f ( (2 (g ) ) 3) ).

1 2 3 2 1 2 3 4 3 2 1 0

Тогда при обращении к программе (p1 '(a(b(c 1)d e)f((2(g))3)) 0 1) она выведет на экран сообщение “Список атомов с 0-го по 1-й уровни (a f b d e 3)”. При обращении к программе (p1 '(a(b(c 1)d e)f((2(g))3)) 1 2) она выведет на экран сообщение “Список атомов c 1-го по 2-й уровни (b d e c 1 3 2)”. При обращении к программе (p1 '(a(b(c 1)d e)f((2(g))3)) 2 3) она выведет на экран сообщение “ Список атомов со 2-го по 3-й уровни (с 1 2 g)”.


Задание 4.7. Написать программу выделения списков на заданном уровне и замены их новыми списками в произвольном введенном исходном списке. Списки для замены вводить в виде одного списка. Исходный список имеет уровень 0, вложенный в него список имеет уровень 1 и т.д.

Пример. Пусть имя программы p1, допустим, набрали исходный список

( a (b (c 1)d e) f ( (2 (g ) ) 3) ).

1 2 3 2 1 2 3 4 3 2 1 0

Тогда при обращении к программе (p1 '(a(b(c 1)d e)f((2(g))3)) 1 ‘((b(c 1))((2(g))3 d e))) она выведет на экран сообщение “Измененный исходный список (a(b (c 1))f((2(g))3 d e))”. При обращении к программе (p1 '(a(b(c 1)d e)f((2(g))3)) 2 ‘((a b))) она выведет на экран сообщение “ Измененный исходный список (a(b(a b)d e)f((2(g))3))”.

Задание 4.8. Написать программу выделения атомов на заданном уровне и замены их новыми атомами в произвольном введенном исходном списке. Новые атомы вводить в виде списка. Атомы, содержащиеся в исходном списке, имеют уровень 0, атомы, содержащиеся в следующем вложенном списке, имеют уровень 1 и т.д.

Пример. Пусть имя программы p1, допустим, набрали исходный список

( a (b (c 1)d e) f ( (2 (g ) ) 3) ).

1 2 3 2 1 2 3 4 3 2 1 0

Тогда при обращении к программе (p1 '(a(b(c 1)d e)f((2(g))3)) 0 ‘(a1 f1)) она выведет на экран сообщение “Модифицированный исходный список (a1(b(c 1)d e)f1((2(g))3))”. При обращении к программе (p1 '(a(b(c 1)d e)f((2(g))3)) 1 ‘(b1 d1 e1)) она выведет на экран сообщение “ Модифицированный исходный список (a(b1(c 1)d1 e1)f((2(g))3))”. При обращении к программе (p1 '(a(b(c 1)d e)f((2(g))3)) 2 ‘(cc 11 22)) она выведет на экран сообщение “ Модифицированный исходный список (a(b(cc 11)d e)f((22(g))3))”.

Задание 4.9. Написать программу выделения списков в заданном интервале уровней и замены их новыми списками в произвольном введенном исходном списке. Новые списки вводить в виде списка списков, соответствующих каждому уровню. Если в списке A находится список B и указано, что надо модифицировать список B и список, входящий в него, то список B не изменять. Исходный список имеет уровень 0, вложенный в него список имеет уровень 1 и т.д.

Пример. Пусть имя программы p1, допустим, набрали исходный список

( a (b (c 1)d e) f ( (2 (g ) ) 3) ).

1 2 3 2 1 2 3 4 3 2 1 0

Тогда при обращении к программе (p1 '(a(b(c 1)d e)f((2(g))3)) 1 2 ‘(((b d e)(bb 4))((c h)))) она выведет на экран сообщение “Измененный исходный список (a(b(c h)d e)f((bb 4)3))”. При обращении к программе (p1 '(a(b(c 1)d e)f((2(g))3)) 2 3 ‘(((cc 11))((ggg)))) она выведет на экран сообщение “ Измененный исходный список (a(b(cc 11)d e)f((2(ggg))3))”. При обращении к программе (p1 '(a(b(c 1)d e)f((2(g))3)) 3 3 ‘((g h k))) она выведет на экран сообщение “ Измененный исходный список (a(b(c 1)d e)f((2(g h k))3))”.
Задание 4.10. Написать программу выделения атомов в заданном интервале уровней и замены их новыми атомами в произвольном введенном исходном списке. Новые атомы вводить в виде списка списков, соответствующих каждому уровню. Атомы, содержащиеся в исходном списке, имеют уровень 0, атомы, содержащиеся в следующем вложенном списке, имеют уровень 1 и т.д.

Пример. Пусть имя программы p1, допустим, набрали исходный список

( a (b (c 1)d e) f ( (2 (g ) ) 3) ).

1 2 3 2 1 2 3 4 3 2 1 0

Тогда при обращении к программе (p1 '(a(b(c 1)d e)f((2(g))3)) 0 1 ‘((a1)(b1 d1 e1 33))) она выведет на экран сообщение “Измененный исходный список (a1(b1(c 1)d1 e1)f((2(g))33))”. При обращении к программе (p1 '(a(b(c 1)d e)f((2(g))3)) 0 2 ‘((a1 f1)(b1 d1 e1 33)(cc 11 22))) она выведет на экран сообщение “ Измененный исходный список (a1(b1(cc 11)d1 e1)f1((22(g))33))”. При обращении к программе (p1 '(a(b(c 1)d e)f((2(g))3)) 3 3 ‘((ggg))) она выведет на экран сообщение “ Измененный исходный список (a(b(c 1)d e)f((2(ggg))3))”.

Задание 4.11. Написать программу выделения списков на заданном уровне и удаления заданного их количества в произвольном введенном исходном списке. Исходный список имеет уровень 0, вложенный в него список имеет уровень 1 и т.д.

Пример. Пусть имя программы p1, допустим, набрали исходный список

( a (b (c 1)d e) f ( (2 (g ) ) 3) ).

1 2 3 2 1 2 3 4 3 2 1 0

Тогда при обращении к программе (p1 '(a(b(c 1)d e)f((2(g))3)) 1 1) она выведет на экран сообщение “Измененный исходный список (a f ((2(g)) 3))”. При обращении к программе (p1 '(a(b(c 1)d e)f((2(g))3)) 2 2) она выведет на экран сообщение “ Измененный исходный список (a(b d e)f( 3 ))”. При обращении к программе (p1 '(a(b(c 1)d e)f((2(g))3)) 3 1) она выведет на экран сообщение “ Измененный исходный список (a(b(c 1)d e)f((2)3))”.


Задание 4.12. Написать программу выделения атомов на заданном уровне и удаления, указывая начальный номер и период. Период n указывает, что каждый n-й атом удаляется. Нумерация атомов на заданном уровне начинается с нуля. Атомы, содержащиеся в исходном списке, имеют уровень 0, атомы, содержащиеся в следующем вложенном списке, имеют уровень 1 и т.д.

Пример. Пусть имя программы p1, допустим, набрали исходный список

( a (b (c 1)d e) f ( (2 (g ) ) 3) ).

1 2 3 2 1 2 3 4 3 2 1 0

Тогда при обращении к программе (p1 '(a(b(c 1)d e)f((2(g))3)) 1 1) она выведет на экран сообщение “Измененный исходный список (a(b(c 1) e)f((2(g))))”. При обращении к программе (p1 '(a(b(c 1)d e)f((2(g))3)) 2 2) она выведет на экран сообщение “ Измененный исходный список (a(b(c 1)d e)f(((g))3))”. При обращении к программе (p1 '(a(b(c 1)d e)f((2(g))3)) 3 1) она выведет на экран сообщение “ Измененный исходный список (a(b(c 1)d e)f((2(g))3))”.
Задание 4.13. Написать программу выделения списков в заданном интервале уровней и удаления заданного их количества в произвольном введенном исходном списке. Удаление начинается со списков большего уровня. Если в удаляемом списке находятся списки, входящие в заданный интервал, то они учитываются при удалении. Если в удаляемом списке находятся списки, не попадающие в интервал, то удаляемый список оставляется. Исходный список имеет уровень 0, вложенный в него список имеет уровень 1 и т.д.

Пример. Пусть имя программы p1, допустим, набрали исходный список

( a (b (c 1)d e) f ( (2 (g ) ) 3) ).

1 2 3 2 1 2 3 4 3 2 1 0

Тогда при обращении к программе (p1 '(a(b(c 1)d e)f((2(g))3)) 1 2 3) она выведет на экран сообщение “Измененный исходный список (a f((2(g))3))”. При обращении к программе (p1 '(a(b(c 1)d e)f((2(g))3)) 1 3 2) она выведет на экран сообщение “ Измененный исходный список (a f((2(g))3))”. При обращении к программе (p1 '(a(b(c 1)d e)f((2(g))3)) 1 3 3) она выведет на экран сообщение “ Измененный исходный список (a f)”.

Пояснение к первому обращению

(p1 '(a(b(c 1)d e)f((2(g))3)) 1 2 3)

Списки первого уровня: (b(c 1)d e), ((2(g))3)

Списки второго уровня: (c 1), (2(g))

Списки третьего уровня: (g)

Результат удаления списков большего уровня:

(a(b d e)f((2(g))3))

Результат удаления списков меньшего уровня:

(a f ((2(g))3) )

Алгоритм программы (процедурный):

1.Составить описания о списках, входящих в основной список

2. Согласно описанию составить новый список из исходного учитывая промежуточное его значение

Задание 4.14. Написать программу выделения атомов в заданном интервале уровней и удаления заданного их количества в произвольном введенном исходном списке. Атомы удаляются по убыванию уровней. Атомы, содержащиеся в исходном списке имеют наибольший уровень 0, атомы, содержащиеся в следующем вложенном списке, имеют меньший уровень 1 и т.д.

Пример. Пусть имя программы p1, допустим, набрали исходный список

( a (b (c 1)d e) f ( (2 (g ) ) 3) ).

1 2 3 2 1 2 3 4 3 2 1 0

Тогда при обращении к программе (p1 '(a(b(c 1)d e)f((2(g))3)) 0 1 3) она выведет на экран сообщение “Измененный исходный список (((c 1)d e)((2(g))3))”. При обращении к программе (p1 '(a(b(c 1)d e)f((2(g))3)) 1 2 2) она выведет на экран сообщение “ Измененный исходный список (a((c 1) e)f((2(g))3))”. При обращении к программе (p1 '(a(b(c 1)d e)f((2(g))3)) 0 3 5) она выведет на экран сообщение “ Измененный исходный список (((c 1))((2(g))3))”.

Задание 4.15. Написать программу выделения атомов в заданном интервале уровней и удаления заданного их количества из указанных списков в произвольном введенном исходном списке. Списки нумеруются слева направо на одном уровне. Списки располагаются по убыванию уровней. Номера списков, из которых надо удалить атомы, задаются в виде списка. Исходный список имеет наибольший уровень 0. Атомы, содержащиеся в исходном списке имеют уровень 0, атомы, содержащиеся в следующем вложенном списке, имеют уровень 1 и т.д.

Пример. Пусть имя программы p1, допустим, набрали исходный список

( a (b (c 1)d e) f ( (2 (g ) ) 3) ).

1 2 3 2 1 2 3 4 3 2 1 0

Тогда при обращении к программе (p1 '(a(b(c 1)d e)f((2(g))3)) 0 1 3 '(1 2)) она выведет на экран сообщение “Измененный исходный список (a((c 1))f((2(g))3))”. При обращении к программе (p1 '(a(b(c 1)d e)f((2(g))3)) 1 2 4 ‘(2 3 4)) она выведет на экран сообщение “ Измененный исходный список (a(b()d e)f(((g))))”. При обращении к программе (p1 '(a(b(c 1)d e)f((2(g))3)) 0 3 5 ‘(0 1 2)) она выведет на экран сообщение “ Измененный исходный список (((c 1))((2(g))3))”.
написать администратору сайта