На этом уроке мы напишем функцию getAbc(), которая будет сортировать буквы ключа по алфавиту. Причём перестановки делать вместе с целым массивом.
Дата отправки отчёта:
31 марта 2017 г.
Задание выполнено: за
1 час. 00 мин.
Чему научился:
Не, не научился. сейчас попробую справочник подключить к процессу :0
Что было сложным:
Вот она, строчка-злодейка: key = key.Remove(b, 2).Insert(b, key.Substring(b + 1, 1)).Insert(b + 1, key.Substring(b, 1));
Комментарии:
Специально в скрине оставил поле с ошибкой. Может кто подскажет, почему так. В начале кода стоит: public partial class FormShifr1 : Form {
int[] abc;
public FormShifr1() abc подчеркнуто зеленым и при запуске программы вылезает ошибка, что abc нигде не используется. При этом код ниже: private string GetAbc(string key) { int[] abc = new int [key.Length]; for (int j = 0; j < abc.Length; j++) abc[j] = j; for (int i = 0; i < key.Length; i++) for (int b = 0; b < key.Length - i - 1; b++) if (key[b] > key[b + 1]) { key = key.Remove(b, 2).Insert(b, key.Substring(b + 1, 1)).Insert(b + 1, key.Substring(b, 1)); int x = abc[b]; abc[b] = abc[b + 1]; abc[b + 1] = x; } То есть это самое abc очень популярно, почему же оно "нигде не используется"?
Сергей, смотри! В строке int[] abc = new int [key.Length]; ты создаёшь новую переменную abc, которая видна только внутри метода. А та переменная, которая создана на уровне класса, осталось не задействованной и для того, что бы использовать именно её, тебе нужно записать строчку вот так: abc = new int [key.Length];
Научился: Повторил некоторые знания. Трудности: Самое сложное было отсортировать по-нормальному. Намучился с этим - капееец. Утомился с этой дурацкой сортировкой. Начинаю склоняться к мысли, что метод автора хоть и выглядит как то жутко и непонятно, но всё же лучше, чем мой, который понятный но в котором 3 абзаца вместо строки..