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


 

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

71227. Измерение коэффициента трансформации трансформатора тока 25.7 KB
  У встроенных трансформаторов тока коэффициент трансформации проверяется на всех ответвлениях. В случае, когда ответвления встроенных трансформаторов тока не имеют маркировки или она недостаточно четка, необходимо проверить ее и маркировать на основании результатов...
71228. Изучение испытательных стендов и измерительных приборов 157.11 KB
  Для пуска электродвигателя и регулирования нагрузки реостат с пультом управления. На щетке приборов вмонтирован тахометр об термометр воды тв манометр масла м и циферблат цф показывает силу торможения испытываемого двигателя кг датчик тахометра соединен с карданным валом...
71229. Створення проекту у середовищі Visual Fox Pro 9.0. Проектування бази даних, таблиць у складі бази даних та вільних таблиць 71.72 KB
  Мета: Засвоїти методи створення баз даних. Вивчити типи полів таблиць. Хід роботи Створіть новий проект за допомогою майстра. Створено проект під назвою KompShop за допомогою майстра.
71230. Исследование битовых полей машинного кода с помощью дизассемблера 110.46 KB
  Например запись команды UBFX R1 R0 0 1 в дизассемблере будет выглядеть следующим образом 0100 а hexфайле 0001 Исследование назначения битовых полей машинного кода заданной команды. Задана команда UBFX. Возьмем для примера команду UBFX продублируем ее с разным размером извлекаемого...
71231. Создание и компиляция проекта в среде IAR. Написание простейшего модуля на языке Assembler 139.57 KB
  Целью данной работы является ознакомление с одной из популярнейших сред разработки программ для микроконтроллеров IAR Embedded Workbench IDE. Последовательность действий при создании проекта: Создадим новый проект Project=>Create New Project.
71232. Исследование влияния величины внешнего давления горной породы на крепь ствола обсадной колонны во временном интервале 37.27 KB
  Цель работы: Получение навыков работ с применением ЭВМ и расчетных программ при исследовании процессов взаимодействия крепи ствола обсадной колонны и горной породы во времени. Исходные данные: Внутренний радиус трубы м Внешний радиус трубы м Внешний радиус цементной оболочки...
71233. Исследование влияния факторов процесса установившейся циркуляции бурового раствора по трубам и затрубном пространстве на величину суммарных гидравлических потерь 98.47 KB
  Цель работы: Получение навыков работ с применением ЭВМ и расчетных программ при исследовании процессов движения жидкости по трубам и затрубном пространстве скважины. Исходные данные: Плотность, кг/м3 Динамическое напряжение сдвига, Па Пластическая вязкость...
71234. Исследование влияния оттока (протока) бурового раствора через стенку скважины на величину гидравлических потерь в затрубном пространстве скважины 44.06 KB
  Цель работы: Получение навыков работ с применением ЭВМ и расчетных программ при исследовании процессов движения жидкости по трубам и затрубном пространстве скважины с возможным оттоком и притоком бурового раствора. Исходные данные: Подача насосов м3 с Объемная проницаемость...
71235. Статистическая сводка и группировка 20.94 KB
  Цель работы: овладеть методикой проведения группировок для определения взаимосвязи изучаемых признаков и изучения состава однородной совокупности. Порядок выполнения работы Осуществить аналитическую группировку статистических данных для определения взаимосвязи...