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

Сортировка букв в текстовом массиве

04.04.2016, 10:56. Показов 6511. Ответов 11
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день. Начал изучать c#, и попалась задача с массивами. Вобщем, есть слово, нужно вывести сначала его буквы по их нумерации в алфавите, затем отсортировать их, выводя вместо номеров в алфавите номера по возрастанию (например, слово "сталь"- по нумерации "192011330", отсортированные- "34125"), а затем вывести слово с буквами, отсортированное по возрастанию в алфавите(например, слово "сталь"- отсортированное будет "алсть"). Помогите, пожалуйста, сделать сортировки, они вообще никак не идут.
Вот кусочек кода
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
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
 
namespace _2
{
    class Program
    {
        static void Main(string[] args)
        {
            //Считываем ключ
            Console.Write("Введите ключ: ");
            string inputKey = Console.ReadLine();
 
            //Получаем зашшифрованый ключ
            string key = CodeKey(inputKey);
 
            //Выводим зашифрованный ключ
            Console.WriteLine("Зашифрованый ключ: " + key);
            Console.ReadKey();
        }
 
        static public string CodeKey(string inputKey) //Метод шифрования
        {
            string temp = inputKey;
            string key = string.Empty;
 
            char[] russian = "абвгдеёжзийклмнопрстуфхцчшщъыьэюя".ToCharArray();
 
            for (int i = 0; i < temp.Length; i++)
                key += (Array.IndexOf(russian, temp[i]) + 1).ToString();
 
            return key;
        }
    }
}
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
04.04.2016, 10:56
Ответы с готовыми решениями:

Замена в текстовом файле строчных букв прописными, а прописных строчными
Требование к программе: 1.Текст программы представлен в электронном виде и должен включать постановку задачи. 2.Название переменных и...

Сортировка строк в текстовом файле
Здравствуйте, необходимо решить следующую задачу: Есть текстовый файл в котором данные хранятся в следующем виде -50.00 -50.00 ...

Элементы, которые присутствуют в массиве А, но отсутствуют в массиве В (сортировка - выбором, поиск - двоичный)
элементы, которые присутствуют в массиве А, но отсутствуют в массиве В алгоритм сортировки:Выбором Алгоритм поиска: двоичный Сделать...

11
911 / 796 / 329
Регистрация: 08.02.2014
Сообщений: 2,391
04.04.2016, 11:27
по поводу сортировки строки:
C#
1
2
3
string str = "сталь";
var strTemp = str.ToCharArray();
Array.Sort(strTemp);
по поводу нумерации в алфавите:
C#
1
2
3
4
5
6
string russian = "абвгдеёжзийклмнопрстуфхцчшщъыьэюя";
            string str = "сталь";
            foreach (var ch in str)
            {
                int index = russian.IndexOf(ch) + 1;
            }
1
0 / 0 / 1
Регистрация: 20.05.2015
Сообщений: 15
05.04.2016, 10:25  [ТС]
спасибо большое

Добавлено через 22 часа 46 минут
Такой вопрос возник, а почему при нумерации в алфавите программа выводит каждую букву как отдельную? Нельзя никак сделать их в одну строку?
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
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
 
namespace _2
{
    class Program
    {
        static void Main(string[] args)
        {
            //Считываем ключ
            Console.Write("Введите ключ: ");
            string inputKey = Console.ReadLine();
 
            //Получаем зашшифрованый ключ
            string key = CodeKey(inputKey);
 
            //Выводим зашифрованный ключ
            Console.WriteLine("Зашифрованый ключ: " + key);
            Console.ReadKey();
        }
 
        static public string CodeKey(string inputKey) //Метод шифрования
        {
            string temp = inputKey;
            string key = string.Empty;
 
            char[] russian = "абвгдеёжзийклмнопрстуфхцчшщъыьэюя".ToCharArray();
 
            for (int i = 0; i < temp.Length; i++)
                key += (Array.IndexOf(russian, temp[i]) + 1).ToString();
            //сортировка
            string str = inputKey;
            var strTemp = str.ToCharArray();
            Array.Sort(strTemp);
            Console.WriteLine(strTemp);
            //нумерация в алфавите
            string rus = "абвгдеёжзийклмнопрстуфхцчшщъыьэюя";
           
            foreach (var ch in str)
            {
                int index = rus.IndexOf(ch) + 1;
                
                Console.WriteLine("Otsortirovan po vozrastaniju");
                Console.WriteLine(index);
            }
 
            return key;
        }
    }
}
0
911 / 796 / 329
Регистрация: 08.02.2014
Сообщений: 2,391
05.04.2016, 10:46
у тебя:
C#
1
2
for (int i = 0; i < temp.Length; i++)
                key += (Array.IndexOf(russian, temp[i]) + 1).ToString();
и
C#
1
2
3
4
5
6
7
foreach (var ch in str)
            {
                int index = rus.IndexOf(ch) + 1;
                
                Console.WriteLine("Otsortirovan po vozrastaniju");
                Console.WriteLine(index);
            }
выводят одно и тоже только 1 вариант выводит всё в 1 строку, 2 каждое значение в отдельную строку
0
0 / 0 / 1
Регистрация: 20.05.2015
Сообщений: 15
05.04.2016, 10:49  [ТС]
Да, спасибо, тут моя ошибка, проглядел. Операция Array.Sort в данной ситуации не подойдёт, чтобы отсортировать 1 вывод по возрастанию?
0
911 / 796 / 329
Регистрация: 08.02.2014
Сообщений: 2,391
05.04.2016, 12:06
Omino, она отсортирует буквы в слове во возрастанию, чтобы сортировать числа они точно не должны быть единой строкой, а коллекцией, и тогда коллекцию можно сортировать
0
0 / 0 / 1
Регистрация: 20.05.2015
Сообщений: 15
05.04.2016, 13:05  [ТС]
SeIZVeIZ, То есть нужно каким-то образом перевести числа, в которые программа переводит текст, в коллекцию чисел, а затем уже их сортировать?
0
911 / 796 / 329
Регистрация: 08.02.2014
Сообщений: 2,391
05.04.2016, 13:47
Omino, Вот эта часть:
C#
1
2
3
4
5
6
7
foreach (var ch in str)
            {
                int index = rus.IndexOf(ch) + 1;
                
                Console.WriteLine("Otsortirovan po vozrastaniju");
                Console.WriteLine(index);
            }
это и делает, только осталось добавить чтобы переменная index добавлялась в коллекцию
0
0 / 0 / 1
Регистрация: 20.05.2015
Сообщений: 15
05.04.2016, 14:04  [ТС]
SeIZVeIZ, Что то я совсем запутался Как вы в этом языке разбираетесь?)

Я тут попробовал сортировку методом пузырька сделать, но что то не получается. Можете помочь найти ошибку?

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
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
 
namespace _2
{
    class Program
    {
        static void Main(string[] args)
        {
            //Считываем ключ
            Console.Write("Введите ключ: ");
            string inputKey = Console.ReadLine();
 
            //Получаем зашшифрованый ключ
            string key = CodeKey(inputKey);
 
            //Выводим зашифрованный ключ
            Console.WriteLine("Зашифрованый ключ:");
            Console.WriteLine(key);
            Console.ReadKey();
        }
 
        static public string CodeKey(string inputKey) //Метод шифрования
        {
            string temp = inputKey;
            string key = string.Empty;
 
            char[] russian = "абвгдеёжзийклмнопрстуфхцчшщъыьэюя".ToCharArray();
 
            for (int i = 0; i < temp.Length; i++)
                key += (Array.IndexOf(russian, temp[i]) + 1).ToString();
            //сортировка
            string str = inputKey;
            var strTemp = str.ToCharArray();
            Array.Sort(strTemp);
            Console.WriteLine("сортировка букв по возрастанию :");
            Console.WriteLine(strTemp);
            //
            
            
 
                return key;
        }
        static int[] BubbleSort(int[] temp)
        {
            int temp1;
            for (int i = 0; i < temp.Length; i++)
            {
                for (int j = i + 1; j < temp.Length; j++)
                {
                    if (temp[i] > temp[j])
                    {
                        temp1 = temp[i];
                        temp[i] = temp[j];
                        temp[j] = temp1;
                    }
                }
            }
            return temp;
        }
        static void sort(string[] args)
        {
            //
            int N = Convert.ToInt32(temp1.Length);
 
            int[] temp = new int[N];
            
            //
            
            for (int i = 0; i < temp.Length; i++)
            {
                temp[i] = Convert.ToInt32(temp.Length);
            }
            BubbleSort(temp);
            Console.WriteLine("После сортировки:");
            for (int i = 0; i < temp.Length; i++)
            {
                Console.WriteLine(temp[i]);
            }
            Console.ReadLine();
        }
        
    }
}
0
911 / 796 / 329
Регистрация: 08.02.2014
Сообщений: 2,391
05.04.2016, 14:15
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
void BubbleSort(int[] temp)
{
    for (int i = 0; i < temp.Length; i++)
            {
                for (int j = 0; j < temp.Length - i - 1 ; j++)
                {
                    if (temp[j] < temp[j + 1])
                    {
                        int temps = temp[j];
                        temp[j] = temp[j + 1];
                        temp[j + 1] = temps;
                    }
                }
            }
}
1
0 / 0 / 1
Регистрация: 20.05.2015
Сообщений: 15
05.04.2016, 14:23  [ТС]
Вот здесь
Цитата Сообщение от Omino Посмотреть сообщение
int N = Convert.ToInt32(temp.Length);
выдаёт ошибку. Пишет "Не удаётся использовать локальную переменную "temp" до её объявления". Вроде бы объявлял вверху . . .
0
911 / 796 / 329
Регистрация: 08.02.2014
Сообщений: 2,391
05.04.2016, 14:31
во-1: Length к инту приводить не нужно
во-2: если я правильно понял то ты объявил переменную в 1 методе, а хочешь использовать в другом, без "глобального" объявления так не выйдет
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
05.04.2016, 14:31
Помогаю со студенческими работами здесь

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

Сортировка строки в массиве, индексы в массиве
Всем привет! У меня тут такое задание. Сгенерировать массив в интервале . (сделал) Количество элементов (столбцов) в строках, индекс...

Сортировка слов в массиве по кол-ву букв в слове
Помогите , задали сделать эту программу в школе , но я без понятия как ее делать ) Буду очень признателен вам , если поможете !

Замена букв в текстовом файле
Здравствуете! требуется помощь. Нужен батник, который будет менять буквы в тексте, нужно заменить все Д на Г„ Г на Г€

Подсчёт букв в текстовом файле
Разработать программу, которая читает текстовый файл и проводит частотный анализ текста, т. е. указывает (в процентах), сколько раз...


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

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru