Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.66/41: Рейтинг темы: голосов - 41, средняя оценка - 4.66
19 / 19 / 4
Регистрация: 18.02.2011
Сообщений: 292

Английский символ в русский

26.01.2013, 22:40. Показов 7821. Ответов 30
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте. Передо мной стоит задача, как можно английский символ перевести в русский. Например: буква "Q", на русс. клавиатуре будет "Й". Задача вроде легкая, буду очень рад если поможете.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
26.01.2013, 22:40
Ответы с готовыми решениями:

Создать примитивный англо-русский и русско-английский словарь
Помогите создать примитивный англо-русский и русско-английский словарь. Основа - Hashtable

Перевод текста (Английский - Русский)
Подскажите, если кто сталкивался: 1) как возможно осуществить программный перевод английского текста на русский язык. 2) как...

Microsoft Speech Recognition Platform - как одновременно распознавать и русский, и английский
Добрый день. Использую Microsoft Speech Recognition Platform для распознавания голосового ввода. System.Globalization.CultureInfo ci; ...

30
 Аватар для Resst
34 / 27 / 6
Регистрация: 31.03.2012
Сообщений: 115
29.01.2013, 15:18
Студворк — интернет-сервис помощи студентам
turbanoff, не эффективнее.
Словари работают быстрее.
http://apophis.ch/en/content/i... elegates-c
0
Эксперт Java
 Аватар для turbanoff
4094 / 3828 / 745
Регистрация: 18.05.2010
Сообщений: 9,331
Записей в блоге: 12
29.01.2013, 16:51
Цитата Сообщение от Resst Посмотреть сообщение
turbanoff, не эффективнее.
Словари работают быстрее.
http://apophis.ch/en/content/i... elegates-c
К сожалению, в том посте ссылка на исходники битая. Пришлось писать свой
Кликните здесь для просмотра всего текста
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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
using System.Text;
 
namespace dictionary_vs_switch
{
    class Program
    {
        static void Main()
        {
            char[] fromArr = Enumerable.Range('a', 'z' - 'a' + 1).Select(i => (char)i).ToArray();
            char[] iterArr = new char[10000];
            Random r = new Random();
            for (int i = 0; i < iterArr.Length; i++)
            {
                iterArr[i] = fromArr[r.Next(fromArr.Length)];
            }
            var result1 = new StringBuilder(iterArr.Length);
            var result2 = new StringBuilder(iterArr.Length);
            Stopwatch s1 = new Stopwatch();
            Stopwatch s2 = new Stopwatch();
 
            s1.Start();
 
            Dictionary<char, char> d = new Dictionary<char, char>
                {
                    {'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', 'з'}
                };
            foreach (char c in iterArr)
            {
                result1.Append(d[c]);
            }
            s1.Stop();
            s2.Start();
            foreach (char c in iterArr)
            {
                result2.Append(getChar(c));
            }
            s2.Stop();
            Console.WriteLine("dictionary: " + s1.ElapsedTicks);
            Console.WriteLine("switch:     " + s2.ElapsedTicks);
            Console.ReadKey();
 
        }
 
        private static char getChar(char c)
        {
            switch (c)
            {
                case 'a': return 'а';
                case 'b': return 'б';
                case 'c': return 'ц';
                case 'd': return 'д';
                case 'e': return 'е';
                case 'f': return 'ф';
                case 'g': return 'г';
                case 'h': return 'ш';
                case 'i': return 'и';
                case 'j': return 'й';
                case 'k': return 'к';
                case 'l': return 'л';
                case 'm': return 'м';
                case 'n': return 'н';
                case 'o': return 'о';
                case 'p': return 'п';
                case 'q': return 'ы';
                case 'r': return 'р';
                case 's': return 'с';
                case 't': return 'т';
                case 'u': return 'у';
                case 'v': return 'в';
                case 'w': return 'ю';
                case 'x': return 'ч';
                case 'y': return 'я';
                case 'z': return 'з';
                default: return ' ';
            }
            
        }
    }
}

результаты на моем компьютере и ideone, противоречат вашему утверждению
dictionary: 26426
switch: 1638
0
Master of Orion
Эксперт .NET
 Аватар для Psilon
6102 / 4958 / 905
Регистрация: 10.07.2011
Сообщений: 14,522
Записей в блоге: 5
29.01.2013, 19:55
Ага, свитч генерируется на этапе компиляции, а генерацию словаря вы добавили в stopwatch. Гениально. Хотя свитч все равно быстрее. Но приучать к использованию свитча в ооп - это преступление имхо.
0
Эксперт Java
 Аватар для turbanoff
4094 / 3828 / 745
Регистрация: 18.05.2010
Сообщений: 9,331
Записей в блоге: 12
29.01.2013, 20:02
Цитата Сообщение от Psilon Посмотреть сообщение
Ага, свитч генерируется на этапе компиляции, а генерацию словаря вы добавили в stopwatch. Гениально
Потому-что по другому, было бы нечестно - не учитывались бы издержки на создание словаря, которых в случае switch нет.
Даже если вынести создание словаря из замерямого кода, вариант со switch все равно выигрывает - http://ideone.com/lV1rH5

Добавлено через 4 минуты
Цитата Сообщение от Psilon Посмотреть сообщение
Но приучать к использованию свитча в ооп - это преступление имхо.
Я вас, как раз на обратную мысль хотел невести - нет смысла применять словарь/ооп/overengeenering там где он не нужен, и можно запросто обойтись switch-ом.
switch замечательный оператор, не понимаю почему вам он так не нравится.
0
Master of Orion
Эксперт .NET
 Аватар для Psilon
6102 / 4958 / 905
Регистрация: 10.07.2011
Сообщений: 14,522
Записей в блоге: 5
29.01.2013, 20:05
turbanoff, конкретно в данном случае свитч получше. Но это же учебная задача. А в реальной гораздо лучше подойдет "замена условного оператора полиморфизмом", просто создавать класс для каждой буквы идиотизм. Но в идеале так и надо было бы сделать. В реальной задаче, если бы это была не буква с одним полем char и одним методом getTranslation, а какой-нибудь employee, гораздо логичнее было бы вынести логику именно в него. Учебная задача должна либо учить мыслить категориями, либо забивать в пальцы то, что пригодится в большинстве случаем, а не в данном конкретном, если первый путь человек осилить не в силах.
1
21 / 21 / 6
Регистрация: 07.01.2010
Сообщений: 376
29.01.2013, 20:06
Цитата Сообщение от Psilon Посмотреть сообщение
zeone, разница в производительности, тем более, что словарь можно создать на этапе компиляции используя инициализатор коллекции. Меньше строк не значит лучше
Цитата Сообщение от Psilon Посмотреть сообщение
Хотя свитч все равно быстрее
Ну ну.
0
Master of Orion
Эксперт .NET
 Аватар для Psilon
6102 / 4958 / 905
Регистрация: 10.07.2011
Сообщений: 14,522
Записей в блоге: 5
29.01.2013, 20:15
Serg046, я согласен, что свитч тут будет лучше. Я уверен, что свитч - всемирное зло, немногим лучше goto. Может и его разрешим? Выход из цикла тройной вложенности с goto гораздо проще чем с брейками!
0
21 / 21 / 6
Регистрация: 07.01.2010
Сообщений: 376
29.01.2013, 20:26
Psilon, есть ситуации где и без goto не обойтись. Сталкивался.
Тут дело каждого что использовать, главное голову не засоренную оставлять.

Добавлено через 4 минуты
Цитата Сообщение от Psilon Посмотреть сообщение
Я уверен, что свитч - всемирное зло
switch - это по сути та же if-конструкция. Она тоже зло?

Добавлено через 2 минуты
Частенько мыслят как Вы люди, которые начинали с с#. А вот это уже и правда редко когда к хорошему приводит, а может и не приводит.
0
Эксперт Java
 Аватар для turbanoff
4094 / 3828 / 745
Регистрация: 18.05.2010
Сообщений: 9,331
Записей в блоге: 12
29.01.2013, 20:50
Цитата Сообщение от Psilon Посмотреть сообщение
Я уверен, что свитч - всемирное зло, немногим лучше goto. Может и его разрешим? Выход из цикла тройной вложенности с goto гораздо проще чем с брейками!
Очень странно такое слышать от вас, чем вам switch не угодил?
И указанное вами применение goto - самое, что ни на есть подходящее для этого оператора.
0
Master of Orion
Эксперт .NET
 Аватар для Psilon
6102 / 4958 / 905
Регистрация: 10.07.2011
Сообщений: 14,522
Записей в блоге: 5
29.01.2013, 20:55
Serg046, я начинал с паскаля/дельфи, и к тем временам возвращаться не хочу

turbanoff, да я знаю, что в таких случаях он как-раз таки выручает. Но лучше сначала запретить им пользоваться, а потом разрешить в некоторых случаях, чем сказать "использовать аккуратно" а потом иметь головную боль, потому что "аккуратно" у начинающего программиста - это ужас
0
30.01.2013, 13:34
 Комментарий модератора 
Прекращаем оффтоп
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
30.01.2013, 13:34
Помогаю со студенческими работами здесь

Создать проект "Русско-английский и англо-русский словарь"
Создать проект &quot;Русско-английский и англо-русский словарь&quot;, который обеспечивает перевод слов, хранящихся в файле данных.

Русский vs Английский
date=QDate::currentDate(); time=QTime::currentTime(); qDebug()&lt;&lt;date.toString(&quot;ddd:MM:yyyy&quot;)&lt;&lt;time.toString(); Выводит...

Русский и английский Excel
Здравствуйте, Сегодня столкнулся с проблемой языков. Русский и английский знаю хорошо и думал что смогу разобраться с обучением Excel на...

Русский - английский сайт.
Господа, есть такой вопрос. Перевел сайт на русский. Залил на хостинг. Проблема вот в чем: Если просто в браузере набирать имя...

установить на русский офис английский интерфейс
добрый день я хотел бы узнать как можно установить на русский офис английский интерфейс. при этом не потерять оригинал. я слычал что...


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

Или воспользуйтесь поиском по форуму:
31
Ответ Создать тему
Новые блоги и статьи
[golang] Breadth-First Search
alhaos 19.05.2026
BFS (Breadth-First Search) — это базовый алгоритм обхода графа в ширину, который поуровнево исследует все связанные вершины. Он начинает с выбранной точки и проверяет всех соседей, прежде чем. . .
[golang] Алгоритм «Хак Госпера»
alhaos 17.05.2026
Алгоритм «Хак Госпера» Хак Госпера (Gosper's Hack) — алгоритм нахождения следующего по величине числа с тем же количеством установленных бит. Придуман Биллом Госпером в 1970-х, опубликован в. . .
Рисование бинарного древа до 6-го колена на js, svg.
russiannick 17.05.2026
<svg width="335" height="240" viewBox="0 0 335 240" fill="#e5e1bb"> <style> <!]> </ style> <g id="bush"> </ g> </ svg> function fn(){ let rost;/ / высота древа let xx=165,yy=210,w=256;
FSharp: interface of module
DevAlt 16.05.2026
Интерфейс модуля F# позволяет управлять доступностью членов, содержащихся в реализации модуля. По-умолчанию все члены модуля доступны: module Foo let x = 10 let boo () = printfn "boo" . . .
Хитросплетение родственных связей пантеона греческих богов.
russiannick 14.05.2026
Однооконник, позволяющий узреть и изучить отдельных героев древней Греции. <!DOCTYPE html> <html lang="ru"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible". . .
[golang] Угол между стрелками часов
alhaos 12.05.2026
По заданным значениям часа и минуты необходимо определить значение меньшего угла между стрелками аналогового циферблата часов. import "math" func angleClock(hour int, minutes int) float64 { . . .
Debian 13: Установка Lazarus QT5
ВитГо 09.05.2026
Эта инструкция моя компиляция инструкций volvo https:/ / www. cyberforum. ru/ blogs/ 203668/ 10753. html и его же старой инструкции по установке Lazarus с gtk2. . .
Нейросеть на алгоритме "эстафета хвоста" как перспектива.
Hrethgir 06.05.2026
На десерт, когда запущу сервер. Статья тут https:/ / habr. com/ ru/ articles/ 1030914/ . Автор я сам, нейросеть только помогает в вопросах которые мне не известны - не знаю людей которые знали-бы. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru