14733

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

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

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

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

Русский

2013-06-09

31.5 KB

7 чел.

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


 

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

78944. Формирование эмпирического метода исследования 26.5 KB
  Некоторый фрагмент действительности объективные события результаты относящиеся либо к объективной реальности факты действительности либо к сфере сознания и познания факты сознания. В научном познании факты играют двоякую роль: вопервых совокупность фактов образует эмпирическую основу для выдвижения гипотез и построения теорий; вовторых факты имеют решающее значение в подтверждении теорий если они соответствуют совокупности фактов или их опровержении если тут нет соответствия. При этом недопустимо выхватывать отдельные...
78945. Формирование рационал. метода исследования 30.5 KB
  Мышление осуществляющийся в ходе практики активный процесс обобщенного и опосредованного отражения действительности обеспечивающий раскрытие на основе чувственных данных ее закономерных связей и их выражение в системе абстракций понятий категорий и др. Человеческое мышление осуществляется в теснейшей связи с речью а его результаты фиксируются в языке как определенной знаковой системе которая может быть естественной или искусственной язык математики формальной логики химические формулы и т. Что такое мышление и каковы его основные...
78946. Общие проблемы структуры научного знания 26 KB
  С точки зрения взаимодействия объекта и субъекта научного познания последнее включает в себя четыре необходимых компонента в их единстве: а Субъект науки ключевой ее элемент: отдельный исследователь научное сообщество научный коллектив и т. в Система методов и приемов характерных для данной науки или научной дисциплины и обусловленных своеобразием их предметов. Выявление структуры науки в этом ее аспекте ставит проблему классификации наук. По предмету и методам познания выделяют науки о природе естествознание об обществе ...
78948. Роль государства в управлении научно-техническим потенциалом 43 KB
  Четко проступает ряд новых сформировавшихся за последние десятилетия тенденций во взаимоотношениях науки и государства внутри самой сферы науки между отдельными ее составляющими и наконец между наукой и обществом в целом. Государство выступает сегодня по отношению к науке по крайней мере в шести ипостасях: как законодатель устанавливающий фундаментальные правовые основы функционирования общества и в том числе его научнотехнической сферы; как один из основных источников финансирования научных исследований и разработок; как массовый...
78950. Этические проблемы науки 20 века 42.5 KB
  Этические проблемы науки 20 века. Этика науки Этика науки изучает нравственные основы научной деятельности.Этические проблемы науки начала ХХ1в. Этические проблемы науки рождались в связи с развитием физики биологии в частности генетики психологии.
78951. Правовое регулирование научной деятельности 38 KB
  Правовое регулирование научной деятельности Одним из фундаментальных вопросов современного общества является вопрос об отношении к интеллектуальному труду правовому механизму использования результатов такого труда и регулирования возникающих при этом правоотношений. Правовые аспекты интеллектуальной деятельности лежат в плоскости решения проблем распределения прав на ее результаты с необходимостью охраны и защиты интеллектуальных достижений. Продуктом умственной деятельности оказывается знание. №982 Об использовании результатов...
78952. Философия техники (фт), ее генезис, предмет и задачи 47 KB
  Философия техники фт ее генезис предмет и задачи. Проблема возникновения техники с разделением труда была поставлена Гегелем. Он показал важную роль техники в возникновении капитализма показал разрушительное воздействие машинного производства на человека.Ленк назвал Маркса первым философом техники.