Уведомления

Группа в Telegram: @pythonsu

#1 Апрель 10, 2017 09:09:32

Alexandra_raider
Зарегистрирован: 2017-04-10
Сообщения: 2
Репутация: +  0  -
Профиль   Отправить e-mail  

ООП

Создать класс, описывающий Буфер данных типа Fifo. Задать размер буфера. Добавить элемент. Если буфер заполнен применение данного метода возвращает первый элемент, иначе none. Затем извлечь элемент.
Если кто-то подскажет, буду очень благодарна

Офлайн

#2 Апрель 10, 2017 11:34:24

PEHDOM
Зарегистрирован: 2016-11-28
Сообщения: 2196
Репутация: +  294  -
Профиль   Отправить e-mail  

ООП

Если “подсказать” то обычно для FIFO уфера используют списки.
Вот собственно простой пример FIFO буфера, он пока безразмерный, и все что умеет это добавить элемент в конец и получить первый элемент. Теперь вам нужно добавить задание размера для буфера, а также изменить поведение для def add чтобы “Если буфер заполнен применение данного метода возвращает первый элемент, иначе none”.

 # -*- coding: utf-8 -*-
class FIFOBufer(object):
    # клас  описывающий Буфер данных типа Fifo
    def __init__(self):
        self._buffer = list()
    def add(self, item):
        # добавляет item в конец буфера
        self._buffer.append(item)
    def get(self):
        # получить из буфера первый элемент, ечли буфер пустой вернет None
        if len(self._buffer) > 0:
            return self._buffer.pop(0)
        else:
            return None
    def __str__(self):
        #  содержимое буфера для print
        return(str(self._buffer))
if __name__ == '__main__':
    test=FIFOBufer()
    print('current buffer is: ',test)
    print('1-st element:', test.get())
    for i in range(3):
        print('add {}, to bufer'.format(i))
        test.add(i)
        print('current buffer is: ',test)
    #print('current buffer is: ',test)
    for i in range(4):
        value = test.get()
        print('get 1-st element from bufer. 1-st element = {}'.format(value))
        print('current buffer is: ',test)



==============================
Помещайте код в теги:
[code python][/code]
Бериегите свое и чужое время.

Отредактировано PEHDOM (Апрель 10, 2017 11:35:12)

Офлайн

#3 Апрель 10, 2017 18:02:16

Alexandra_raider
Зарегистрирован: 2017-04-10
Сообщения: 2
Репутация: +  0  -
Профиль   Отправить e-mail  

ООП

PEHDOM
Если “подсказать” то обычно для FIFO уфера используют списки.Вот собственно простой пример FIFO буфера, он пока безразмерный, и все что умеет это добавить элемент в конец и получить первый элемент. Теперь вам нужно добавить задание размера для буфера, а также изменить поведение для def add чтобы “Если буфер заполнен применение данного метода возвращает первый элемент, иначе none”.
Спасибо, друг)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version