[pascal] deszyfrator morsea

muller
Użytkownik
Użytkownik
Posty: 206
Rejestracja: 8 gru 2006, o 19:28
Płeć: Mężczyzna
Lokalizacja: Centrum
Podziękował: 85 razy
Pomógł: 6 razy

[pascal] deszyfrator morsea

Post autor: muller »

Hej czy ktoś mógłby mi podpowiedzieć jak zrobić deszyfrator morse`a (jakie instrukcje, ogólny pomysł)? Póki co zrobiłem program tłumaczący zwykły tekst na morsa ale nie wiem jak zrobić odwrotnie? Jak porównywać ciąg znaków?
Awatar użytkownika
Szemek
Użytkownik
Użytkownik
Posty: 4819
Rejestracja: 10 paź 2006, o 23:03
Płeć: Mężczyzna
Lokalizacja: Gdańsk
Podziękował: 43 razy
Pomógł: 1407 razy

[pascal] deszyfrator morsea

Post autor: Szemek »

Na pewno łatwiej jest wykonać deszyfrator, gdy poszczególne ciągi kresek i kropek są rozdzielone jakimś innym znakiem.
W innym wypadku to już ciut wyższa szkoła jazdy.
muller
Użytkownik
Użytkownik
Posty: 206
Rejestracja: 8 gru 2006, o 19:28
Płeć: Mężczyzna
Lokalizacja: Centrum
Podziękował: 85 razy
Pomógł: 6 razy

[pascal] deszyfrator morsea

Post autor: muller »

no tak zakaldam sobie ze znaki rodzielone sa * a wyrazy ** ale nie umiem tego zrobic potem zeby porownywac do kodu morsa. Probowalem cos z tablicami i nic...
Awatar użytkownika
Szemek
Użytkownik
Użytkownik
Posty: 4819
Rejestracja: 10 paź 2006, o 23:03
Płeć: Mężczyzna
Lokalizacja: Gdańsk
Podziękował: 43 razy
Pomógł: 1407 razy

[pascal] deszyfrator morsea

Post autor: Szemek »

spróbuj wykorzystać stringa
muller
Użytkownik
Użytkownik
Posty: 206
Rejestracja: 8 gru 2006, o 19:28
Płeć: Mężczyzna
Lokalizacja: Centrum
Podziękował: 85 razy
Pomógł: 6 razy

[pascal] deszyfrator morsea

Post autor: muller »

no tak potem probowalem zeby tekst był typu string znaczy sie ten ktory wprowadzam jako kod morsea ale jak pozniej oddzielnie porownywac z alfabetem to co jest pomiedzy gwiazdakami?
Awatar użytkownika
Undre
Użytkownik
Użytkownik
Posty: 1430
Rejestracja: 15 lis 2004, o 02:05
Płeć: Mężczyzna
Lokalizacja:
Podziękował: 3 razy
Pomógł: 92 razy

[pascal] deszyfrator morsea

Post autor: Undre »

Skorzystaj z tej techniki rozpoznawania poszczególnych znaków :

... _tree3.png
muller
Użytkownik
Użytkownik
Posty: 206
Rejestracja: 8 gru 2006, o 19:28
Płeć: Mężczyzna
Lokalizacja: Centrum
Podziękował: 85 razy
Pomógł: 6 razy

[pascal] deszyfrator morsea

Post autor: muller »

a jakiś opis do tej techniki bo ten rysunek mi mało mówi?:(
Awatar użytkownika
Undre
Użytkownik
Użytkownik
Posty: 1430
Rejestracja: 15 lis 2004, o 02:05
Płeć: Mężczyzna
Lokalizacja:
Podziękował: 3 razy
Pomógł: 92 razy

[pascal] deszyfrator morsea

Post autor: Undre »

Chodzi tu o pogrupowanie znaków Morse'a podług symboli występujących w sekwencji. Jeżeli np pierwszy znak zebrany z ciągu na początku czy też po separatorze to kropka, idziemy w dół po lewej gałęzi, czyli zawężamy poszukiwania do wszystkich znaków zaczynających się na kropkę. Jeżeli w drugim kroku napotykasz na separator wiesz że długość to 1 i od razu masz, że tym razem było to 'e', jeżeli napotykasz na kropkę czy kreskę idziesz dalej w dół zgodnie z tą samą zasadą.
muller
Użytkownik
Użytkownik
Posty: 206
Rejestracja: 8 gru 2006, o 19:28
Płeć: Mężczyzna
Lokalizacja: Centrum
Podziękował: 85 razy
Pomógł: 6 razy

[pascal] deszyfrator morsea

Post autor: muller »

ale nie trzeba tu z drzew korzystać?:>
to powiedzmy ze sprobuje to zrobic ale nadal nie wiem jak oddzielic te poszczegolne znaki * bo pewnie dla ciagu -----*.---- bede umial zamienic tylko -----
Awatar użytkownika
Undre
Użytkownik
Użytkownik
Posty: 1430
Rejestracja: 15 lis 2004, o 02:05
Płeć: Mężczyzna
Lokalizacja:
Podziękował: 3 razy
Pomógł: 92 razy

[pascal] deszyfrator morsea

Post autor: Undre »

Pewnie, że nie trzeba z drzew. To tylko daje dobre wizualne poczucie jaki jest "tok postępowania". Jeżeli o Morse'a chodzi, to proponowałbym zastosować pojedynczy slash (lub backslash) do oddzielania liter, a podwójny do oddzielania słów ( tak jak w TeXu wrzucasz spacje i nowe wiersze ).
muller pisze:bede umial zamienic tylko -----
Czemu ?
soku11
Użytkownik
Użytkownik
Posty: 6607
Rejestracja: 16 sty 2007, o 19:42
Płeć: Mężczyzna
Podziękował: 119 razy
Pomógł: 1823 razy

[pascal] deszyfrator morsea

Post autor: soku11 »

Ja bym sprobowal zrobic to w taki sposob:
1. Pobierasz dane wpisane z klawiatury do tablicy1.
2. Sprawdzasz poszczegolne komorki tablicy. Jesli jakis inny znaczek to wywalasz blad. Jesli . albo - to sprawdzasz dalej az do *.
3. Zczytane znaki wrzucasz do oddzielnej tablicy2. Jak napotkasz na * wlaczasz sobie funkcje, ktora bedzie sprawdzala co to za litera i ja zwracala. Zwrocone literki wrzucasz do 3 tablicy z gotowym juz napisem koncowym.
4. Jak po napotkasz kolejna gwiazdke wrzucasz do tablic spacje koncowej spacje i idziesz dalej.
5. Itd az do znaku konca tablicy wczytanej albo entera w zaleznosci od funkcji (nie wiem jak to w pascalu jest).

To tyle mi sie udalo wykombinowac 'od zaraz'. Moze ci troche pomoze w pisaniu. POZDRO
ODPOWIEDZ