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

Вывести строки по принципу: четная - нечетная

10.06.2014, 10:51. Показов 7152. Ответов 23
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Друзья подскажите плиз ...

Есть строка , она побита по 64 символа

uxk//MqBpcRBPkDj4Jb/4dfDrY7TJ9ZHSsXpntTgNXyKep958sH1aNsY8Crm EP
I/gR1yBAYy9YIWZbcTHuaCo9BaWXWetw1LfEXPzcLx HyL2PVdXLcj/v2hVkCah
JcrYdcrDiO53At49zu057x001a1C1n3VTiKmAiJg 97MdNNWtQtZ91U4ipgIiYP
HTTVrULWfdVOIqYCImD3s5o7LcxSFZyLMYcyw8oo x6S1eR6D65zkP1dwQF696G
NHLIj0BHqGCOgqcvDqfYd0SckiQPYg724c5wl2N/SSKqAhQhmXPYjsNQutEktx
aHBCQsfcIE1qze8ECb8vVx001a1C1n3VTiKmAiJg 97Plnm7Kz1qRs3sTXnq2fM
qgIUIZlz2I7DULrRJLcZdWhwQkLH3CBNas3vBAm/L1cdNNWtQtZ91U4ipgIiYP
HTTVrULWfdVOIqYCImD3sx001a1C1n3VTiKmAiJg 97MdNNWtQtZ91U4ipgIiYP
HTTVrULWfdVOIqYCImD3sx001a1C1n3VTiKmAiJg 97MdNNWtQtZ91U4ipgIiYP
HTTVrULWfdVOIqYCImD3sx001a1C1n3VTiKmAiJg 97MdNNWtQtZ91U4ipgIiYP
HTTVrULWfdVOIqYCImD3sx001a1C1n3VTiKmAiJg 97MdNNWtQtZ91U4ipgIiYP
HTTVrULWfdVOIqYCImD3sx001a1C1n3VTiKmAiJg 97OvE6KMOf1acMt1iR2us+
Z62Qh+pwaDaUHtDYV6VMWdnInkV9eGmMTdLDZKfu vrcdNNWtQtZ91U4ipgIiYP
HTTVrULWfdVOIqYCImD3sx001a1C1n3VTiKmAiJg 97MdNNWtQtZ91U4ipgIiYP
HTTVrULWfdVOIqYCImD3sx001a1C1n3VTiKmAiJg 97MdNNWtQtZ91U4ipgIiYP
HTTVrULWfdVOIqYCImD3sx001a1C1n3VTiKmAiJg 97MdNNWtQtZ91U4ipgIiYP
HTTVrULWfdVOIqYCImD3sx001a1C1n3VTiKmAiJg 97MdNNWtQtZ91U4ipgIiYP
HTTVrULWfdVOIqYCImD3sx001a1C1n3VTiKmAiJg 97MdNNWtQtZ91U4ipgIiYP
HTTVrULWfdVOIqYCImD3sx001a1C1n3VTiKmAiJg 97MdNNWtQtZ91U4ipgIiYP
HTTVrULWfdVOIqYCImD3sx001a1C1n3VTiKmAiJg 97MdNNWtQtZ91U4ipgIiYP
HTTVrULWfdVOIqYCImD3s5UVVpDhDJqcNYa8ybbT ABJ90pZPD0VuB99cfL4ncS
kXBJKKp4XDShX2VoQoYU4h001a1C1n3VTiKmAiJg 97MdNNWtQtZ91U4ipgIiYP
HTTVrULWfdVOIqYCImD3sx001a1C1n3VTiKmAiJg 97MdNNWtQtZ91U4ipgIiYP
HTTVrULWfdVOIqYCImD3sx001a1C1n3VTiKmAiJg 97MdNNWtQtZ91U4ipgIiYP
HTTVrULWfdVOIqYCImD3sx001a1C1n3VTiKmAiJg 97MdNNWtQtZ91U4ipgIiYP
HTTVrULWfdVOIqYCImD3sx001a1C1n3VTiKmAiJg 97MdNNWtQtZ91U4ipgIiYP
HTTVrULWfdVOIqYCImD3sx001a1C1n3VTiKmAiJg 97MdNNWtQtZ91U4ipgIiYP
HTTVrULWfdVOIqYCImD3sx001a1C1n3VTiKmAiJg 97MdNNWtQtZ91U4ipgIiYP
HTTVrULWfdVOIqYCImD3sx001a1C1n3VTiKmAiJg 97MdNNWtQtZ91U4ipgIiYP
9gSWCEaZAhrFIkSlw9R7dA


Необходимо сделать следующее : пере-чередовать четные и нечетные строки ... Выход : четная нечетная четная нечетная строка .
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
10.06.2014, 10:51
Ответы с готовыми решениями:

Из строки удалить среднюю букву , если длина строки нечетная , если четная - удалить две средние буквы
Из строки удалить среднюю букву , если длина строки нечетная , если четная - удалить две средние буквы

Записать в массив такие элементы матрицы, что первая цифра четная, а вторая нечетная
Записать в массив С элементы массива М, заполненного двузначными числами, такие что первая цифра четная, а вторая нечетная

Записать в массив такие элементы другого массива, что первая цифра четная, а вторая нечетная
Помогите, C# 3. Записать в массив С элементы массива М, заполненного двузначными числами, такие что первая цифра четная, а вторая...

23
 Аватар для Metall_Version
2152 / 1289 / 516
Регистрация: 04.03.2014
Сообщений: 4,092
10.06.2014, 11:00
идешь по порядку , от первой до последней строки.. и буде чередоваться четная- нечетная..
0
5 / 5 / 4
Регистрация: 01.06.2014
Сообщений: 55
10.06.2014, 11:04
Metall_Version, на сколько я понял ему надо в такой последовательности: вторая строка, первая, четвёртая, третья, шестая, пятая.
0
0 / 0 / 1
Регистрация: 11.01.2014
Сообщений: 40
10.06.2014, 11:15  [ТС]
Metall_Version , если можно пример выложить .
0
 Аватар для Metall_Version
2152 / 1289 / 516
Регистрация: 04.03.2014
Сообщений: 4,092
10.06.2014, 11:21
Airdog,
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
            string[] lines= {"1 uxk//MqBpcRBP","2 I/gR1yBAYy9YIW", "3 JcrYdcrDiO53At","4 HTTVrULWfdVOIq",
                                "5 NHLIj0BHqGCOgq","6 aHBCQsfcIE1qze","7 qgIUIZlz2I7DUf","8 HTTVrULWfdVOIq"};
 
            for (int i = 1; i < lines.Length; )
            {
                string current = lines[i];
                Console.WriteLine(current);
 
                if(i%2!=0)
                {
                    i--;
                }
                else
                {
                    i += 3;
                }
            }
это если выводить в порядке
2
1
4
3
6
5
8
7
1
 Аватар для Spawn
995 / 893 / 354
Регистрация: 24.03.2014
Сообщений: 2,381
Записей в блоге: 2
10.06.2014, 11:22
C#
1
2
3
4
5
6
7
8
9
10
                string[] srcArr = { "1", "2", "3", "4", "5", "6", "7", "8", "9" };
                string[] newArr = srcArr.Select((s, i) => 
                {
                    int lineNum = i + 1;
                    if (lineNum % 2 == 0) // чётная
                        lineNum--;
                    else
                        lineNum++;
                    return new { Line = s, Order = lineNum };
                }).OrderBy(o => o.Order).Select(s => s.Line).ToArray();
1
 Аватар для Metall_Version
2152 / 1289 / 516
Регистрация: 04.03.2014
Сообщений: 4,092
10.06.2014, 11:22
это если выводить в порядке
2
1
4
3
6
5
8
7
0
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
 Аватар для KOPOJI
16844 / 6724 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
10.06.2014, 11:33
А можно и так, например
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
using System;
 
public class Test
{
    public static void Main()
    {
        String txt = "111\n222\n333\n444\n555\n666\n777\n888\n999\n000";
        String[] arr = txt.Split("\n".ToCharArray());
        for(int i = 1; i < arr.Length; i += 2)
        {
            Console.WriteLine(arr[i]);
            Console.WriteLine(arr[i-1]);
        }
        if(arr.Length % 2 != 0)
            Console.WriteLine(arr[arr.Length - 1]);
    }
}
http://ideone.com/bAAufI
1
 Аватар для Metall_Version
2152 / 1289 / 516
Регистрация: 04.03.2014
Сообщений: 4,092
10.06.2014, 11:49
было интересно сколько времени займет каждый вариант
вариант 1 Spawn, больше всего времени 0,0003 миллисекунды
вариант 2 Metall_Version меньше всего 0,00002 миллисекунды
вариант 3 KOPOJI, по середине 0,0001 миллисекунды

1 и 3 вариант всегда разное время дают (один раз вариант 3 дал 0,00002 миллисекунды )
1 вариант всегда больше времени занимает
Изображения
 
0
 Аватар для Spawn
995 / 893 / 354
Регистрация: 24.03.2014
Сообщений: 2,381
Записей в блоге: 2
10.06.2014, 11:53
Metall_Version, некорректное сравнение. Вы данные отображаете, я же их для дальнейшей обработки формирую.
0
Заблокирован
10.06.2014, 11:55
Metall_Version, если убрать Split в 3 варианте, скорость не изменится? Все же входные данные немного разныею Или это только время отработки цикла?
0
 Аватар для Metall_Version
2152 / 1289 / 516
Регистрация: 04.03.2014
Сообщений: 4,092
10.06.2014, 11:57
Spawn, согласен. об не подумал
корректно сравнивать 2 и 3 вриант

Добавлено через 42 секунды
Ev_Hyper,
Кликните здесь для просмотра всего текста
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
            var SWvar1 = new Stopwatch();
            string[] srcArr = { "1", "2", "3", "4", "5", "6", "7", "8", "9" };
 
            SWvar1.Start();
            var V1newArr = srcArr.Select((s, i) =>
            {
                int lineNum = i + 1;
                if (lineNum % 2 == 0) // чётная
                    lineNum--;
                else
                    lineNum++;
                return new { Line = s, Order = lineNum };
            }).OrderBy(o => o.Order).Select(s => s.Line);
            foreach (var i in V1newArr)
            {
                Console.WriteLine(i);
            }
            SWvar1.Stop();
            Console.WriteLine();
 
            var SWvar2 = new Stopwatch();
            SWvar2.Start();
 
            for (int i = 1; i < srcArr.Length; )
            {
                Console.WriteLine(srcArr[i]);
 
                if (i % 2 != 0)
                    i--;
                else
                    i += 3;
            }
            SWvar2.Stop();
            Console.WriteLine();
 
            var SWvar3 = new Stopwatch();
 
            SWvar3.Start();
 
            for (int i = 1; i < srcArr.Length; i += 2)
            {
                Console.WriteLine(srcArr[i]);
                Console.WriteLine(srcArr[i - 1]);
            }
            if (srcArr.Length % 2 != 0)
                Console.WriteLine(srcArr[srcArr.Length - 1]);
            SWvar3.Stop();
 
            Console.WriteLine("variant 1 " + SWvar1.Elapsed);
            Console.WriteLine("variant 2 " + SWvar2.Elapsed);
            Console.WriteLine("variant 3 " + SWvar3.Elapsed);
            Console.ReadLine();
1
 Аватар для Metall_Version
2152 / 1289 / 516
Регистрация: 04.03.2014
Сообщений: 4,092
10.06.2014, 12:04
если сравнивать чисто производительность создания коллекций строк.

то скорость выполнения равна порядку вариантов. самый быстрый третий вариант , самый медленный все-же первый.

Кликните здесь для просмотра всего текста
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
string[] srcArr = { "1", "2", "3", "4", "5", "6", "7", "8", "9" };
 
            var SWvar1 = new Stopwatch();
 
            SWvar1.Start();
            var list = srcArr.Select((s, i) =>
            {
                int lineNum = i + 1;
                if (lineNum % 2 == 0) // чётная
                    lineNum--;
                else
                    lineNum++;
                return new { Line = s, Order = lineNum };
            }).OrderBy(o => o.Order).Select(s => s.Line).ToList();
            SWvar1.Stop();
            Console.WriteLine();
 
            var SWvar2 = new Stopwatch();
            var list2 = new List<string>();
            SWvar2.Start();
 
            for (int i = 1; i < srcArr.Length; )
            {
                list2.Add(srcArr[i]);
 
                if (i % 2 != 0)
                    i--;
                else
                    i += 3;
            }
            SWvar2.Stop();
            Console.WriteLine();
 
            var SWvar3 = new Stopwatch();
            var list3 = new List<string>();
 
            SWvar3.Start();
 
            for (int i = 1; i < srcArr.Length; i += 2)
            {
                list3.Add(srcArr[i]);
                list3.Add(srcArr[i - 1]);
            }
            if (srcArr.Length % 2 != 0)
                list3.Add(srcArr[srcArr.Length - 1]);
            SWvar3.Stop();
 
 
            Console.WriteLine("variant 1 " + SWvar1.Elapsed);
            Console.WriteLine("variant 2 " + SWvar2.Elapsed);
            Console.WriteLine("variant 3 " + SWvar3.Elapsed);
            Console.ReadLine()
;
Изображения
 
1
 Аватар для Metall_Version
2152 / 1289 / 516
Регистрация: 04.03.2014
Сообщений: 4,092
10.06.2014, 12:09
а если второй и третий вариат менять местами в коде то результат меняется. (с 10; 06 , на 06; 10) в общем интернация строк играет тут свою роль
1
Заблокирован
10.06.2014, 12:10
Цитата Сообщение от Metall_Version Посмотреть сообщение
а если второй и третий вариат менять местами в коде то результат меняется. (с 10; 06 , на 06; 10) в общем интернация строк играет тут свою роль
Metall_Version, вывод не забыли изменить?
0
 Аватар для Metall_Version
2152 / 1289 / 516
Регистрация: 04.03.2014
Сообщений: 4,092
10.06.2014, 12:12
Цитата Сообщение от Ev_Hyper Посмотреть сообщение
вывод не забыли изменить?
нет конечно
1
10.06.2014, 12:15

Не по теме:

Metall_Version, это я забыл :)

0
 Аватар для Spawn
995 / 893 / 354
Регистрация: 24.03.2014
Сообщений: 2,381
Записей в блоге: 2
10.06.2014, 12:16
Metall_Version, любимый Linq же
Учитывая, что у меня там и "лишняя" сортировка и формирование промежуточной коллекции из анонимных типов.
Но для общей картины, наверное, всё же решение поставленной задачи, пусть и самое ресурсоёмкое.
0
10.06.2014, 12:25

Не по теме:

Spawn, задумался, вот когда я применяю линкью в программах он всегда такой затратный? не ужели если написать без него будет быстрее.(например метод обычного нахождения сущности по определеyному значению. через WHERE или FIND)

0
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
 Аватар для KOPOJI
16844 / 6724 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
10.06.2014, 12:26
Metall_Version, если чисто теоретически, то да. По сути, можно грубо сравнить с регулярками - они затратны, как ни крути, но порой решение с помощью них выглядит лаконично и понятно. Хотя с практической точки зрения я не могу этого сказать (особенно с учетом того, что с шарпом я знаком постольку-поскольку).
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
10.06.2014, 12:26
Помогаю со студенческими работами здесь

Если длина введенной строки нечетная, удалить символ, стоящий посередине строки.
Если длина введенной строки нечетная, удалить символ, стоящий посередине строки. Помогите решить пожалуйста через Char можно если.

Если длина введенной строки нечетная, удалить символ, стоящий посередине строки
Если длина введенной строки нечетная, удалить символ, стоящий посередине строки,задача по C# через string пожалуйста

Четная/Нечетная неделя
Как сделать чтобы у меня вывело информацию о четной/нечетной неделе в textView или как-нибудь в другое место в(Activity).

Четная нечетная неделя в месяце
Определить какая сейчас неделя - числитель или знаменатель. Числитель - 1.3.5 Знаменатель - 2.4 Отсчет с начала месяца. Интересен...

Четная или нечетная неделя
Здравствуйте. Не могу реализовать определение четности и нечетности недели. Неделя с 1 сентября - нечетная неделя (т.е. является 1...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут. https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc Первый документ красиво выглядит, но без схемы. Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере". Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
Команды формы и диалоговое окно
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти". Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. В качестве источника данных. . .
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер Написал заготовку: dotnet new console --aot -o UrlHandler var items = args. Split(":"); var tag = items; var id = items; var executable = args;. . .
Отправка уведомления на почту при изменении наименования справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере изменения наименования типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной. . .
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений. 9TO2GP2bpX4 a42b81fb172ffc12ca589c7898261ccb/ https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/ Слева синяя линия -. . .
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. . Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru