Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.90/21: Рейтинг темы: голосов - 21, средняя оценка - 4.90
0 / 0 / 0
Регистрация: 16.11.2016
Сообщений: 86

Заполнение массива буквами

13.11.2017, 22:36. Показов 4199. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Есть у нас такие условия:
Первым этапом шифрования является запись ключевого слова в таблицу подстановок, начиная с буквы исходного алфавита с номером k. Если ключевое слово имеет повторяющиеся буквы, в таблицу подстановок повторно они не записываются (табл. 2.4).

Оставшиеся буквы алфавита подстановки записываются после ключевого слова в алфавитном порядке (табл. 2.5).
Таблицы вот ,. И вот вроде все saer(gut)бись, но я не понимаю следующего:
Типо вот у нас есть первый массив с алфавитом. Есть второй с внесенным по индексу ключевым словом. А как заполнить второй массив так чтобы мы внесли сперва слово, а потом его забили буквами алфавита по порядку? Как в примере на таблице.
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
13.11.2017, 22:36
Ответы с готовыми решениями:

Заполнение массива словами/буквами
Помогите пожалуйста сделать следующие задания. 1)Создать консольное приложение с возможностью ввода массива с помощью оператора цикла do...

Заполнение двумерного массива буквами
Тип данных: массив строк (пользователем задается количество строк и максимальное количество символов в строке). Критерий сортировки: в...

Заполнение строкового массива случайными буквами
Всем доброго здоровичка!!! Помогите пожалуйста с задачкой: VB2008 Есть текстовый массив. Его размер указывается через рэндом от 4 до 7....

10
 Аватар для Gamabunta
35 / 35 / 16
Регистрация: 23.08.2016
Сообщений: 118
13.11.2017, 23:00
Одиночная перестановка по ключу
0
0 / 0 / 0
Регистрация: 16.11.2016
Сообщений: 86
14.11.2017, 16:47  [ТС]
как сделать перестановку я знаю. Я не понимаю как после того как я занес слово заполнить алфавитом по порядку так чтобы если первая буква внесенного слова например будет на 6 позиции то до него 5 последних букв, это последние и не повторяющиеся буквы алфавита занести.
0
 Аватар для Gamabunta
35 / 35 / 16
Регистрация: 23.08.2016
Сообщений: 118
14.11.2017, 17:45
WhiteChemist, переформулируйте вопрос
0
0 / 0 / 0
Регистрация: 16.11.2016
Сообщений: 86
14.11.2017, 18:04  [ТС]
ну вот посмотри на таблицу 2.4. Видиш 1 столбик это идет алфавит а 2 это алфавит с занесенным словом по 5 ключу.Теперь посмотри на таблицу 2.5. Там 2 столбик заполнили алфавитом. Тоесть те слова которые есть в слове не писали а заполнили по порядку остальными.Вот вопрос как заполнить так столбик?
0
 Аватар для Gamabunta
35 / 35 / 16
Регистрация: 23.08.2016
Сообщений: 118
14.11.2017, 20:45
WhiteChemist, чтобы получить результат как в таблице 2.5 - надо ввести "работ" и 5
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
string alphabet = "абвгдеёжзийклмнопрстуфхцчшщъыьэюя";
Console.WriteLine("Введите слово:");
var word = Console.ReadLine().ToLower();
Console.WriteLine("Введите число:");
if (!int.TryParse(Console.ReadLine(), out int keyIndex) || keyIndex < 0 || keyIndex >= alphabet.Length || !alphabet.Except(word).Any() || alphabet.Except(word).Count() == alphabet.Length)
    Console.WriteLine("Неверное число или слово");
else
{
    alphabet = new string(alphabet.Except(word).ToArray());
    keyIndex = alphabet.Length - keyIndex;
    var beforeWord = alphabet.Substring(keyIndex);
    var afterWord = alphabet.Substring(0, keyIndex);
    var resultWord = beforeWord + word + afterWord;
    Console.WriteLine($"Результат:\r\n{resultWord}");
}
Console.ReadKey();
1
1195 / 588 / 88
Регистрация: 20.09.2012
Сообщений: 1,881
14.11.2017, 22:38
Gamabunta,
Цитата Сообщение от WhiteChemist Посмотреть сообщение
Если ключевое слово имеет повторяющиеся буквы, в таблицу подстановок повторно они не записываются
1
 Аватар для Gamabunta
35 / 35 / 16
Регистрация: 23.08.2016
Сообщений: 118
14.11.2017, 22:54
pycture, требует уточнения, должно ли меняться введнное слово. Тоесть "арарат" превратится в "арт", тс? Если да - тогда замените 13ю строчку на эту:
C#
1
var resultWord = beforeWord + new string(word.Distinct().ToArray())+ afterWord;
1
0 / 0 / 0
Регистрация: 16.11.2016
Сообщений: 86
15.11.2017, 15:27  [ТС]
мы же должны ввести ключевое слово и текст который надо шифрануть
0
964 / 485 / 241
Регистрация: 02.06.2016
Сообщений: 760
15.11.2017, 16:57
WhiteChemist,
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
static class Program
{
    static string GetTable(string k, int s, string a)
        => string.Concat(a.OrderBy(k.IndexOf).OrderBy(c => (s++ + k.Length - 1) % a.Length));
 
    static string Encode(string text, string a, string p)
        => string.Concat(text.Select(c => p[a.IndexOf(c)]));
 
    static void Main()
    {
        var s = 5;
        var k = "работа";
        var a = "абвгдеёжзийклмнопрстуфхцчшщъыьэюя ";
        var b = GetTable(k, s, a);
        var text = "мама мыла раму";
 
        Console.WriteLine($"alph: <{a}>");
        Console.WriteLine($"tabl: <{b}>");
        Console.WriteLine(text = Encode(text, a, b));
        Console.WriteLine(text = Encode(text, b, a));
        Console.ReadLine();
    }
}
1
 Аватар для Gamabunta
35 / 35 / 16
Регистрация: 23.08.2016
Сообщений: 118
15.11.2017, 17:56
Лучший ответ Сообщение было отмечено WhiteChemist как решение

Решение

WhiteChemist,
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
class Program
{
    static void Main(string[] args)
    {
        Console.WriteLine("Введите ключ-слово:");
        var word = Console.ReadLine().ToLower();
        Console.WriteLine("Введите число:");
        if (!int.TryParse(Console.ReadLine(), out int keyIndex) || keyIndex < 0 || keyIndex >= Crypter.alphabet.Length || !Crypter.alphabet.Except(word).Any() || Crypter.alphabet.Except(word).Count() == Crypter.alphabet.Length)
            Console.WriteLine("Неверное число или слово");
        else
        {
            var crypter = new Crypter(keyIndex, word);
            Console.WriteLine("Введите текст для шифровки:");
            var crypted = crypter.Decode(Console.ReadLine());
            Console.WriteLine($"Зашифрованный текст: {crypted}");
            var encrypted = crypter.Encode(crypted);
            Console.WriteLine($"Расшифрованный текс: {encrypted}");
        }
        Console.ReadKey();
    }
}
 
class Crypter
{
    public static string alphabet = "абвгдеёжзийклмнопрстуфхцчшщъыьэюя";
    string cryptedAlphabet;
 
    public Crypter(int keyIndex, string keyword)
    {
        var tmpAlphabet = new string(alphabet.Except(keyword).ToArray());
        keyIndex = tmpAlphabet.Length - keyIndex;
        var beforeWord = tmpAlphabet.Substring(keyIndex);
        var afterWord = tmpAlphabet.Substring(0, keyIndex);
        cryptedAlphabet = beforeWord + new string(keyword.Distinct().ToArray()) + afterWord;
    }
 
    public string Encode(string src)
    {
        return new string(src.Select(v => cryptedAlphabet.IndexOf(v) > -1 ? alphabet[cryptedAlphabet.IndexOf(v)] : v).ToArray());
    }
 
    public string Decode(string src)
    {
        return new string(src.Select(v => alphabet.IndexOf(v) > -1 ? cryptedAlphabet[alphabet.IndexOf(v)] : v).ToArray());
    }
}
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
15.11.2017, 17:56
Помогаю со студенческими работами здесь

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

Заполнение массива строчными буквами английского алфавита в случайном порядке
Напишите программу, в которой массив заполняется строчными буквами английского алфавита в случайном порядке; значения символов и их коды...

Заполнение матрицы случайными буквами
Добрый день.Скажите ,пожалуйста, как заполнить 2у мерный массив (матрица 4х4) рандомно буквами A,B,C,D?Спасибо.

Заполнение строк структуры помеченные буквами A, B, C и D
Здравствуйте!!! Нужно заполнять строки помеченные буквами A, B, C и D. вот пример для заполнения: struct t_info { float price; int...

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


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
Уведомление о неверно выбранном значении справочника
Maks 06.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "НарядПутевка", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если в документе выбран неверный склад. . .
Установка Qt Creator для C и C++: ставим среду, CMake и MinGW без фреймворка Qt
8Observer8 05.04.2026
Среду разработки Qt Creator можно установить без фреймворка Qt. Есть отдельный репозиторий для этой среды: https:/ / github. com/ qt-creator/ qt-creator, где можно скачать установщик, на вкладке Releases:. . .
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
Отображение реквизитов в документе по условию и контроль их заполнения
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеСпецтехники", разработанного в конфигурации КА2. Данный документ берёт данные из другого нетипового документа. . .
Фото всей Земли с борта корабля Orion миссии Artemis II
kumehtar 04.04.2026
Это первое подобное фото сделанное человеком за 50 лет. Снимок называют новым вариантом легендарной фотографии «The Blue Marble» 1972 года, сделанной с борта корабля «Аполлон-17». Новое фото. . .
Вывод диалогового окна перед закрытием, если документ не проведён
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать программный контроль на предмет проведения документа. . .
Программный контроль заполнения реквизитов табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: 1. Реализовать контроль заполнения реквизита. . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru