
Имеются сведения о книгах, содержащихся в библиотеке. Сведения о каждой из книг — это фамилия
автора, название и год издания. а) Получить название книг данного автора, изданных с 1960 г. б) Определить, имеется ли книга, содержащая в своем название слово «информатика». Вывести сведения обо всех таких книгах в) Вывести сведения о книгах, которые имеют несколько изданий (автор и названия повторяются, а годы издания разные)

Ответы на вопрос

Python:
class book:
def __init__(self, author, name, date):
self.author = author
self.name = name
self.date = date
def print(self):
print(self.name, self.author, self.date)
book1 = book("абоба", "математика 8 класс", 1951)
book2 = book("абоба", "информатика 8 класс", 1992)
book3 = book("абоба", "математика 10 класс", 1991)
book4 = book("абоба1", "математика 10 класс", 1994)
book5 = book("абоба1", "информатика 10 класс", 1955)
book6 = book("абоба1", "информатика 11 класс", 1993)
book7 = book("абоба", "физика 8 класс", 1952)
book8 = book("абоба", "информатика 8 класс", 1871)
book9 = book("абоба1", "физика 8 класс", 1951)
book10 = book("абоба1", "физика 8 класс", 1971)
library = [book1, book2, book3, book4, book5, book6, book7, book8, book9, book10]
# a
author = "абоба" # автор, книги которого ищем
print("а)")
for i in range(len(library)):
if library[i].author == author and library[i].date >= 1960:
print(library[i].name)
###########
# б
print("б)")
for i in range(len(library)):
for k in library[i].name.split():
if k == 'информатика':
library[i].print()
###########
# в
print("в)")
for i in range(len(library) - 1):
for j in range(i + 1, len(library)):
if library[i].author == library[j].author and library[i].name == library[j].name:
library[i].print()
library[j].print()
###########



a) Получить название книг данного автора, изданных с 1960 г.
Для получения названий книг данного автора, изданных с 1960 года, нужно выполнить следующие шаги: 1. Найти фамилию автора в сведениях о книгах в библиотеке. 2. Проверить год издания каждой книги данного автора. 3. Если год издания больше или равен 1960 году, сохранить название книги.
Примерный алгоритм: 1. Извлечь фамилию автора из входных данных. 2. Пройти по каждой книге в библиотеке и проверить, является ли автором указанный автор. 3. Если автор совпадает и год издания больше или равен 1960 году, сохранить название книги. 4. Вывести список названий найденных книг.
Примерный код на Python: ```python def get_books_by_author_and_year(library, author, year): books = [] for book in library: if book['author'] == author and book['year'] >= year: books.append(book['title']) return books
# Пример использования функции library = [ {'author': 'Иванов', 'title': 'Книга 1', 'year': 1950}, {'author': 'Петров', 'title': 'Книга 2', 'year': 1965}, {'author': 'Иванов', 'title': 'Книга 3', 'year': 1970}, ]
author = 'Иванов' year = 1960
books = get_books_by_author_and_year(library, author, year) print(books) ```
б) Определить, имеется ли книга, содержащая в своем названии слово «информатика». Вывести сведения обо всех таких книгах.
Для определения наличия книги, содержащей в своем названии слово "информатика", нужно выполнить следующие шаги: 1. Проверить каждую книгу в библиотеке на наличие слова "информатика" в названии. 2. Если слово "информатика" найдено, сохранить сведения о книге.
Примерный алгоритм: 1. Пройти по каждой книге в библиотеке. 2. Проверить, содержит ли название книги слово "информатика". 3. Если содержит, сохранить сведения о книге. 4. Вывести список сведений о найденных книгах.
Примерный код на Python: ```python def find_books_with_keyword(library, keyword): books = [] for book in library: if keyword in book['title']: books.append(book) return books
# Пример использования функции library = [ {'author': 'Иванов', 'title': 'Книга 1: Введение в информатику', 'year': 2000}, {'author': 'Петров', 'title': 'Книга 2: Основы программирования', 'year': 1995}, {'author': 'Сидоров', 'title': 'Книга 3: Математика и информатика', 'year': 2010}, ]
keyword = 'информатика'
books = find_books_with_keyword(library, keyword) for book in books: print(f"Автор: {book['author']}, Название: {book['title']}, Год издания: {book['year']}") ```
в) Вывести сведения о книгах, которые имеют несколько изданий (автор и названия повторяются, а годы издания разные).
Для вывода сведений о книгах, которые имеют несколько изданий, нужно выполнить следующие шаги: 1. Сгруппировать книги по автору и названию. 2. Проверить, есть ли у каждой группы книг более одного издания. 3. Если есть, сохранить сведения о книге.
Примерный алгоритм: 1. Создать пустой словарь для хранения групп книг. 2. Пройти по каждой книге в библиотеке. 3. Использовать автора и название книги в качестве ключа словаря. 4. Если ключ уже существует, добавить год издания к списку годов издания для данной группы книг. 5. Если ключ не существует, создать новую запись в словаре с годом издания в качестве первого элемента списка годов издания. 6. Пройти по каждой группе книг в словаре. 7. Проверить, содержит ли группа книг более одного года издания. 8. Если содержит, вывести сведения о книге.
Примерный код на Python: ```python from collections import defaultdict
def find_books_with_multiple_editions(library): book_groups = defaultdict(list) for book in library: key = (book['author'], book['title']) book_groups[key].append(book['year']) books_with_multiple_editions = [] for key, years in book_groups.items(): if len(years) > 1: author, title = key books_with_multiple_editions.append({'author': author, 'title': title, 'years': years}) return books_with_multiple_editions
# Пример использования функции library = [ {'author': 'Иванов', 'title': 'Книга 1', 'year': 2000}, {'author': 'Петров', 'title': 'Книга 2', 'year': 1995}, {'author': 'Иванов', 'title': 'Книга 1', 'year': 2010}, {'author': 'Сидоров', 'title': 'Книга 3', 'year': 2005}, ]
books = find_books_with_multiple_editions(library) for book in books: print(f"Автор: {book['author']}, Название: {book['title']}, Годы издания: {', '.join(map(str, book['years']))}") ```
Примечание: Предоставленные сведения о книгах в библиотеке являются фрагментами текста и не содержат полной информации о книгах. Поэтому, в приведенных примерах использованы вымышленные данные для наглядности. В реальной ситуации, необходимо использовать полные и точные данные о книгах для выполнения поставленных задач.


Похожие вопросы
Топ вопросов за вчера в категории Информатика







Последние заданные вопросы в категории Информатика
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili