Главная

Популярная публикация

Научная публикация

Случайная публикация

Обратная связь

ТОР 5 статей:

Методические подходы к анализу финансового состояния предприятия

Проблема периодизации русской литературы ХХ века. Краткая характеристика второй половины ХХ века

Ценовые и неценовые факторы

Характеристика шлифовальных кругов и ее маркировка

Служебные части речи. Предлог. Союз. Частицы

КАТЕГОРИИ:






Описание дополнительных функций

Лабораторная работа №7

Цели работы

1. Ознакомиться с реализацией рекурсивных структур данных (на примере списков) на языке Lisp.

 

2. Реализовать основные функции работы со списками:

1) создание списка,

2) вставка элемента с клавиатуры на позицию по заданному номеру,

3) удаление элемента по номеру элемента,

4) поиск по номеру элемента (вывод значения),

5) поиск по значению элемента (вывод номера),

6) вывод на экран элемента по номеру,

7) вывод на экран всего списка.

 

3. Вызов функций осуществить с помощью системы текстового меню.

 

Описание работы

Работа представляет собой несколько дополнительных функций и одну основную (menu), средствами которой реализована работа со списком. Меню реализует 7 пунктов для работы со списком и 1 для выхода из программы.

Перечислим эти пункты:

1) создание списка,

2) вставка элемента с клавиатуры на позицию по заданному номеру,

3) удаление элемента по номеру элемента,

4) поиск по номеру элемента (вывод значения),

5) поиск по значению элемента (вывод номера),

6) вывод на экран элемента по номеру,

7) вывод на экран всего списка,

8) сортировка списка (вывод списка до и после сортировки),

9) Выход;

 

Исходный список задается изначально вводом с клавиатуры и выглядит следующим образом:

(8 7 6 5 4 3 2 1)

При выборе определенного пункта меню содержимое списка может быть изменено в соответствии с работой части кода функции menu, соответствующей данному пункту. После работы определенной части кода, menu рекурсивно вызывает себя. Для завершения работы программы следует ввести “0”, который соответствует завершению работы программы.

 

Описание дополнительных функций

insert (X N LST) -Вставка по номеру

Если список пуст, идёт добавление элемента. Иначе, если счетчик стоит на указанной позиции (для N = 1) идёт добавление элемента. Для прочих N – рекурсивный вызов для N = N-1 и хвоста списка.

DEL (N LST) – Удаление по номеру

Если N = 1, возвращается хвост, иначе – возвращается голова + результат рекурсивного вызова удаления.

SCH (N list) – Поиск

Функция рекурсивно вызывает саму себя, каждый раз передавая в качестве списка хвост текущего списка. Если функция находит искомый элемент, то возвращает строку "НАЙДЕН!" и прекращает поиск. Если функция доходит до конца списка – возвращает строку "НЕ НАЙДЕН!".

 

 

Примечание: Все прочие функции, использованные в лабораторной работе, с помощью которых были реализованы некоторые пункты меню, являются стандартными функциями среды GNU CLisp 2.45.

 

 

Вывод:

В ходе работы мы ознакомились с реализацией рекурсивных структур данных (на примере списков) на языке Lisp. Были реализовать основные функции работы со списками (вставка, удаление, вывод), а также следующие дополнительные функции, такие как реверс списка, сортировка, очистка, поиск, определение длинны списка, нахождение максимального и минимального элемента, сумма элементов. Вызов функций был осуществлен с помощью системы текстового меню.

 

<== предыдущая лекция | следующая лекция ==>
Тестирование службы | Управление путем ранжирования стратегических задач. В некоторых ситуациях управление путем выбора стратегический позиций, основанное на предвосхищении новых задач становится непригодным


Не нашли, что искали? Воспользуйтесь поиском:

vikidalka.ru - 2015-2024 год. Все права принадлежат их авторам! Нарушение авторских прав | Нарушение персональных данных