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

Python Необходимо написать класс Library, который описывает библиотеку. У библиотеки есть два свойства: название и список книг. У библиотеки есть следующие методы:
Конструктор, принимает название и список книг. По умолчанию список книг пустой. Каждая книга - это объект класса Book

list() - показать все книги в библиотеке в виде таблицы "Название Автор Год". Для вывода книг используйте их метод display().
filter() - найти книги по названию, автору или году. Метод должен вернуть список подходящих книг. По умолчанию все параметры поиска - пустые. Если параметры поиска не заданы, нужно вернуть все книги. Если ни одна книга не найдена, метод должен вернуть пустой список. Метод не должен выводить никаких сообщений или сам выводить книги.
add_book() - добавить книгу в библиотеку. Принимает объект класса Book.
class Book:

def __init__(self, title, author=None, year=None):
self.title = title
self.author = author
self.year = year

book = Book('Title', 'Author', 2020)
book.display()

Книги могут повторяться. Сама книга (Book) должна создаваться снаружи класса, и передаваться в этот метод, как аргумент.

book = Book('Title', 'Author')
library.add_book(book)

delete_book() - удалить книгу из библиотеки. Принимает объект класса Book, ранее найденный с поиска. Например:

books = library.filter(title='Title')
book = books[0] # первая книга из найденных
library.delete_book(book)

Статический метод as_table() - показать переданный список книг в виде таблицы. Принимает список из объектов Book и выводит их аналогично методу list. Например, в этот метод можно передать список книг, возвращённый из метода поиска.

Контрольный пример:

book_1 = Book('Чистый код', 'Дядя Боб', 2017)
book_2 = Book('От 2 до 5', 'Корней Чуковский', 1958)
book_3 = Book('Идеальный программист', 'Дядя Боб', 2018)
book_4 = Book('Рецепты татарской кухни', year=2018)

library = Library('Библиотека')
library.add_book(book_1)
library.add_book(book_2)
library.add_book(book_3)
library.add_book(book_4)

print(library.name) # вывод названия
library.list() # вывод книг

Показать ответ
Ответ:
BabyStoyn
BabyStoyn
26.01.2023 05:40
Как ч понял сортировка по неубыванию это сортировка по возрастанию. То есть легкие элементы всплывают наверх, а тяжелые перемещаются вниз:

//Pascal
const m = 1000
var
    arr: array[1..m] of integer;
    n,i, j, k: integer;
begin
    readln(n);
    write ('Исходный массив: ');
    for i := 1 to n do begin
        readln(arr[i]);
    end;
//сортировка методом пузырька   
    for i := 1 to n-1 do
        for j := 1 to n-i do
            if arr[j] > arr[j+1] then begin
                k := arr[j];
                arr[j] := arr[j+1];
                arr[j+1] := k
            end;
 
    write ('Отсортированный массив: ');
    for i := 1 to n do
        write (arr[i]:4);
end.

Алгоритм сортировки на классическом языке программирования С

# define SWAP(A,B) {A=A^B;B=A^B;A=A^B;}
void bubblesort(int A[], int n)
 {
     int i, j;
     for(i = n-1 ; i > 0 ; i--)
          { for(j = 0 ; j < i ; j++)
               {
                   if( A[j] > A[j+1] ) SWAP(A[j],A[j+1]);
               }
           }
   }
0,0(0 оценок)
Ответ:
qq302894
qq302894
19.06.2020 11:57
1. Вот так сейчас решают подобные задачи:

// PascalABC.NET 3.1, сборка 1174 от 22.02.2016
begin
  Writeln(Range(1,100).Select(i->sin(i)*cos(i)).Where(x->x<>0).Average)
end.

Тестовое решение:
-0.00136006072493969

2. А вот так учат писать это же школьные учителя:

// PascalABC.NET 3.1, сборка 1174 от 22.02.2016
var
  m:array[1..100] of real;
  i,k:integer;
  s:real;

begin
  s:=0;
  k:=0;
  for i:=1 to 100 do begin
    m[i]:=sin(i)*cos(i);
    if m[i]<>0 then begin
      s:=s+m[i];
      k:=k+1
      end
    end;
  Writeln(s/k)
end.

Тестовое решение:
-0.00136006072493969
0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота