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

Передвижение символа в диапазоне строкового массива

26.09.2019, 06:38. Показов 1901. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Камрады и снова к вам за помощью.
задача такая, в массиве надо сделать так чтоб при нажатии кнопки 'f' символ "@", менялся с индексом с права, а при нажатии кнопки 'b' возвращался обратно.

C#
1
            char[] dog = { '@', '_', '_', '_', '_', '_', '_', '_', '_', '_' };
Подскажите каким методом это реализовать? ))
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
26.09.2019, 06:38
Ответы с готовыми решениями:

Преобразование массива строкового типа
Здравствуйте. Появилась срочная надобность получить из этого: string message = { B, 6, 4, 9, A, 4, 7, 8, F, F, 0, 3, D, 3, 9, E, 4,...

Объявление динамического строкового массива
Имеется рабочий код: string ZProject = null; string Contract, FIO; string strOut = new string; int i = 0; Stream myStream =...

Счетчик значений строкового массива
Добрый день. Пишу простейший парсер, нужно вывести счетчик напарсенных ссылок, комментарии в чем ошибка в коде: using System; ...

5
3566 / 2507 / 1174
Регистрация: 14.08.2016
Сообщений: 8,219
26.09.2019, 08:18
C#
1
2
3
4
5
6
7
8
9
            char[] dog = { '@', '_', '_', '_', '_', '_', '_', '_', '_', '_' };
            while (true)
            {
                var key = Console.ReadKey(true).KeyChar;
                var curPos = Array.IndexOf(dog, '@');
                var n = key == 'f' ? 1 : key == 'b' ? -1 : 0;
                (dog[(curPos + n + dog.Length) % dog.Length], dog[curPos]) = (dog[curPos], dog[(curPos + n + dog.Length) % dog.Length]);
                Console.WriteLine(string.Join(" ",dog));
            }
0
2 / 2 / 0
Регистрация: 26.09.2019
Сообщений: 29
27.09.2019, 13:39  [ТС]
Цитата Сообщение от Diamante Посмотреть сообщение
char[] dog = { '@', '_', '_', '_', '_', '_', '_', '_', '_', '_' };
* * * * * * while (true)
* * * * * * {
* * * * * * * * var key = Console.ReadKey(true).KeyChar;
* * * * * * * * var curPos = Array.IndexOf(dog, '@');
* * * * * * * * var n = key == 'f' ? 1 : key == 'b' ? -1 : 0;
* * * * * * * * (dog[(curPos + n + dog.Length) % dog.Length], dog[curPos]) = (dog[curPos], dog[(curPos + n + dog.Length) % dog.Length]);
* * * * * * * * Console.WriteLine(string.Join(" ",dog));
* * * * * * }
Да, круто. мне пришлось попотеть что разобрать этот код.
Но есть одна просьба, а можно его написать как то... постарее что-ли. просто я пытался сделать это самостоятельно но окончательно запутался.

Добавлено через 1 минуту
Просто на основе этой задачи, мне сейчас надо будет делать вторую. а я почти день пытался переписать этот код на более примитивный но работающий. Пожалуйста. )))
0
3566 / 2507 / 1174
Регистрация: 14.08.2016
Сообщений: 8,219
27.09.2019, 13:49
Лучший ответ Сообщение было отмечено Kosharaa как решение

Решение

стоило бы разобраться и пользоваться теперешними возможностями
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
            char[] dog = { '@', '_', '_', '_', '_', '_', '_', '_', '_', '_' };
            int n = 0;
            while (true)
            {
                var key = Console.ReadKey(true).KeyChar;
                var curPos = Array.IndexOf(dog, '@');
                if (key == 'f')
                    n = 1;
                else if (key == 'b')
                    n = -1;
                else n = 0;         // var n = key == 'f' ? 1 : key == 'b' ? -1 : 0;
                var tmp = dog[(curPos + n + dog.Length) % dog.Length];
                dog[(curPos + n + dog.Length) % dog.Length] = dog[curPos];
                dog[curPos] = tmp;       //(dog[(curPos + n + dog.Length) % dog.Length], dog[curPos]) = (dog[curPos], dog[(curPos + n + dog.Length) % dog.Length]);
                Console.WriteLine(string.Join(" ", dog));
            }
1
2 / 2 / 0
Регистрация: 26.09.2019
Сообщений: 29
27.09.2019, 14:45  [ТС]
Цитата Сообщение от Diamante Посмотреть сообщение
возможностями
спасибо огромное. Первый код был весьма понятен и даже вторая версия для меня все еще понятна НО,
мне надо переписать его на ЕЩЕ более примитивный вариант НЕ используя метод Array.IndexOf и KeyChar.
Я понимаю что слишком сильно много прошу, но если это сильно геморойно, то фиг с ним, сам буду кошмариться
0
 Аватар для jester
352 / 247 / 76
Регистрация: 18.03.2016
Сообщений: 979
27.09.2019, 15:37
Kosharaa, так перепиши. тебе всё равно придётся думать. смирись)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
27.09.2019, 15:37
Помогаю со студенческими работами здесь

Метод Sorting для строкового массива
Объясните пожалуйста , как в данной программе работает метод "Sorting". Что делает "ComapreTo()"? class Zd3 { ...

Обратиться к элементу подстроки строкового массива
Как обратиться к элементу подстроки строкового массива ? Пробовала так, но не получается for (int i = 0; i < mas0.Length; i++) ...

Удалить из строкового массива все повторения
Добрый вечер. Сижу уже черт знает сколько не могу найти ошибку в программе, сама задача: Дана последовательность, содержащая от 1 до...

Ввод и вывод одномерного массива строкового типа
Никогда не приходилось работать со строковым массивом... Вот задание: Организуйте в консольном приложении ввод и вывод одномерного...

Элемент строкового массива привести к типу Int
Подскажите вот у меня есть массив типа string название array в 0 индексе находится цифра 99 как мне ее присвоить переменной типа int ...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Вывод данных через динамический список в справочнике
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2. Задача: вывести данные из ТЧ нетипового документа. . .
Функция заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению. На форме документа создается. . .
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
10 пpимет, которые всегда сбываются
Maks 31.03.2026
1. Чтобы, наконец, пришла маршрутка, надо закурить. Если сигарета последняя, маршрутка придет еще до второй затяжки даже вопреки расписанию. 2. Нaдоели зима и снег? Не надо переезжать. Достаточно. . .
Перемещение выделенных строк ТЧ из одного документа в другой
Maks 31.03.2026
Реализация из решения ниже выполнена на примере нетипового документа "ВыдачаОборудованияНаСпецтехнику" с единственной табличной частью "ОборудованиеИКомплектующие" разработанного в конфигурации КА2. . . .
Functional First Web Framework Suave
DevAlt 30.03.2026
Sauve. IO Апнулись до NET10. Из зависимостей один пакет, работает одинаково хорошо как в режиме проекта так и в интерактивном режиме. из сложностей - чисто функциональный подход. Решил. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru