Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/5: Рейтинг темы: голосов - 5, средняя оценка - 5.00
5 / 5 / 0
Регистрация: 14.02.2018
Сообщений: 60
1

Словарь переводчик (dictionary)

01.04.2018, 13:59. Просмотров 917. Ответов 4
Метки нет (Все метки)

Нужно сделать переводчик с одного языка на другой и наоборот(через Dictionary). В моем коде если уже ввести англ. слово, не будет переводить, как вариант можно добавить ещё один dictionary, но явно это не так решается. Или если ввести не одно слово, а несколько(например: привет кот, оно переводиться тоже не будет, хотя по одному слову переводит). На форме 2 radiobtn(переключатели с одного языка на другой) и 2 richBox`a. Как всё таки реализовать, что бы переводило слова в обратном порядке(не только с русс на анг, а и наоборот) и нескольких слов(привет кот -> hi cat)
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
    public partial class FormMain : Form
    {
        public FormMain()
        {
            InitializeComponent();
        }
 
        public Dictionary<string, string> dict1 = new Dictionary<string, string>();
     //   public Dictionary<string, string> dict2 = new Dictionary<string, string>();
        public string result;
       
        private void buttonTranslate_Click(object sender, EventArgs e)
        {
            dict1.Add("привет", "hi");
            dict1.Add("кот", "cat");
            dict1.Add("собака", "dog");
            dict1.Add("птица", "bird");
            dict1.Add("стол", "table");
            dict1.Add("кнопка", "button");
            dict1.Add("стоп", "stop");
 
            if (richTextBox1.Text == "")
                MessageBox.Show("Введите слово");
            else if (dict1.ContainsKey(richTextBox1.Text))
            {
                dict1.TryGetValue(richTextBox1.Text, out result);
                richTextBox2.Text = result;
            }
            else
                MessageBox.Show("Неизвестное слово");       
        }
    }
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
01.04.2018, 13:59
Ответы с готовыми решениями:

Переводчик, словарь
Нужно сделать переводчик с одного языка на другой и наоборот. На форме 2 radioButton (выбор...

private Dictionary<TabPage, Color> TabColors = new Dictionary<TabPage, Color>();
Собственно выдает ошибку &quot;TabPage&quot; - неоднозначная ссылка между &quot;MdiTabControl.TabPage&quot; и...

Курсовая - переводчик (словарь) на С++
Доброго времени суток! Меня зовут Алексей, я студент 2го курса колледжа по специальности...

Нужен словарь - переводчик
Добрый вечер. Нужна программа для перевода текстов, большей частью технической, с русского на...

4
320 / 300 / 172
Регистрация: 16.11.2010
Сообщений: 1,069
Записей в блоге: 9
01.04.2018, 19:20 2
Цитата Сообщение от Deaadfox Посмотреть сообщение
В моем коде если уже ввести англ. слово, не будет переводить, как вариант можно добавить ещё один dictionary, но явно это не так решается.
Если вводится английское слово, то вместо ContainsKey использовать ContainsValue. Но есть одно отличие между ключами и значениями: ключи уникальны, а значения - нет. То есть по значению, возможно, будет возвращаться несколько ключей

Если же значения, уникальны, то можно поменять их местами с ключами как-то так:
C#
1
var myTranslate = dict1.Select(p => new KeyValuePair(p.Value, p.Key))
0
5 / 5 / 0
Регистрация: 14.02.2018
Сообщений: 60
01.04.2018, 21:23  [ТС] 3
netBool, В richBox не выводит, и я заметил ещё одну такую штуку если дважды переводить одно и то же слово, то выдаёт ошибку, что данное значение уже было добавлиное
0
320 / 300 / 172
Регистрация: 16.11.2010
Сообщений: 1,069
Записей в блоге: 9
02.04.2018, 10:33 4
Цитата Сообщение от Deaadfox Посмотреть сообщение
я заметил ещё одну такую штуку если дважды переводить одно и то же слово, то выдаёт ошибку, что данное значение уже было добавлиное
Потому что надо словарь составлять не в buttonTranslate, а заранее
0
2450 / 1780 / 923
Регистрация: 14.08.2016
Сообщений: 6,150
03.04.2018, 01:36 5
Цитата Сообщение от Deaadfox Посмотреть сообщение
как вариант можно добавить ещё один dictionary
именно так и работают все переводчики(не люди), ибо для одного слова, как правило, несколько значений!
простой "переворот" ключей и значений, может и решит вопрос...
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
03.04.2018, 01:36

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Словарь в словаре Dictionary
Всем доброго дня! Как инициализировать словарь вида: {15:{&quot;name&quot;:&quot;a&quot;, &quot;surname&quot;:&quot;b&quot;},...

Словарь-переводчик. вывод в textBox
Вроде всё компилируется нормально, но выводить не хочет, помогите разобраться в чём ошибка, заранее...

Словарь-Переводчик. вывод в textBox
Вроде всё компилируется нормально, но выводить не хочет, помогите разобраться в чём ошибка, заранее...

Словарь-переводчик. Использование TrayIcon
Не могу запустить программу. Компилятор упирается в строку frmMain.TrayIcon1.Active := false; с...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.