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


 

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

16840. Объектно-ориентированное программирование. Методология объектно-ориентированного программирования 362 KB
  Объектно-ориентированное программирование. Основные понятия Методология объектно-ориентированного программирования Фундаментальными понятиями в программировании являются: технология программирования методология метод. Технология программирования...
16841. Подготовка и решение задач на компьютере Этапы полготовки и решения задач на компьютере 428.5 KB
  Лекция 1. Подготовка и решение задач на компьютере Этапы полготовки и решения задач на компьютере Подготовка и решение задач на компьютере имеет следующие этапы: постановка задачи и разработка технического задания; разработка: а информационной мо
16842. ОБ ОДНОМ «МУРАВЬИНОМ» АЛГОРИТМЕ 281 KB
  ОБ ОДНОМ МУРАВЬИНОМ АЛГОРИТМЕ А.А. Кажаров В.М.Курейчик В этой работе рассматривается решение классической NPтрудной задачи о коммивояжере на основе муравьиных алгоритмов. Данная задача без какихлибо изменений в ее интерпретации решается для проектирования СБИС. В...
16843. Проблемы перевода Problems of Translation 142 KB
  Проблемы перевода Problems of Translation В.ГГак Типология преобразований в актантной структуре высказывания при переводе При переводе нередко приходится прибегать к преобразованиям в актантной структуре высказывания особенно когда мы име
16844. ПАТОФИЗИОЛОГИЯ МОЗГОВОГО КРОВООБРАЩЕНИЯ 22.04 KB
  П. РАВУССИН Д. БРАККО. ПАТОФИЗИОЛОГИЯ МОЗГОВОГО КРОВООБРАЩЕНИЯ. Отделение анестезиологии университетской клиники г. Лозанна Швейцария Большое количество церебральных процессов может вести к необратимому повреждению. Эти процессы могут быть классифицированы как трав...
16845. ВНУТРИЧЕРЕПНОЕ ДАВЛЕНИЕ И ВНУТРИЧЕРЕПНАЯ ГИПЕРТЕНЗИЯ 35.86 KB
  М.В. БАШКИРОВ А.Р. ШАХНОВИЧ А.Ю. ЛУБНИН. ВНУТРИЧЕРЕПНОЕ ДАВЛЕНИЕ И ВНУТРИЧЕРЕПНАЯ ГИПЕРТЕНЗИЯ. НИИ нейрохирургии им. Н.Н. Бурденко РАМН Москва ВВЕДЕНИЕ Первые попытки дать научное объяснение феномену внутричерепной гипертензии ВЧГ предпринимались еще 200 лет назад. Но...
16846. Основные принципы интенсивной терапии тяжелой черепно-мозговой травмы 26.8 KB
  Потапов А.А. Амчеславский В.Г. Гайтур Э.И. Парфенов А.Л. Островский А.Ю. Филимонов Б.А. Основные принципы интенсивной терапии тяжелой черепномозговой травмы. НИИ нейрохирургии им.Н.Н.Бурденко РАМН Москва Лечебные мероприятия при поступлении пострадавшего в стационар....
16847. Принципы интенсивной терапии при острых субарахноидальных кровоизлияниях нетравматической этиологии 30.58 KB
  Амчеславский В.Г. Тома Г.И. Тенедиева Н.Д. Фокин М.С. Элиава Ш.Ш. Мадорский С.В. Оганесян К.Р. Даушева А.А. Принципы интенсивной терапии при острых субарахноидальных кровоизлияниях нетравматической этиологии. НИИ нейрохирургии им. акад. Н.Н. Бурденко РАМН Москва Острые...
16848. ТОТАЛЬНАЯ ВНУТРИВЕННАЯ АНЕСТЕЗИЯ ИЛИ ИНГАЛЯЦИОННЫЙ НАРКОЗ ДЛЯ ИНТРАКРАНИАЛЬНЫХ ВМЕШАТЕЛЬСТВ 86.3 KB
  П. РАВУССИН Г. ВАН АКЕН Д. ВАН ХЕМЕЛЬРИК. ТОТАЛЬНАЯ ВНУТРИВЕННАЯ АНЕСТЕЗИЯ ИЛИ ИНГАЛЯЦИОННЫЙ НАРКОЗ ДЛЯ ИНТРАКРАНИАЛЬНЫХ ВМЕШАТЕЛЬСТВ Отделение анестезиологии университетской клиники Лозанна Швейцария отделение анестезиологии университетской клиники Леувен Бел