Роман Домнин

Роман Домнин 

Дилетант широкого профиля

20subscribers

89posts

goals1
1 of 100 paid subscribers
Количество тех, кто имеет возможность поддержать канал.

Не та раскладка, Артур

Ну, и так как я изучаю C# в данный момент, забавные задачки и решение я буду выкладывать здесь. В комментариях при желании можете делиться решением этих задачек на 1С.
Артур с энтузиазмом писал код для нового приложения — вдохновение накрыло его аж на три часа!
Но когда он решил запустить программу… всё сломалось. 🧨 Оказалось, всё это время он печатал в русской раскладке!
Переписывать вручную — долго и мучительно.
Напиши программу, которая автоматически заменит символы, набранные в русской раскладке, на соответствующие английские, по расположению клавиш.
Артур даже приложил схему клавиатуры, надеясь, что ты разрулишь ситуацию
Формат входных данных:
Первая строка — натуральное число N — количество строк кода (1 ≤ N ≤ 1000).
Далее идут N строк — строки кода, набранные в русской раскладке вместо английской.
Формат выходных данных:
N строк, в которых русские буквы заменены на соответствующие английские, остальные символы (пробелы, цифры, знаки препинания и т.д.) остаются без изменений.
Рассмотрим первый тест:
На вход получаем  строки:
1
ште т=сщтмукеюещште32(сщтыщдуюкуфвдшту())ж

Заменим все символы в строке кода в русской раскладке на соответствующие символы в английской раскладке клавиатуры.
Выведем результат в консоль:
int n=convert.toint32(console.readline());


Примечания:
  1. В коде могут присутствовать символы, которые не требуют замены: цифры, скобки, арифметические операторы, пробелы, . и т.п.
  2. Все буквы в коде — строчные.
  3. Гарантируется, что изначально в коде не должно было быть русских букв.
РЕШЕНИЕ
Итак, что я тут делаю? Первым делом я создаю две переменные, в которые помещаю строки с раскладками клавиатуры. Для чего это нужно? Вспоминаем, что такое строка в C#. Это набор символов, к каждому из которых мы можем обратиться по индексу в строке.
Здесь у нас вложенные циклы. Цикл первого уровня выводит на экран сообщения из переменной message, мы сообщения складываем посимвольно во вложенных циклах.
Перед тем, как поместить символ в переменную мы определяем является ли этот символ буквой, если не является, мы просто этот символ складываем в переменную message, если же является, то мы берем этот символ из строки и сравниваем его с каждым символом из переменной с русскими символами. Тем самым мы определяем индекс, по которому мы можем обратиться к этому символу. Логично, что по тому же самому индексу мы можем обратиться к переменной, которая содержит строку с символами на латинице. Мы берем этот самый "латинский" символ и складываем его в переменную message.
Как только мы показали сообщение на экран, переменную message нам нужно очистить, то есть заменить значение на пустую строку. Это необходимо, если строк у нас больше одной и в эту переменную нужно помещать новые символы.
Subscription levels5

Чисто символически

$0.63 per month
Для тех, кто не имеет большой суммы, но хочет поддержать канал автора, так как считает его полезным и познавательным.
Также будет доступен ранний доступ к видеороликам.

Фанат канала

$2.5 per month
Мнение подписчиков данного уровня будет "услышано" вне очереди. Ближайший видеоролик выйдет по интересующей их теме. Также подписчикам данного или более высокого уровней будут доступны авторские обработки и листинги кода, демонстрируемые в видеороликах.

Практика

$6.3 per month

Спонсор канала

$12.5 per month
Зритель, у которого денег куры не клюют.
Неужели кто-то осмелится подписаться? :)

Богач!!!

$125 per month
Соришь деньгами налево и направо? Ты сделал правильный выбор, отдав их мне. Я найду им более достойное применение. :)
Go up