Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.86/7: Рейтинг темы: голосов - 7, средняя оценка - 4.86
18 / 16 / 3
Регистрация: 30.09.2017
Сообщений: 63

Задание с Сириус, "Очередь с защитой от ошибок" Не понимаю что от меня хочет местный проверщик заданий

11.08.2022, 21:42. Показов 1651. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Само задание:

Очередь с защитой от ошибок

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

push n

— добавить в очередь число n (значение n

задаётся после команды). Программа должна вывести ok;
pop — удалить из очереди первый элемент. Программа должна вывести его значение;
front — программа должна вывести значение первого элемента, не удаляя его из очереди;
size — программа должна вывести количество элементов в очереди;
clear — программа должна очистить очередь и вывести ok;
exit — программа должна вывести bye и завершить работу.

Перед исполнением операций front и pop программа должна проверять, содержится ли в очереди хотя бы один элемент. Если во входных данных встречается операция front или pop и при этом очередь пуста, то программа должна вместо числового значения вывести строку error.

Входные данные

Вводятся команды управления очередью, по одной команде в строке. Среди них обязательно присутствует команда exit.

Выходные данные

Требуется вывести протокол работы очереди, по одному сообщению в строке.

Примеры во вложении

Мой код: https://onlinegdb.com/b7p8PEskB (да-да, не идеален, делала "как побыстрей сделать" и на основе уже принятого проверщиком кода из темы Линейные структуры данных. Питон.Очередь с защитой от ошибок ; в том задании тоже бороться с местной проверкой надоело)
Код проверен, рабочий, но на Сириусе пишет "Программа выдаёт ошибку в процессе выполнения". Вопрос: что ему может быть надо?
Миниатюры
Задание с Сириус, "Очередь с защитой от ошибок" Не понимаю что от меня хочет местный проверщик заданий  
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
11.08.2022, 21:42
Ответы с готовыми решениями:

не понимаю что от меня хочет делфа
begin if form1.GroupBox1.Height <> 0 then form1.GroupBox1.Height:=0; form1.Button1.Caption:='Show' else ...

Очередь с защитой от ошибок
2 задача Очередь с защитой от ошибок Реализуйте структуру данных "очередь". Напишите программу, содержащую описание очереди и...

Очередь с защитой от ошибок
Очередь с защитой от ошибок Реализуйте структуру данных "очередь". Напишите программу, содержащую описание очереди и моделирующую работу...

7
 Аватар для Semen-Semenich
5237 / 3481 / 1176
Регистрация: 21.03.2016
Сообщений: 8,310
12.08.2022, 12:00
а что тут за магия у вас?
Python
1
2
3
4
5
6
7
8
def pop(a):
    if len(a)>0:
        b = a[::-1]
        print(b.pop())
        a = b[::-1]
        return a
    else:
        print('error'):
Python
1
2
3
4
5
def pop_(a):
    if len(a)>0:
        print(а.pop_())
    else:
        print('error')
0
18 / 16 / 3
Регистрация: 30.09.2017
Сообщений: 63
12.08.2022, 12:07  [ТС]
Цитата Сообщение от Semen-Semenich Посмотреть сообщение
и где момент
Тут:
Code
1
print(b.pop())
Цитата Сообщение от Semen-Semenich Посмотреть сообщение
а что тут за магия
Кусочек алгоритма из лекции, недописанный. По-хорошему там не должно быть переворачивания стека обратно, но - тогда надо было бы дописывать другие функции, а мне было лень. Отправила с таким костылём на проверку, и - дописывать уже не стала, т.к. рабочий код не прошёл по причине непонятной "ошибки"
0
 Аватар для Semen-Semenich
5237 / 3481 / 1176
Регистрация: 21.03.2016
Сообщений: 8,310
12.08.2022, 12:26
а теперь подробно
Python
1
2
3
4
5
6
7
8
9
10
11
12
def pop(a):
    if len(a)>0:
        b = a[::-1] # тут вы создаете ЛОКАЛЬНОЮ копию списка
        print(b.pop()) # выводите удаленный элемент
        a = b[::-1] # тут вы создаете ЛОКАЛЬНЫЙ список. основной при этом не меняется
        return a # куда вы его возвращаете?
    else:
        print('error'): # тут двоеточие зачем? ошибка синтаксиса
   
a = [1,2,3,4]
pop(a)
print(a)
результат

>>> %Run
1
[1, 2, 3, 4]
>>>

Добавлено через 7 минут
еще с вашим разворотом сам затупил
''' Необязательный аргумент - индекс i по умолчанию равен -1. Так что по умолчанию эта операция производит действие с последним элементом последовательности'''
Python
1
2
3
4
5
def pop_(a):
    if len(a)>0:
        print(а.pop_(0)) # удаляем первый элемент
    else:
        print('error')
0
18 / 16 / 3
Регистрация: 30.09.2017
Сообщений: 63
12.08.2022, 13:07  [ТС]
Цитата Сообщение от Semen-Semenich Посмотреть сообщение
ЛОКАЛЬНОЮ
Знаю, оттуда и return a, а также последующее a = pop(a) (42 строка в онлайн-компиляторе)

Цитата Сообщение от Semen-Semenich Посмотреть сообщение
тут двоеточие зачем?
Его там и нет

Добавлено через 23 минуты
Последний вариант, с параметром в pop, почти прошёл. Пересёкся параметр в моей функции pop, являющийся списком, и тот стандартный. Переименовала свою - и порядок
Code
1
2
3
4
5
def apop(a):
    if len(a)>0:
        print(a.pop(0))
    else:
        print('error')
Не очень хорошо по сложности алгоритма, но - оно и в моём недописанном виде хорошо не было. Дописывать до нормального варианта с настолько непредсказуемым местным проверщиком желания уже нет
0
 Аватар для Semen-Semenich
5237 / 3481 / 1176
Регистрация: 21.03.2016
Сообщений: 8,310
12.08.2022, 17:40
Цитата Сообщение от Татьяна5 Посмотреть сообщение
Знаю, оттуда и return a
куда? кому? чему? глобальный список от этого не меняется и элемент не удаляется!
0
18 / 16 / 3
Регистрация: 30.09.2017
Сообщений: 63
12.08.2022, 21:49  [ТС]
Цитата Сообщение от Semen-Semenich Посмотреть сообщение
куда?
На 42 строку. В тот самый глобальный список

Добавлено через 18 минут
На коде из примера:
Code
1
2
3
4
5
6
7
8
9
10
11
12
def pop(a):
    if len(a)>0:
        b = a[::-1] # тут вы создаете ЛОКАЛЬНОЮ копию списка
        print(b.pop()) # выводите удаленный элемент
        a = b[::-1] # тут вы создаете ЛОКАЛЬНЫЙ список. основной при этом не меняется
        return a # куда вы его возвращаете?
    else:
        print('error')
   
a = [1,2,3,4]
a = pop(a) # сюда возвращаю!
print(a)
0
 Аватар для Semen-Semenich
5237 / 3481 / 1176
Регистрация: 21.03.2016
Сообщений: 8,310
13.08.2022, 10:37
Цитата Сообщение от Татьяна5 Посмотреть сообщение
На 42 строку. В тот самый глобальный список
хорошо. я не досмотрел этот момент. а теперь поступим так. удалим два раза элемент pop — удалить из очереди первый элемент
затем добавим push n — добавить в очередь число n.
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
def push(a,n):
    a.append(n)
    print('ok')
    
def pop(a):
    if len(a)>0:
        b = a[::-1] # тут вы создаете ЛОКАЛЬНОЮ копию списка
        print(b.pop()) # выводите удаленный элемент
        a = b[::-1] # тут вы создаете ЛОКАЛЬНЫЙ список. основной при этом не меняется
        return a # куда вы его возвращаете?
    else:
        print('error')
   
a = [1] # у нас остался один элемент
a = pop(a) 
a = pop(a) 
push(a,12) # добавляем элемент
в итоге как и ожидалось
AttributeError: 'NoneType' object has no attribute 'append' вот вам и ответ от сириуса
"Программа выдаёт ошибку в процессе выполнения". надеюсь поймете почему.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
13.08.2022, 10:37
Помогаю со студенческими работами здесь

Очередь с защитой от ошибок
Помогите улучшить код. Реализуйте структуру данных "очередь". Напишите программу, содержащую описание очереди и моделирующую работу...

Очередь с защитой от ошибок
ЗАДАЧА Очередь с защитой от ошибок Реализуйте структуру данных "очередь". Напишите программу, содержащую описание очереди и...

Очередь с защитой от ошибок.Линейные структуры данных. Python
Очередь с защитой от ошибок Реализуйте структуру данных "очередь". Напишите программу, содержащую описание очереди и моделирующую работу...

Линейные структуры данных. Питон.Очередь с защитой от ошибок
Реализуйте структуру данных "очередь". Напишите программу, содержащую описание очереди и моделирующую работу очереди, реализовав все...

Кто хочет поупражнятся и заодно сделать для меня несколько заданий?
Здравствуйте. Я студент первокурсник и мне на завтра нужно очень много задач решить по языку СИ. Кто желает, может написать, я скину...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru