Zadanie 3 - CRC #27
Loading…
Reference in New Issue
Block a user
No description provided.
Delete Branch "s426284/DALGLI0:zad3"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Proszę sprawdzić, czy program jest w stanie wygenerować FCS i sprawdzić go dla wiadomości
"Hello_world"
Błąd naprawiony, teraz poprawnie sprawdza wiadomości.
Raczej miałem na myśli co innego:
W chwili obecnej fcs jest kodowany jako pewne (nieczytelne, czasami) znaki we wiadomości; tymczasem fcs, to po prostu binarna reszta z dzielenia wielomianu więc nie powinna być w ten traktowana jako znaki (z resztą: w jakim kodowaniu?!); Wbrew temu co (mój, nieprecyzyjny) opis sugeruje wejście do programu sprawdzającego poprawność nie jest typu ASCII (bo fcs nie jest): to po prostu tabela liczb heksadecymalnych w których pierwsze (n-2) liczby są mniejsze od 127.
wyjście więc powinno być typu bytesarray:
Ponownie poprawiłem kod, zmieniając input dla sprawdzenia poprawności. Teraz przy kodowaniu program zwraca wejściową wiadomość oraz FCS w postaci listy liczb heksadecymalnych. Przy sprawdzaniu poprawności należy podać string oraz listę liczb heksadecymalnych (która z przyczyn technicznych musi być w cudzysłowie).
Nie jest to co prawda w pełni sposób, który Pan Doktor zaproponował, ale znacznie ułatwia on użytkowanie programu, w porównaniu do wprowadzania wiadomości w systemie heksadecymalnym.
ok, uwagi do kodu:
po to piszemy klasy, oraz posługujemy się idiomem
if __name__ == "__main__":
, żeby klasy rezydowały w pliku który można załączać/używać w kolejnych projektach; Dlaczego Pan tego nie robi?Zgodzę się z sugestią, że użytkownikowi
crc16.py
znacznie łatwiej wprowadzać w ten sposób fcs. Natomiast konwersja user-input do wersji która jest najstrawniejsza dla komputera (czytajbytearray
) powinna odbywać się właśne w__main__
(lub specjalnej funkcji do tego przeznaczonej).encode
powinno przyjmowaćstring
(wiadomość) i wielomiany generujące (M, L, G
), które mogą mieć przypisane wartości default (na potrzeby zdania)Modularność jest istotą programowania obiektowego.
Pull request closed