Организовать отбор данных по направлению подготовки и степени владения иностранным языком - Lisp
Формулировка задачи:
Кадровое агентство занимается поиском квалифицированных специалистов. Требования к специалисту: квалификация по диплому (ИНН, фамилия, направление подготовки по диплому, свидетельство о прохождении повышения квалификации, стаж работы по специальности, степень владения иностранным языком). Организовать отбор данных по направлению подготовки и степени владения иностранным языком.
Степени владения иностранным языком: A1 — может объясниться в простейшей бытовой ситуации; A2 — может объясниться в магазине, на вокзале, при занятии неквалифицированным трудом; B1 — уверенно общается в быту, читает и адекватно воспринимает несложные тексты, может объясниться при занятии квалифицированным трудом; B2 — читает и адекватно воспринимает сложные тексты, пишет без ошибок; C1 — владеет языком в достаточной мере для работы в должности инженера; C2 — владеет языком в достаточной мере для работы в должности юриста, журналиста.
Помогите, пожалуйста
Решение задачи: «Организовать отбор данных по направлению подготовки и степени владения иностранным языком»
textual
Листинг программы
(defstruct head ssn name speciality cert experience fluency) (defun heads (n) (when (> n 0) (cons (make-head :ssn (read) :name (read) :speciality (read) :cert (read) :experience (read) :fluency (read)) (heads (1- n))))) (defun names (w s f) (loop for a in w when (and (equalp (head-speciality a) s) (equalp (head-fluency a) f)) collect (head-name a))) (defun spec-fluency-names (w) (names w (read) (read))) > (setf agency (heads 3)) 111-22-3333 Carmen Biochemistry Certificate 4 A1 123-45-6789 Jason Law Certificate 7 C1 333-22-4444 Brian Law Certificate 6 C1 (#S(HEAD :SSN |111-22-3333| :NAME CARMEN :SPESIALITY BIOCHEMISTRY :CERT CERTIFICATE :EXPERIENCE 4 :FLUENCY A1) #S(HEAD :SSN |123-45-6789| :NAME JASON :SPESIALITY LAW :CERT CERTIFICATE :EXPERIENCE 7 :FLUENCY C1) #S(HEAD :SSN |333-22-4444| :NAME BRIAN :SPESIALITY LAW :CERT CERTIFICATE :EXPERIENCE 6 :FLUENCY C1)) > (spec-fluency-names agency) Biochemistry A1 (CARMEN) > (spec-fluency-names agency) Law C1 (JASON BRIAN)
Объяснение кода листинга программы
- Создание структуры данных HEAD с полями ssn, name, speciality, cert, experience, fluency.
- Функция heads используется для создания списка структур данных HEAD. Она запрашивает данные (ssn, name, speciality, cert, experience, fluency) и добавляет структуру данных HEAD в список, пока не будет введен ноль.
- Функция names используется для фильтрации структур данных HEAD на основе заданных параметров (speciality и fluency). Она собирает имена структур данных HEAD, которые соответствуют заданным параметрам.
- Функция spec-fluency-names используется для получения имен структур данных HEAD, которые соответствуют заданным параметрам (speciality и fluency).
- Пример использования функции spec-fluency-names: сначала создается список структур данных HEAD с помощью функции heads, затем используется функция spec-fluency-names для получения имен структур данных HEAD, которые соответствуют заданным параметрам (speciality и fluency).
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д