Witam potrzebuje pomocy. Chcialbym napisac program w javie do kodowania i dekodowania alfabetu morsa. Pierwsza czesc juz udalo mi sie wykonac czyli zamiana z normalnego alfabetu na morsa a z druga mam problem nie ma pomyslu jak to zrobic moze ktos ma jakis pomysl byl bym wdzieczny
A z czym masz konkretnie problem ?
Jeśli zakodowałeś coś w alfabecie Morse'a to może pomiędzy kodami liter umieść znak, który jest spoza alfabetu: np: | Teraz będzie Ci łatwiej rozpoznawać czemu odpowiada dany ciąg znaków.
Może jakaś struktura drzewiasta?
Moj program wyglada tak:
import java.io.*;
class cnoverter
{
public static void main(String args[]) throws IOException
{
char tab1 []={'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z','1','2','3','4','5','6','7','8','9','0','.',',','?','+','-','=',';',':',' '};
String tab2[]={".-","-...","-.-.","-..",".","..-.","--.","....","..",".---","-.-",".-..","--","-.","---",".--.","--.-",".-.","...","-","..-","...-",".--","-..-","-.--","--..",".----","..---",".--","....-",".....","-....","--...","---..","----.","-----",".-.-.-","--..--","..--..",".-.-.","-....-","-...-","-.-.-.","---..."," "};
System.out.println("Witaj w konwerterze alfabetu morsea");
System.out.println();
System.out.println("Podaj tekst ktory chcesz przekonwertowac");
System.out.println();
System.out.print("Podany tekst to: ");
BufferedReader we=new BufferedReader(new InputStreamReader(System.in));
String x=we.readLine();
if(x.charAt(0)!='.' && x.charAt(0)!='-')
{
System.out.println();
for(int i=0;i<x.length();i++)
{
for(int j=0;j<tab1.length;j++)
{
if(x.charAt(i)==tab1[j])
{
System.out.print(tab2[j]+" ");
}
}
}
System.out.println();
System.out.println();
}
else
{
for(int t=0;t<x.length();t++)
{
for(int d=0;d<tab2.length;d++)
{
if(x.equals(tab2[d]))
System.out.println(tab1[d]);
}
}
}
}
}
i teraz mam problem zeby odkodowaz wyraz bo jeden znak wmiare odkodowywuje ale wyraz to juz mam drobny problem
Sorka troche mi sie linijka z 2 tablica rozjechala tam jest tablica stringow
Jeżeli dobrze policzyłem, to "oo" => "------" oraz "mmm" => "------".
Zatem po odczytaniu wyrazu "------" nie można go odkodować. Jeśli odkodowujesz tylko ciągi, które sam zakodowałeś, to rozwiązaniem jest
dodawanie separatora (np. "|") po każdym znaku w alfabecie Morsa "oo" => "---|---|", "mmm" => "--|--|--|".
pozdrawiam