Форум программистов, компьютерный форум, киберфорум
LINQ
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.57/21: Рейтинг темы: голосов - 21, средняя оценка - 4.57
141 / 181 / 44
Регистрация: 25.04.2012
Сообщений: 2,623
Записей в блоге: 5
1

Получить новую последовательность по правилу

04.02.2015, 13:01. Показов 3921. Ответов 13
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Дана строковая последовательность А. Строки последовательности содержат только заглавные буквы латинского алфавита. Получить новую последовательность строк, элементы которой определяются по соответствующим элементам А следующим образом: пустые строки в новую последовательность не включаются, а к непустым приписывается порядковый номер данной строки в исходной последовательности. При нумерации должны учитываться и пустые строки последовательности А.
Как учесть эти пустые строки? Нужно использовать Select.
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
04.02.2015, 13:01
Ответы с готовыми решениями:

Получить новую последовательность чисел из исходной по правилу
Дана целочисленная последовательность A. Получить новую последовательность чисел, элементы которой...

Получить новую последовательность по правилу
с комментариями если несложно

Из исходной последовательности получить новую последовательность по заданному правилу
Из последовательности c1,c2,......cm, m<=15, получить последовательность x1,x2 ...по правилу ...

Сформировать новую последовательность по заданному правилу
В файле input находится такая последовательность 2 4 3 2 88 65 99 87 98 97 96, он должен вывести 3...

13
Заблокирован
04.02.2015, 13:18 2
Лучший ответ Сообщение было отмечено Alex9 как решение

Решение

Alex9, мне условие задачи непонятно. Можете показать на простом тестовом примере, что есть на входе и что должно быть на выходе
На всякий случай то, как я понял:
C#
1
2
3
4
5
6
7
            string[] str = new string[] { "ABC", "DEF", "   ", " ", "FGD", "", "PWE" };
 
            var newstr = str.Select((f, i) =>
                !string.IsNullOrWhiteSpace(f) ? f + i : null)
            .Where(g => g != null);
            foreach (var x in newstr)
                Console.WriteLine(x);
1
141 / 181 / 44
Регистрация: 25.04.2012
Сообщений: 2,623
Записей в блоге: 5
04.02.2015, 15:09  [ТС] 3
А что можно использовать вместо null для представления не выбираемого элемента, если работать с целочисленной последовательностью?
0
Заблокирован
04.02.2015, 15:44 4
Alex9, а что считается пустым элементом в числовой последовательности? Поясните на примере
0
141 / 181 / 44
Регистрация: 25.04.2012
Сообщений: 2,623
Записей в блоге: 5
04.02.2015, 17:50  [ТС] 5
Дана целочисленная последователньость А. Получить новую последовательность. Если порядковый номер элемента А делится на 3 нацело, то этот элемент в новую последователньость не включается; если остаток от деления порядкового номера на 3 равен 1, то в новую последовательность добавляется удвоенное значение этого элемента; в противном случае элемент добавляется в новую последовательность без изменений.
Вот непонятно как не включать.
0
Заблокирован
04.02.2015, 18:33 6
Alex9, должно работать:
C#
1
2
3
4
5
6
          
  var q = A.Where((_, i) => i % 3 != 0).Select((y, i) =>
                {
                    if (i % 2 == 0) return y * y;
                    else return y;
                });
1
141 / 181 / 44
Регистрация: 25.04.2012
Сообщений: 2,623
Записей в блоге: 5
04.02.2015, 18:36  [ТС] 7
Символ _ что-то обозначает?
0
Заблокирован
04.02.2015, 18:45 8
Alex9, так обычно подчеркивается то, что параметр не играет роли
2
141 / 181 / 44
Регистрация: 25.04.2012
Сообщений: 2,623
Записей в блоге: 5
05.02.2015, 11:51  [ТС] 9
C#
1
int[] A = new int[7] { 2, 62, 3, 7, 5, 1, 4};
Если взять такую последовательность, то цифра 3 включается в результат, хотя по заданию делящиеся на 3 числа (3,6,...) не должны включаться. Может с помощью SelectMany можно такое реализовать?
0
Заблокирован
05.02.2015, 12:42 10
Цитата Сообщение от Alex9 Посмотреть сообщение
Если взять такую последовательность, то цифра 3 включается в результат, хотя по заданию делящиеся на 3 числа (3,6,...) не должны включаться. Может с помощью SelectMany можно такое реализовать?
Alex9, речь же шла о индексах делящихся на 3:
Если порядковый номер элемента
В той постановке, где нужно убрать значения, которые делятся на 3 без остатка и т.д. задача решается даже проще, чем предыдущая. Замените условие отбора в запросе из поста №6 и получите решение.

P.S. SelectMany тут не нужен.
1
141 / 181 / 44
Регистрация: 25.04.2012
Сообщений: 2,623
Записей в блоге: 5
06.02.2015, 09:20  [ТС] 11
Наскоько я понял, после этой части
C#
1
Where((_, i) => i % 3 != 0)
индексы последовательности будут изменены, т.е. работать в выборке всегда с индексами исходной последовательности не получится?
0
Заблокирован
06.02.2015, 11:28 12
Цитата Сообщение от Alex9 Посмотреть сообщение
индексы последовательности будут изменены, т.е. работать в выборке всегда с индексами исходной последовательности не получится?
Alex9, совершенно верно, именно поэтому в Select -ах в if "сдвинутое" условие
0
141 / 181 / 44
Регистрация: 25.04.2012
Сообщений: 2,623
Записей в блоге: 5
06.02.2015, 11:51  [ТС] 13
Можете объяснить, как Вы его сдвинули?
0
Заблокирован
06.02.2015, 12:22 14
Alex9, попробую. Остаток от деления на 3 может принимать значения [0, 1, 2]. Т.е. индексы будут образовывать следующую последовательность:
[0, 1, 2, 0, 1, 2, 0, 1, 2, ...]

Те, значения, у которых остаток равен 0 -> отбрасываются,
те, значения, у которых остаток равен 1 -> возводим в квадрат,
остальные - оставляем без изменений.

В Where выполняется фильтр, таким образом соблюдается первое условие. Т.е. получится такая последовательность первоначальных индексов:
[1, 2, 1, 2, 1, 2, 1, 2, ...]

Остальные условия относятся к преобразованию, поэтому записываются в методе Select:
Последовательность имеют два различных значения => преобразовывать нужно каждый второй, начиная с первого, т.к. этот элемент в исходной последовательности был второй (его остаток от деления на 3 был равен 1). Остается только записать в понятном для С# виде
1
06.02.2015, 12:22
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
06.02.2015, 12:22
Помогаю со студенческими работами здесь

Дана последовательность А1...А50. Получить новую последовательность, исключив отрицательные элементы
Дана последовательность А1...А50. Получить новую последовательность, исключив отрицательные элементы

Дана последовательность целых чисел. Получить новую последовательность.
Помогите решить задачу! Дана последовательность целых чисел a1, a2, …, an (n<=40). Получить новую...

Получить новую матрицу по правилу
Даны две действительные квадратные матрицы порядка п. Получить новую матрицу: умножением...

Получить новую матрицу по правилу
Здравствуйте! Даны две действительные квадратные матрицы порядка n. получить новую матрицу...


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

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru