[HomeLisp] Список студентов

Узнай цену своей работы

Формулировка задачи:

Добрый день. Есть следующая задача: Составьте список для студентов. Для каждого студента из этого списка с помощью функции LIST составьте следующий список: название факультета, название кафедры, шифр группы, дата рождения, домашний адрес, телефон. Вывести ФИО студентов, обучающихся на кафедре kks.
(setq st1 '("Petrov A.B." "kks" 2100 "01-01-1994" "095-960-21-21"))
(setq st2 '("Pavlov K.B." "zxc" 2112 "01-01-1994" "095-960-21-21"))
(setq st3 '("Andreev P.A." "kks" 2113 "01-01-1994" "095-960-21-21"))
(setq db (list st1 st2 st3))
(defun show (base a)
    (dolist(p base 'Not_found)
     (when(= (cadr p) n) (printline(p)) (return 'ok)))
)
(show db "kks")

Решение задачи: «[HomeLisp] Список студентов»

textual
Листинг программы
(setq st1 '("Petrov A.B." "kks" 2100 "01-01-1994" "095-960-21-21"))
(setq st2 '("Pavlov K.B." "zxc" 2112 "01-01-1994" "095-960-21-21"))
(setq st3 '("Andreev P.A." "kks" 2113 "01-01-1994" "095-960-21-21"))
(setq db (list st1 st2 st3))
(defun show (base a)
    (dolist(p base 'Not_found)
     (when(equal (cadr p) a) (printline(car p)))))
(show db "kks")

Объяснение кода листинга программы

  1. Создаются три переменные типа список: st1, st2, st3. Каждая из них содержит информацию о студенте в виде строки, логина, номера, даты рождения и номера телефона.
  2. Создается переменная db типа список, которая содержит все три списка с информацией о студентах.
  3. Создается функция show, которая принимает два аргумента: base и a. Base — это список, в котором нужно найти элемент, равный a.
  4. Функция dolist вызывается на списке base с аргументом 'Not_found. Dolist — это функция, которая перебирает элементы списка и передает каждый элемент в функцию, указанную в аргументе.
  5. В функции show, при помощи условия when, проверяется, равен ли второй элемент текущего подсписка (cadr p) аргументу a. Если это так, то выводится первый элемент подсписка (car p).
  6. Функция show вызывается с аргументами db и kks.
  7. В результате выполнения программы на экран будет выведено Petrov A.B.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

13   голосов , оценка 4.077 из 5
Похожие ответы