Форум программистов, компьютерный форум, киберфорум
Lisp
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.94/18: Рейтинг темы: голосов - 18, средняя оценка - 4.94
7 / 7 / 0
Регистрация: 15.10.2012
Сообщений: 180
1

Составьте список студентов своей группы

13.02.2014, 04:05. Показов 3160. Ответов 8
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Условие задачи следующие:

Составьте список студентов своей группы
(ФИО ФИО ... ФИО)

Для каждого студента

а) с помощью функции LIST составьте следующие списки:
Для самого студента - (дата рождения), (адрес), (средний бал по лекционным занятиям), (средний бал по практическим занятиям), (средний бал по лабораторным работам). Для отца и матери - (ФИО), (дата рождения), (адрес), (место работы).
б) с помощью функций CONS и SETQ объедините полученные списки и присвойте их в виде значений символам, означающим ФИО каждого студента:
ФИО ст. - (((дата рождения ст.) (адрес ст.)((ср. бал(до десятых) по лекционным занятиям) (ср. бал по практическим занятиям) (ср. бал по лабораторным работам))) (((ФИО отца) (дата рождения отца) (адрес) (место работы отца)) ((ФИО матери) (дата рождения матери) (адрес) (место работы матери)))).

Прочитав условие, мне показалось что это прям какая-то база данных...
Ну допустим первое условие:

Lisp
1
(SETF (GET 'GROUP'surname) 'Kovtun)
но как можно задать несколько фамилий??
Пишу
Lisp
1
(SETF (GET 'GROUP'surname) 'Kovtun 'Kirzeev)
- не работает

Ну а дальше я совсем запутался(
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
13.02.2014, 04:05
Ответы с готовыми решениями:

Имеется список студентов группы
Имеется список студентов группы, в котором указаны фамилия студента, дата рождения, пол, рост и...

Опишите тип записи - сведения о студенте группы. Сформируйте файл студентов своей группы.
Опишите тип записи - сведения о студенте группы, необходимые декану факультета. Сформируйте файл...

Ввести список студентов и их группу Вывести список студентов заданной группы
Ребят, помогите пожалуйста, ибо в windowsform вообще не шарю и не знаю как его записать, может ли...

При выборе группы студентов из ComboBox показать список студентов в Stringgrid
Есть combobox, где содержатся группы студентов и stringgrid, где содержатся все их фамилии, даты...

8
4527 / 3521 / 358
Регистрация: 12.03.2013
Сообщений: 6,038
13.02.2014, 04:24 2
(list "Ковтун" "Кирзеев")
1
Модератор
Эксперт функциональных языков программированияЭксперт Python
37302 / 20736 / 4272
Регистрация: 12.02.2012
Сообщений: 34,127
Записей в блоге: 14
13.02.2014, 09:32 3
Цитата Сообщение от Роcc Посмотреть сообщение
Прочитав условие, мне показалось что это прям какая-то база данных...
- "Подъезжая к сей станции, с моей головы слетела шляпа" (А.П.Чехов).

Решение задачи нужно начинать с того, что полностью представить себе исходные данные (что дано?). Тут каша: студенты, а потом какие-то отцы и матери... Короче:

1) Что известно о каждом студенте?
2) как нужно объединять эти данные?
1
7 / 7 / 0
Регистрация: 15.10.2012
Сообщений: 180
13.02.2014, 22:14  [ТС] 4
Catstail, Насколько я понял:
1. Нужно составить два списка - список студентов (дата рождения, адрес, средний бал по лекционным занятиям, средний бал по практическим занятиям, средний бал по лабораторным работам) и список их родителей (ФИО, дата рождения, адрес, место работы).
2. Объединить списки и присвоить их в виде значений символам (немного непонятно), но на выходе должно получится
(((дата рождения ст.) (адрес ст.)((ср. бал(до десятых) по лекционным занятиям) (ср. бал по практическим занятиям) (ср. бал по лабораторным работам))) (((ФИО отца) (дата рождения отца) (адрес) (место работы отца)) ((ФИО матери) (дата рождения матери) (адрес) (место работы матери))))

Добавлено через 27 минут
Итак, получается примерно такие два списка
Lisp
1
2
(list "01.10.1994" "Гагарина 28" "80" "85" "88")
(list "Борисенко Владимир Андреевич" "23.01.1973" "Гагарина 28" "Кирова 28")
1 список - данные о студента
2 список - данные о его родителях

Теперь осталось сделать:

"С помощью функций CONS и SETQ объедините полученные списки и присвойте их в виде значений символам, означающим ФИО каждого студента:"

я так понял мы объединяем список, а потом:
Lisp
1
_(SETQ surname ‘(наш объединенный список))
Помогите пожалуйста теперь соединить эти 2 списка
1
4527 / 3521 / 358
Регистрация: 12.03.2013
Сообщений: 6,038
13.02.2014, 23:17 5
Цитата Сообщение от Роcc Посмотреть сообщение
я так понял мы объединяем список, а потом:
_(SETQ surname ‘(наш объединенный список))
Да, только подчёркивание не нужно, и setq маленькими буквами.

Вообще, списки обычно делают функцией list.

Но на самом деле списков не существует. Существуют cons-ячейки, то бишь пары указателей. Конс-ячейка со ссылками на А и Б (неважно, что) возвращается функцией cons: (cons А Б).

Собственный список - это условное название нескольких конс-ячеек, у которых конец каждой ссылается на начало следующей, а у самой последней конец ссылается на nil. Поэтому (list 1 2 3 4) можно сделать так: (cons 1 (cons 2 (cons 3 (cons 4 nil)))). Легко понять, что все пользуются только первым видом записи. Однако с помощью cons удобно добавлять элемент в голову списка.

Добавлено через 8 минут
Цитата Сообщение от Роcc Посмотреть сообщение
присвоить их в виде значений символам (немного непонятно)
В лиспе код = данные. Ваша программа - это те же самые списки. Просто когда компьютер читает программу, он вычисляет прочитанные выражения по определённым правилам.

list и setq - примеры символов. Символы - это такие забавные штуки, которых нет во многих языках. Тип данных. Короче, символ есть символ. Определяется именем. Разные имена - разные символы. В математике они тоже часто встречаются.

С символами могут ассоциироваться функции - например, с list ассоциируется функция построения списка. Или могут ассоциироваться значения. При этом символ выступает аналогом идентификатора переменной, а ассоциирование - аналог присваивания из других языков. То есть в лиспе нет особого понятия "идентификатор переменной" или "имя функции". Факт "код = данные" имеет далеко идущие последствия.

setq - допотопный оператор присваивания.

На самом деле присваивания в строгом смысле в лиспе используются не так часто, как в других языках. Глобальные переменные тоже следует использовать с умом и по крайней мере объявлять. Так что задание про setq только отдаляет вас от программирования на лиспе.
1
7 / 7 / 0
Регистрация: 15.10.2012
Сообщений: 180
13.02.2014, 23:45  [ТС] 6
Как вы думаете, как реализовать данную задачу

Для каждого студента составьте списки свойств
а) оценки по лекциям;
б) оценки по практикам;
в) оценки по лабораторным работам.

Для произвольно выбранных студентов сравнить свойства.

Как правильно все записать?
Lisp
1
2
3
(SETF (GET 'Kovtun' lections)25)
(SETF (GET 'Kovtun 'practica)20)
(SETF (GET 'Kovtun 'lab)15)
Как думаете, так правильно?
И почему не работает конструкция
Lisp
1
(GET 'Kovtun 'lab)15 20 25 26)
0
4527 / 3521 / 358
Регистрация: 12.03.2013
Сообщений: 6,038
13.02.2014, 23:54 7
Да вроде правильно. Я никогда-никогда не использовал свойства символов. Вроде это что-то древнее и тормознутое.

Цитата Сообщение от Роcc Посмотреть сообщение
И почему не работает конструкция
Скобки несбалансированы?

Добавлено через 5 минут
Вы маленькими буквами пишите: setf, get. Люди пишут маленькими. REPL пишет большими. Видно, кто что писал. Удобно. Традиция.
0
defun
603 / 617 / 44
Регистрация: 30.04.2011
Сообщений: 702
14.02.2014, 17:00 8
Цитата Сообщение от helter Посмотреть сообщение
тормознутое
на коротких списках вполне можно использовать..
0
4527 / 3521 / 358
Регистрация: 12.03.2013
Сообщений: 6,038
14.02.2014, 17:32 9
Это же не списки, это свойства символа. Я просто никогда не понимал, зачем они в принципе могут мне понадобиться. У Грэма вроде тоже было что-то, что это, дескать, реликт.
0
14.02.2014, 17:32
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
14.02.2014, 17:32
Помогаю со студенческими работами здесь

По номеру группы вывести список имен студентов группы
1. Дано: текстовый файл input.txt. В каждой строке содержится запись из трех полей: ФИО, № группы,...

Дописать в файл - список студентов группы новых студентов
Дописать в файл - список студентов группы новых студентов.

Создать список группы (список всех студентов) и наименование дисциплин, которые они изучают
Кто поможет, огромный респект. Завтра уже показывать надо( Задание профессорам, академикам,...

Создать файл - список студентов группы, отобразить на форме список сту-дентов с фамилией на заданную букву
Создать файл - список студентов группы, отобразить на форме список сту-дентов с фамилией на...

Посчитать средний бал группы и вывести список студентов, у которых средний балл выше среднего балла группы
Составить список студентов, в который входит 5 человек. Для каждого студента ввести фамилию, год...

Составить список своей группы в виде CSV-файла
Помогите пожалуйста ! Составьте список своей группы в виде CSV-файла в любом текстовом редакторе...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru