Macr0

Пользователь

Регистрация: 21.03.2019

Сообщения: 234

Рейтинг: 107

Macr0

Регистрация: 21.03.2019

Сообщения: 234

Рейтинг: 107

Задача:

Сделать (де-)шифратор Морзе C# Windows Forms

Проблема:

Не знаю как написать метод для дешифровки с Морзе в украинский язык.

Идея: 

1. Вводим в TextBox слово написанное на шифре морзе, после каждого символа(буквы) ставится "/" или пробел " " чтобы можно было корректно считывать текст.

Выглядит это так:

Вводим в  TextBox1 "__/___/._./__../ ./" на выходите мы должны получить в TextBox2 "морзе". Как это реализовать на языке программирования я в душе не ..... 

 

 

Шифровку с укр. яз.  в Морзе получилось сделать, а вот с Морзе в укр. никак. Почитав форумы понял что лучше всего использовать словарь, но в самих словарях я ничего не понимаю.

Как я реализовал шифровку в Морзе с укр.яз.

 

public void Button1_Click(object sender, EventArgs e) //кнопка при нажатии которой выполняется шифровка

        {

            Dictionary morse = new Dictionary(); //мой словарь с буквами и символами

            {

                morse.Add("а", "._") ...morse.Add("я", "._._");

            }

            string text = TextBox1.Text; // переменная для текста который мы ввели  

            string translate = String.Empty; //  переменная для дальнейшего вывода текста

            foreach (char c in text)

            {

                translate += morse[c.ToString().ToLower()] + " "; // 

            }

            TextBox2.Text = translate; //вывод текста в TextBox2

        }

 

 

saw_tooth

Пользователь

Регистрация: 20.08.2013

Сообщения: 5550

Рейтинг: 3286

saw_tooth

Регистрация: 20.08.2013

Сообщения: 5550

Рейтинг: 3286

split по пробелу - получишь массив букв на морзянке,

прогоняешь через дешифратор - получаешь массив букв

соединяешь - получаешь слово

в чем проблема собственно?

Macr0 сказал(а):

Почитав форумы понял что лучше всего использовать словарь, но в самих словарях я ничего не понимаю

Нажмите, чтобы раскрыть...

Лушче использовать шаблон-файл... завтра понадобится другого шифра перевести, опять будешь всё в код забивать?

но ладно

Есть у нас словарь, ключи - наши буквы, значения - морзянка

dict = Dictionary()

//заполнили его

 

uk_char = dict.FirstOrDefault(x => x.Value == "..-").Key - поиск по морзе-знаку

morse_char = dict['Б'] - поиск по UA

Macr0

Пользователь

Регистрация: 21.03.2019

Сообщения: 234

Рейтинг: 107

Macr0

Регистрация: 21.03.2019

Сообщения: 234

Рейтинг: 107

saw_tooth сказал(а):

split по пробелу - получишь массив букв на морзянке,

прогоняешь через дешифратор - получаешь массив букв

соединяешь - получаешь слово

в чем проблема собственно?

Лушче использовать шаблон-файл... завтра понадобится другого шифра перевести, опять будешь всё в код забивать?

но ладно

Есть у нас словарь, ключи - наши буквы, значения - морзянка

dict = Dictionary()

//заполнили его

 

uk_char = dict.FirstOrDefault(x => x.Value == "..-").Key - поиск по морзе-знаку

morse_char = dict['Б'] - поиск по UA

Нажмите, чтобы раскрыть...

Можешь пожалуйста подробнее описать это:

uk_char = dict.FirstOrDefault....   это я для каждой буквы должен написать такое?

morse_char = dict['Б'] - поиск по UA //вообще не понял как это использовать 

ну,а так хоть какой-то прогресс уже есть, спасибо

 

 

saw_tooth

Пользователь

Регистрация: 20.08.2013

Сообщения: 5550

Рейтинг: 3286

saw_tooth

Регистрация: 20.08.2013

Сообщения: 5550

Рейтинг: 3286

Macr0 сказал(а):

Можешь пожалуйста подробнее описать это:

uk_char = dict.FirstOrDefault....   это я для каждой буквы должен написать такое?

morse_char = dict['Б'] - поиск по UA //вообще не понял как это использовать 

ну,а так хоть какой-то прогресс уже есть, спасибо

Нажмите, чтобы раскрыть...

Чувак открой ЛЮБУЮ статью в интернете по запросу гугла 

dictionary c# get key by value