14733

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

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

Информатика, кибернетика и программирование

Лабораторная работа №7 Цели работы Ознакомиться с реализацией рекурсивных структур данных на примере списков на языке Lisp. Реализовать основные функции работы со списками: создание списка вставка элемента с клавиатуры на позицию по з

Русский

2013-06-09

31.5 KB

6 чел.

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

Цели работы

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

  1.  Реализовать основные функции работы со списками:
    1.  создание списка,
    2.  вставка  элемента с клавиатуры на позицию по заданному номеру,
    3.  удаление элемента по номеру элемента,
    4.  поиск по номеру элемента (вывод значения),
    5.  поиск по значению элемента (вывод номера),
    6.  вывод на экран элемента по номеру,
    7.  вывод на экран всего списка.

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

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

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

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

  1.  создание списка,
    1.  вставка  элемента с клавиатуры на позицию по заданному номеру,
    2.  удаление элемента по номеру элемента,
    3.  поиск по номеру элемента (вывод значения),
    4.  поиск по значению элемента (вывод номера),
    5.  вывод на экран элемента по номеру,
    6.  вывод на экран всего списка,
    7.  сортировка списка (вывод списка до и после сортировки),
    8.  Выход;

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

(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. Были реализовать основные функции работы со списками (вставка, удаление, вывод), а также следующие дополнительные функции, такие как реверс списка, сортировка, очистка, поиск, определение длинны списка, нахождение максимального и минимального элемента, сумма элементов. Вызов функций был осуществлен с помощью системы текстового меню.


 

А также другие работы, которые могут Вас заинтересовать

71168. Разработка интернет – магазина по продаже программного обеспечения 241.99 KB
  Дипломная работа состоит из пяти разделов. Для осуществления поставленных целей в первом разделе был проведен обзор принципов построения информационных систем для торговли через интернет, анализ и безопасность платежных систем в интернет.
71169. Создание модели эффективного электронного документооборота и его внедрение на предприятии 486.5 KB
  Как показывают современные исследования 85 рабочего времени сотрудников организаций тратится на подготовку сопровождение заполнение копирование и передачу документов. Рост объемов информации и соответственно документов потребовал внедрения техники для своевременной обработки документов...
71170. Деятельность Ивана IV в 60 – 70 годы. Сущность опричнины, содержание опричнины 265.5 KB
  В силу неблагоприятных исторических условий, среди которых немаловажную роль играло страшное татарское нашествие, Русское государство несколько отставало в своем развитии от европейских стран. Губительные последствия иноземного ига давали о себе знать в течении длительного времени.
71172. Формирование мотивации и стимулирование труда в системе управления персоналом на примере ФГБУП “Дмитровский экскаваторный завод при спецстрое россии” 403 KB
  Неэффективная система мотивации может вызвать у работников неудовлетворенность что всегда влечет снижение производительности труда. Путь к эффективному управлению человеком лежит через понимание его мотивации.
71174. Пути совершенствования системы управления персоналом в АО «Желаевское КХП» 604 KB
  Актуальность темы научных исследований по изучению системы управления персоналом возникает во многих организациях и обусловлена развитием инфраструктуры рынка, изменением характера выполняемых работ и содержанием труда.
71175. ЭФФЕКТИВНОСТЬ ПЕДАГОГИЧЕСКИХ ПРИЕМОВ ДЛЯ РАЗВИТИЯ МЕЛКОЙ МОТОРИКИ ДЕТЕЙ СРЕДНЕГО ДОШКОЛЬНОГО ВОЗРАСТА 84.75 KB
  Актуальность исследования. В настоящее время актуальной проблемой становится полноценное развитие детей уже с дошкольного возраста. Немаловажную роль в успешности психофизического и интеллектуального развития ребенка играет сформированная мелкая моторика.