[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")
Объяснение кода листинга программы
- Создаются три переменные типа список: st1, st2, st3. Каждая из них содержит информацию о студенте в виде строки, логина, номера, даты рождения и номера телефона.
- Создается переменная db типа список, которая содержит все три списка с информацией о студентах.
- Создается функция show, которая принимает два аргумента: base и a. Base — это список, в котором нужно найти элемент, равный a.
- Функция dolist вызывается на списке base с аргументом 'Not_found. Dolist — это функция, которая перебирает элементы списка и передает каждый элемент в функцию, указанную в аргументе.
- В функции show, при помощи условия when, проверяется, равен ли второй элемент текущего подсписка (cadr p) аргументу a. Если это так, то выводится первый элемент подсписка (car p).
- Функция show вызывается с аргументами db и
kks
. - В результате выполнения программы на экран будет выведено
Petrov A.B.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д