[pascal] deszyfrator morsea
-
- 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
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?
- Szemek
- 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
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.
W innym wypadku to już ciut wyższa szkoła jazdy.
-
- 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
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...
-
- 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
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?
- Undre
- Użytkownik
- Posty: 1430
- Rejestracja: 15 lis 2004, o 02:05
- Płeć: Mężczyzna
- Lokalizacja: UĆ
- Podziękował: 3 razy
- Pomógł: 92 razy
[pascal] deszyfrator morsea
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ą.
-
- 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
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 -----
to powiedzmy ze sprobuje to zrobic ale nadal nie wiem jak oddzielic te poszczegolne znaki * bo pewnie dla ciagu -----*.---- bede umial zamienic tylko -----
- Undre
- Użytkownik
- Posty: 1430
- Rejestracja: 15 lis 2004, o 02:05
- Płeć: Mężczyzna
- Lokalizacja: UĆ
- Podziękował: 3 razy
- Pomógł: 92 razy
[pascal] deszyfrator morsea
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 ).
Czemu ?muller pisze:bede umial zamienic tylko -----
-
- 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
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
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