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


 

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

40508. Специфика фольклора 34.5 KB
  широких народных масс = коллективное творчество устное художественное творчество может рассматриваться: с точки зрения этнографии все проявления отдельно словесное творчество с точки зрения этнологии все проявления вместе Фольклор обладает свойствами качествами которых больше нигде нет которые в совокупности дают специфику фольклора: 1 Устность. Аргументы: исторические потому что раньше письменности социальные крестьяне неграмотные коммуникационная ситуативное внутренней стороны устности: устность может...
40509. Фольклористика XVIII века 23 KB
  Параллельно с этим шла публикация того что было собрано: Чулков Собрание разных русских песен 1776 Лёвшин Русские сказки 1780 Львов Собрание русских народных сказок с их голосами 1790 Но в этих сборниках было мало собственно русского фольклора: не выработали принципы по которым отбирать произведения для публикации конъюнктура Появление имперского сознания повлекло за собой стремление понастоящему узнать самое себя свою сущность. Итог: сборник Кирши Данилова Древние российские стихотворения 1804 в котором...
40510. Школа заимствования в русской фольклористике 20 KB
  Принципы Произведения одни и те же у разных народов. Причины сходства: одна прародина всех народов и всех фольклорных текстов обмен фольклорными богатствами в результате контакта между народами Недостатки Народы только и делают что заимствуют друг у друга фольклор = у народов нет своих национальных корней но это преувеличение.
40511. Радищев и фольклор 20.5 KB
  Радищев и фольклор. Концепция Радищева – вершина русской фольклористики XVIII века. Радищев как и многие другие интересуется фольклором. Фольклор выражает идеологию и психологию коллективное бессознательное народа.
40512. Анализ волшебно-сказочного сюжета по выбору студента 36.5 KB
  Фундаментальная оппозиция свой чужой определяет как известно всю поэтику и проблематику волшебной сказки. При этом оппозиция братьев осложняется тем что Иван–царевич в первой части сказки по терминологии В. В результате возникает как уже отмечалось подробно разработанная на разных уровнях система отражающая все важные для фольклорной сказки аспекты природный природносоциальный семейнородственный и родственный в смысле учения Н. Противоречие между метафизическим и бытовым уровнями мировосприятия отличающимися друг от друга как...
40513. Былины Киевского цикла 20 KB
  Три типа персонажей: князь Владимир богатыри враги Князь Владимир – центральный персонаж но богатырь – главный герой.
40515. Былички 21.5 KB
  Былички. Былички – истории о покойниках леших домовых – память о древнеславянской мифологии. Былички – мифологические рассказы о духах природы и домашнего очага. По композиции былички: мемораты – воспоминания о встрече; фабулаты – есть сюжет повествование.
40516. ГЕНЕАЛОГИЧЕСКАЯ КЛАССИФИКАЦИЯ ЯЗЫКОВ 320 KB
  Шаповал ГЕНЕАЛОГИЧЕСКАЯ КЛАССИФИКАЦИЯ ЯЗЫКОВ Новосибирск 2002. ОСНОВНЫЕ ПОЛОЖЕНИЯ ГЕНЕАЛОГИЧЕСКОЙ КЛАССИФИКАЦИИ ЯЗЫКОВ Понятие генеалогической классификации Генеалогическая классификация основана на определении родственных отношений между языками. При этом доказывается общность происхождения родственных языков и демонстрируется их развитие из единого часто реконструируемого специальными способами языка который получает название праязык. При генеалогической классификации языков прежде всего выясняется степень их родственных отношений и...