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

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

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

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

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

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

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

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

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

Ну а дальше я совсем запутался(
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
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
37433 / 20805 / 4280
Регистрация: 12.02.2012
Сообщений: 34,222
Записей в блоге: 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
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
14.02.2014, 17:32
Помогаю со студенческими работами здесь

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

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

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
Использование связки C# и PHP в корпоративной разработке и микросервисной архитектуре
InfoMaster 16.01.2025
Введение в интеграцию C# и PHP В современной корпоративной разработке все чаще возникает потребность в создании гибких и масштабируемых решений, способных эффективно решать широкий спектр. . .
Как использовать Kerio дома для управления сетью и пользователями
InfoMaster 16.01.2025
Использование технологий для улучшения повседневной жизни стало неотъемлемой частью современного быта. Одной из таких технологий является Kerio — мощный инструмент для управления сетью и. . .
Есть ли будущее у DVD и Blu-ray?
InfoMaster 16.01.2025
В эпоху стремительного развития цифровых технологий и повсеместного распространения потоковых сервисов вопрос о будущем физических носителей информации становится все более актуальным. Особенно остро. . .
Как проводить научные вычисления на Python
InfoMaster 15.01.2025
Python стал одним из наиболее востребованных языков программирования в области научных вычислений благодаря своей простоте, гибкости и обширной экосистеме специализированных библиотек. Научные. . .
Создание игры типа Minecraft на PyGame/Python: пошаговое руководство
InfoMaster 15.01.2025
В данном руководстве мы рассмотрим процесс создания игры в стиле Minecraft с использованием библиотеки PyGame на языке программирования Python. Этот проект идеально подходит как для начинающих. . .
Как создать свою первую игру в стиле Doom на Unreal Engine
InfoMaster 15.01.2025
Разработка шутера от первого лица в стиле классического Doom представляет собой увлекательное путешествие в мир игрового программирования, где сочетаются творческий подход и технические навыки. . . .
Параллельное программировани­е: основные технологии и принципы
InfoMaster 15.01.2025
Введение в параллельное программирование Параллельное программирование представляет собой фундаментальный подход к разработке программного обеспечения, который позволяет одновременно выполнять. . .
Как написать микросервис на C# с Kafka, MediatR, Redis и GitLab CI/CD
InfoMaster 15.01.2025
В современной разработке программного обеспечения микросервисная архитектура стала стандартом де-факто для создания масштабируемых и гибких приложений. Этот подход позволяет разделить сложную систему. . .
Что такое CQRS и как это реализовать на C# с MediatR
InfoMaster 15.01.2025
Концепция CQRS и её роль в современной разработке В современном мире разработки программного обеспечения архитектурные паттерны играют ключевую роль в создании масштабируемых и поддерживаемых. . .
Как настроить CI/CD с Azure DevOps
InfoMaster 15.01.2025
CI/ CD, или непрерывная интеграция и непрерывное развертывание, представляет собой современный подход к разработке программного обеспечения, который позволяет автоматизировать и оптимизировать процесс. . .
Как настроить CI/CD с помощью Jenkins
InfoMaster 15.01.2025
Введение в CI/ CD и Jenkins В современной разработке программного обеспечения непрерывная интеграция (CI) и непрерывная доставка (CD) стали неотъемлемыми элементами процесса создания качественных. . .
Как написать микросервис на Go/Golang с Kafka, REST и GitHub CI/CD
InfoMaster 14.01.2025
Определение микросервиса, преимущества использования Go/ Golang Микросервис – это архитектурный подход к разработке программного обеспечения, при котором приложение состоит из небольших, независимо. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru