Zadanie 3 - CRC - wersja innym inputem #31

Closed
s426271 wants to merge 14 commits from s426271/DALGLI0:Zadanie-3 into master
First-time contributor

Poprawiona wersja inputa, teraz wystarczy przejść do folderu Zadanie-03\out\artifacts\Zadanie_03_jar
a następnie wpisać w konsoli java -jar Zadanie-03.jar a b
a - tryb (1 lub 2)
b - wiadomość

Poprawiona wersja inputa, teraz wystarczy przejść do folderu Zadanie-03\out\artifacts\Zadanie_03_jar a następnie wpisać w konsoli java -jar Zadanie-03.jar a b a - tryb (1 lub 2) b - wiadomość
Owner
$ java -jar Zadanie-03.jar 1 "Hello world"
WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by com.tylkowski.crc.CrcTask (file:/home/kalmar/Mathematics/Teaching/2018/DALGLI0/hw/DALGLI0/Zadanie-03/out/artifacts/Zadanie_03_jar/Zadanie-03.jar) to field java.nio.charset.Charset.defaultCharset
WARNING: Please consider reporting this to the maintainers of com.tylkowski.crc.CrcTask
WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
WARNING: All illegal access operations will be denied in a future release
Hello world

wygląda na to, że fcs jest pusty?? poza tym pisanie znaków do konsoli, które nie mieszczą się w standardzie ascii, albo nawet jeśli się mieszczą, są np znakiem DEL (ascii 127) nie jest najlepszym pomysłem.

fcs powinien być typu bytesarray (lub cokolwiek innego co java ma do zaproponowania co jest tablicą zawierającą liczby z przedziału 0-255)

nie pisałem nigdy w javie, więc nie umiem zaproponować technicznego rozwiązania, ale liczę, że Pan je poda ;-)

```bash $ java -jar Zadanie-03.jar 1 "Hello world" WARNING: An illegal reflective access operation has occurred WARNING: Illegal reflective access by com.tylkowski.crc.CrcTask (file:/home/kalmar/Mathematics/Teaching/2018/DALGLI0/hw/DALGLI0/Zadanie-03/out/artifacts/Zadanie_03_jar/Zadanie-03.jar) to field java.nio.charset.Charset.defaultCharset WARNING: Please consider reporting this to the maintainers of com.tylkowski.crc.CrcTask WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations WARNING: All illegal access operations will be denied in a future release Hello world ``` wygląda na to, że fcs jest pusty?? poza tym pisanie znaków do konsoli, które nie mieszczą się w standardzie ascii, albo nawet jeśli się mieszczą, są np znakiem DEL (ascii 127) nie jest najlepszym pomysłem. fcs powinien być typu `bytesarray` (lub cokolwiek innego co java ma do zaproponowania co jest tablicą zawierającą liczby z przedziału 0-255) nie pisałem nigdy w javie, więc nie umiem zaproponować technicznego rozwiązania, ale liczę, że Pan je poda ;-)
Author
First-time contributor

Poprawione, teraz po zakodowaniu zwraca wiadomość w postaci wiadomośćX , gdzie X jest FCS np. Hello_world 0xc50e

Poprawione, teraz po zakodowaniu zwraca wiadomość w postaci wiadomośćX , gdzie X jest FCS np. Hello_world 0xc50e
Owner

gdybym miał się czepiać, to:

java -jar ./Zadanie-03/out/artifacts/Zadanie_03_jar/Zadanie-03.jar 2  "Hello world" "0xbd22" 
Exception in thread "main" java.lang.StringIndexOutOfBoundsException: begin -1, end 11, length 11
        at java.base/java.lang.String.checkBoundsBeginEnd(String.java:3107)
        at java.base/java.lang.String.substring(String.java:1873)
        at com.tylkowski.crc.CrcTask.decode(CrcTask.java:170)
        at com.tylkowski.crc.Main.main(Main.java:15)

ale niech będzie że ok;

uwagi do kodu:

  1. kod nie używa w ogóle wielomianów; Proszę spojrzeć do #30 (ostatni komentarz) po (potencjalny) prototyp klasy.

Przyznaję, że nie jest on doskonały (a ja nie piszę w javie), ale lepszy niż to co jest tutaj (miks operacji na stringach i liczbach)

  1. To co tutaj widać, to programowanie proceduralne, dlaczego CrcTask ma atrybuty (i ile ich??) message? przecież algorytm Crc nie zależy od wiadomości?! Trochę lepiej napisane jest decode; co ma oznaczać CrcTask.encode()?! enkodujemy pusty string?

  2. co ma wspólnego private short[] removeUnecessaryZeros(short[] remainder) z klasą CrcTask? a jeśli nic, to dlaczego jest jej metodą? czy (jeśli już) nie pasowałaby ta metoda do klasy Polynomial??

jest tego wiele...

gdybym miał się czepiać, to: ```bash java -jar ./Zadanie-03/out/artifacts/Zadanie_03_jar/Zadanie-03.jar 2 "Hello world" "0xbd22" Exception in thread "main" java.lang.StringIndexOutOfBoundsException: begin -1, end 11, length 11 at java.base/java.lang.String.checkBoundsBeginEnd(String.java:3107) at java.base/java.lang.String.substring(String.java:1873) at com.tylkowski.crc.CrcTask.decode(CrcTask.java:170) at com.tylkowski.crc.Main.main(Main.java:15) ``` ale niech będzie że ok; uwagi do kodu: 1. kod nie używa w ogóle wielomianów; Proszę spojrzeć do https://git.wmi.amu.edu.pl/kalmar/DALGLI0/pulls/30 (ostatni komentarz) po (potencjalny) prototyp klasy. Przyznaję, że nie jest on doskonały (a ja nie piszę w javie), ale lepszy niż to co jest tutaj (miks operacji na stringach i liczbach) 2. To co tutaj widać, to programowanie proceduralne, dlaczego `CrcTask` ma atrybuty (i ile ich??) `message`? przecież algorytm `Crc` nie zależy od wiadomości?! Trochę lepiej napisane jest `decode`; co ma oznaczać `CrcTask.encode()`?! enkodujemy pusty string? 3. co ma wspólnego `private short[] removeUnecessaryZeros(short[] remainder)` z klasą `CrcTask`? a jeśli nic, to dlaczego jest jej metodą? czy (jeśli już) nie pasowałaby ta metoda do klasy `Polynomial`?? jest tego wiele...
kalmar closed this pull request 2018-06-29 03:18:19 +02:00
Author
First-time contributor

Co do błędu "2 "Hello world" "0xbd22" to przez pomyłkę dodałem spację w opisie, ciąg argumentów powinien być następujący: 2 "Hello world0xbd22" .

  1. CrcTask ma atrybut, podany jest jako parametr konstruktora z którego potem korzysta funkcja encode. Decode jest napisany już troszkę w inny sposób, ponieważ dekoduje tylko tekst podany jako argument funkcji.
    Podsumowując to zdaję sobie sprawę, że jeśli chodzi o kwestię programistyczną to nie jest to najlepiej napisany program, lecz uważam, że spełnia wymogi zadania.
Co do błędu "2 "Hello world" "0xbd22" to przez pomyłkę dodałem spację w opisie, ciąg argumentów powinien być następujący: 2 "Hello world0xbd22" . 1. CrcTask ma atrybut, podany jest jako parametr konstruktora z którego potem korzysta funkcja encode. Decode jest napisany już troszkę w inny sposób, ponieważ dekoduje tylko tekst podany jako argument funkcji. Podsumowując to zdaję sobie sprawę, że jeśli chodzi o kwestię programistyczną to nie jest to najlepiej napisany program, lecz uważam, że spełnia wymogi zadania.
Owner

Gdyby się dokładnie w treść zadania wczytać, to oczywiście nie spełnia (Hello world0xbd22 jest o 6 znaków dłuższy a nie o 2 itd.) ale w tego ping-ponga moglibyśmy grać w nieskończoność ;-), ponieważ Panu zależy na tym, żeby "spełniał wymogi zadania", a nie żeby się czegoś przy okazji nauczyć. A szkoda, bo to trochę strata i Pana i mojego czasu.

No i to, że "spełnia wymogi zadania" to nie oznacza, że dostanie maksymalną liczbę punktów.

Gdyby się dokładnie w treść zadania wczytać, to oczywiście nie spełnia (`Hello world0xbd22` jest o 6 znaków dłuższy a nie o 2 itd.) ale w tego ping-ponga moglibyśmy grać w nieskończoność ;-), ponieważ Panu zależy na tym, żeby "spełniał wymogi zadania", a nie żeby się czegoś przy okazji nauczyć. A szkoda, bo to trochę strata i Pana i mojego czasu. No i to, że "spełnia wymogi zadania" to nie oznacza, że dostanie maksymalną liczbę punktów.
Author
First-time contributor

Ma Pan rację, dlatego zaimplementowałem klasę Polynomial, która wykonuje działania na wielomianach.

Ma Pan rację, dlatego zaimplementowałem klasę Polynomial, która wykonuje działania na wielomianach.
Owner

ok, mam nadzieję, że po napisaniu klasy Polynomial sam algorytm pisało się już Panu łatwo.

Mi się na pewno znacznie znacznie łatwiej czytało ;-)

ok, mam nadzieję, że po napisaniu klasy `Polynomial` sam algorytm pisało się już Panu łatwo. Mi się na pewno znacznie znacznie łatwiej czytało ;-)

Pull request closed

Sign in to join this conversation.
No reviewers
No Label
No Milestone
No Assignees
2 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: kalmar/DALGLI0#31
No description provided.