Skip to content

Comments

Иванова Алина Алексеевна мм.Б42-25#20

Open
ialina07 wants to merge 7 commits intopython-course-matmex:mainfrom
ialina07:kr
Open

Иванова Алина Алексеевна мм.Б42-25#20
ialina07 wants to merge 7 commits intopython-course-matmex:mainfrom
ialina07:kr

Conversation

@ialina07
Copy link

@ialina07 ialina07 commented Nov 7, 2025

Контрольная работа

…ментных массивов

- Изменено условие цикла с left < right на left <= right
- Исправлена ошибка, из-за которой поиск в одноэлементных массивах выполнялся некорректно. для одноэлементного массива было left = 0, right = 0, 0 < 0 = False, из-за чего цикл не выполнялся ни разу и возвращалось -1
- Теперь корректно возвращает индекс 0 для одноэлементного массива
- Поддерживает корректное поведение для пустых и многоэлементных массивов
- Изменен постоянный вес 10 на уменьшающийся (10-i)
- Теперь реализована правильная схема взвешивания ISBN-10: цифра*10 + цифра*9 + ... + цифра*1
- Заменено неправильное вычисление контрольной суммы стандартным алгоритмом ISBN-10
- Была проверка (total + check_digit) % 11 == 0 (математически неверно)
- Теперь корректно вычисляется: expected_check_digit = (11 - (total % 11)) % 11
- Возвращает значение True, если фактическая контрольная цифра совпадает с ожидаемым значением
- Добавлена проверка того, что ISBN должен содержать ровно 10 цифр (по стандарту)
- Возвращает значение False при недопустимых значениях длины (слишком коротких или длинных)
- Пользователь вводит ISBN, получает correct/incorrect
- Завершает работу при вводе -1
- Корректно обрабатывается пустой ввод и различные ошибки
Copy link

@Godrik0 Godrik0 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ISBN10: 7/10
Бинарный поиск: 4/5
Оформление: 6/10 (нет лицензии, README, .gitignore, описания к PR)

Comment on lines -3 to 13
digits = [int(char) for char in ISBNNumber if char.isdigit()]
digits = [int(char) for char in isbn_number if char.isdigit()]
if len(digits) != 10:
return False

checkDigit = digits[-1]
check_digit = digits[-1]

total = 0
for i in range(len(digits) - 1):
weight = 10
weight = 10 - i
digit = digits[i]
total += digit * weight
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

У Вас пропущена обработка символа X, который может служить контрольной цифрой.

@@ -1,13 +1,32 @@
from src.bin_search import binSearch
from src.bin_search import binary_search
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

В src.bin_search у Вас функция называется bin_search, тесты упадут.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants