Форум программистов, компьютерный форум, киберфорум
C# .NET
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.57/47: Рейтинг темы: голосов - 47, средняя оценка - 4.57
0 / 0 / 0
Регистрация: 08.12.2009
Сообщений: 10
1

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

08.12.2009, 13:14. Показов 9660. Ответов 25
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Вот несколько заданий которые ну вообще ни как не могу понять! Просто только начал изучать С# тут уже грузят!

1.Дан массив A размера N. Упорядочить его по возрастанию методом сортировки простым выбором: найти максимальный элемент массива и поменять его местами с последним элементом; выполнить описанные действия N – 1 раз, каждый раз уменьшая на 1 количество анализируемых элементов и выводя содержимое массива.

2.Дана строка S. Из строки требуется удалить текст, заключенный в фигурные скобки. В строке может быть несколько фрагментов, заключённых в фигурные скобки. Возможно использование вложенных фигурных скобок и, следовательно необходимо, чтобы программа это учитывала.

3.Дана целочисленная матрица размера M х N. Найти ее строки, все элементы которых различны.

помогите кто может!
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
08.12.2009, 13:14
Ответы с готовыми решениями:

Дана строка S, из неё требуется удалить текст, заключенный в фигурные скобки
Помоги пожалуйста со строками дана строка S, из неё требуется удалить текст, заключенный в фигурные...

Удалить текст заключенный в фигурные скобки
Дана строка S.Из строки удалить текст, заключенный в фигурные скобки. В строке может быть несколько...

Удалить часть символьной строки, заключенный в скобки(вместе со скобками).
Удалить часть символьной строки, заключенный в скобки(вместе со скобками).

Дан текст программы на Паскале с комментариями, заключенными в фигурные скобки {}. Удалить из текста комментарии
3. Дан текст программы на Паскале с комментариями заключенными в фигурные скобки {}. Удалить из...

25
MCSD: APP BUILDER
8794 / 1073 / 104
Регистрация: 17.06.2006
Сообщений: 12,602
08.12.2009, 13:32 2
vanpaul22,

2.Дана строка S. Из строки требуется удалить текст, заключенный в фигурные скобки. В строке может быть несколько фрагментов, заключённых в фигурные скобки. Возможно использование вложенных фигурных скобок и, следовательно необходимо, чтобы программа это учитывала.

var rx = new Regex(@"\{(?>[^\{\}]+|\{(?<Br>)|\}(?<-Br>))*(?(Br)(?!))\}", RegexOptions.Compiled);
var s = "aaa {dd} {ff} ddd {vv {{bb}} ff}";

s = rx.Replace(s, "");
0
0 / 0 / 0
Регистрация: 08.12.2009
Сообщений: 10
08.12.2009, 13:38  [ТС] 3
var rx = new Regex(@"\{(?>[^\{\}]+|\{(?<Br>)|\}(?<-Br>))*(?(Br)(?!))\}", RegexOptions.Compiled);
var s = "aaa {dd} {ff} ddd {vv {{bb}} ff}";

s = rx.Replace(s, "");

это как понимать?

Добавлено через 1 минуту
надо ввести самому строку
0
CEO
Эксперт С++
2258 / 1248 / 57
Регистрация: 16.03.2009
Сообщений: 3,588
08.12.2009, 14:08 4
Цитата Сообщение от vanpaul22 Посмотреть сообщение

Добавлено через 1 минуту
надо ввести самому строку
var s= Console.ReadLine();
0
0 / 0 / 0
Регистрация: 08.12.2009
Сообщений: 10
08.12.2009, 14:13  [ТС] 5
можно пояснить var rx = new Regex(@"\{(?>[^\{\}]+|\{(?<Br>)|\}(?<-Br>))*(?(Br)(?!))\}", RegexOptions.Compiled);
var s = "aaa {dd} {ff} ddd {vv {{bb}} ff}"; что это и как понимать?
0
50 / 31 / 1
Регистрация: 08.10.2009
Сообщений: 144
08.12.2009, 14:26 6
Цитата Сообщение от Rififi Посмотреть сообщение
var rx = new Regex(@"\{(?>[^\{\}]+|\{(?<Br>)|\}(?<-Br>))*(?(Br)(?!))\}", RegexOptions.Compiled);
ВАУ! Круто, но слабо понятно.
Подскажи пожалуйста где можно обучится джедайскому искусству?
А то во всех книгах что я читал Regex описан так что запутываешся ещё больше.
0
CEO
Эксперт С++
2258 / 1248 / 57
Регистрация: 16.03.2009
Сообщений: 3,588
08.12.2009, 14:28 7
в двух словах:
1) создаем екземпляр класса Regex
2) наша строка
далее по опциях в Regex заменяем нужную последовательность на ""

многими словами : http://msdn.microsoft.com/en-u... regex.aspx
0
0 / 0 / 0
Регистрация: 08.12.2009
Сообщений: 10
08.12.2009, 14:33  [ТС] 8
а как можно эти проги по другому сделать проще и понятней ?
0
CEO
Эксперт С++
2258 / 1248 / 57
Регистрация: 16.03.2009
Сообщений: 3,588
08.12.2009, 14:41 9
Rififi, мне ваш код очень нравится но люди просят мож сработает:

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
for (int i = 0; i < s.Length; i++)
            {
                if (s[i] == '{')
                {
                    for (int j = i + 1; j < s.Length; j++)
                    {
                        if (s[j] == '}')
                        {
 
                            s = s.Substring(0, i)+s.Substring(j+1);
                            break;
                        }
                    }
                }
            }
0
0 / 0 / 0
Регистрация: 08.12.2009
Сообщений: 10
08.12.2009, 14:41  [ТС] 10
вот по первой задачи не могу сделать чтобы каждый раз выводить массив после каждого действия
вот код
int i, N, j, k, z;
string s;
Console.Write("Введите число элементов массива N=");
s = Console.ReadLine();
N = Convert.ToInt32(s);
int[] masA = new int[N];
for (i = 0; i < N; i++)
{
Console.Write("Введите {0}-й элемент массива ", i + 1);
s = Console.ReadLine();
masA[i] = Convert.ToInt32(s);
}
k = 0;
z = N - 1;
for (i = 0; i <= (N - 1); i++)
{
for (j = 0; j <= N - 2 - i; j++)
{
if (masA[j] > masA[j + 1])
{
k = masA[j];
masA[j] = masA[j + 1];
masA[j + 1] = k;

}

if (i == z)
{

}
} z = z - 1;

} for (i = 0; i < N; i++)
{ Console.Write("{0:g3} ", masA[i]); }
Console.WriteLine();


Console.WriteLine("Ответ:");
for (i = 0; i < N; i++)
{ Console.Write("{0}", masA[i]); }
Console.ReadKey();

}
0
CEO
Эксперт С++
2258 / 1248 / 57
Регистрация: 16.03.2009
Сообщений: 3,588
08.12.2009, 14:43 11
vanpaul22, там на панельке сообщения есть кнопочка C#. Код ею оформлять надо ато глаза сломаем
0
0 / 0 / 0
Регистрация: 08.12.2009
Сообщений: 10
08.12.2009, 14:59  [ТС] 12
извините я просто новичок тут

Добавлено через 1 минуту
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
int i, N, j, k, z;
            string s;
            Console.Write("Введите число элементов массива N=");
            s = Console.ReadLine();
            N = Convert.ToInt32(s);
            int[] masA = new int[N]; 
            for (i = 0; i < N; i++)
            {
                Console.Write("Введите {0}-й элемент массива ", i + 1);
                s = Console.ReadLine();
                masA[i] = Convert.ToInt32(s);
            }
            k = 0;
            z = N - 1;
            for (i = 0; i <= (N - 1); i++)
                {
                    for (j = 0; j <= N - 2 - i; j++)
                    {
                        if (masA[j] > masA[j + 1])
                        {
                            k = masA[j];
                            masA[j] = masA[j + 1];
                            masA[j + 1] = k;
                            
                        }
 
                        if (i == z)
                        {
                            
                        }
                    } z = z - 1;
 
                } for (i = 0; i < N; i++)
            { Console.Write("{0:g3} ", masA[i]); }
            Console.WriteLine();
Добавлено через 54 секунды
это вот это задние: Дан массив A размера N. Упорядочить его по возрастанию методом сортировки простым выбором: найти максимальный элемент массива и поменять его местами с последним элементом; выполнить описанные действия N – 1 раз, каждый раз уменьшая на 1 количество анализируемых элементов и выводя содержимое массива.
0
MCSD: APP BUILDER
8794 / 1073 / 104
Регистрация: 17.06.2006
Сообщений: 12,602
08.12.2009, 15:06 13
Лучший ответ Сообщение было отмечено как решение

Решение

vanpaul22,

что это
это то, что ты хотел - код удаляет группу символов, заключенных в скобки с учётом вложенности.

и как понимать?
Как Тайное Знание, ниспосланное тебе свыше

IronWeb,
Подскажи пожалуйста где можно обучится джедайскому искусству?

Есть мега-книга издательства O'Reilly - Mastering Regular Expressions, имеется русская редакция.
открыв её полным ламером, после прочтения последней страницы ты превратишься в джедая. Ж)
Собстна, после прочтения этой книги, написание регэкпов, подобных приведенному выше становится такой же легкой работой, как и прихлопывание мухи (что и было продемонстрировано(: )
3
CEO
Эксперт С++
2258 / 1248 / 57
Регистрация: 16.03.2009
Сообщений: 3,588
08.12.2009, 15:10 14
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
int Max=masA[0];
int MaxIndex=0;
for (int i=0;i<masA.Length;i++)
{
   for (int j=0;j<masA-i;j++)
         {
            if (masA[j]>Max)
                 {
                    Max=masA[i];
                    MaxIndex=j;
                   }
            
          }
          int temp=masA[j];
         masA[j]=Max;
         masA[MaxIndex]=temp;
}
немного коряво, но надеюсь работает
0
0 / 0 / 0
Регистрация: 08.12.2009
Сообщений: 10
08.12.2009, 15:10  [ТС] 15
я и обратился сюда чтоб Вы помогли
0
CEO
Эксперт С++
2258 / 1248 / 57
Регистрация: 16.03.2009
Сообщений: 3,588
08.12.2009, 15:11 16
Цитата Сообщение от Rififi Посмотреть сообщение
vanpaul22,

Подскажи пожалуйста где можно обучится джедайскому искусству?

Есть мега-книга издательства O'Reilly - Mastering Regular Expressions, имеется русская редакция.
открыв её полным ламером, после прочтения последней страницы ты превратишься в джедая. Ж)
Собстна, после прочтения этой книги, написание регэкпов, подобных приведенному выше становится такой же легкой работой, как и прихлопывание мухи (что и было продемонстрировано(: )
Сенкс, я тоже почитаю
0
0 / 0 / 0
Регистрация: 08.12.2009
Сообщений: 10
08.12.2009, 15:17  [ТС] 17
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
for (int i = 0; i < s.Length; i++)
            {
                if (s[i] == '{')
                {
                    for (int j = i + 1; j < s.Length; j++)
                    {
                        if (s[j] == '}')
                        {
 
                            s = s.Substring(0, i)+s.Substring(j+1);
                            break;
                        }
                    }
                }
            }
вот этот код немного не правильно работает он удаляет все что стоит между скобками {}bsdh{sfkjsdf} если ввести вот так то не чего не останется
0
CEO
Эксперт С++
2258 / 1248 / 57
Регистрация: 16.03.2009
Сообщений: 3,588
08.12.2009, 15:30 18
странно - у меня остается
0
0 / 0 / 0
Регистрация: 08.12.2009
Сообщений: 10
08.12.2009, 15:40  [ТС] 19
3.Дана целочисленная матрица размера M х N. Найти ее строки, все элементы которых различны.
а вот эту как думаешь Alligieri как делать?
0
CEO
Эксперт С++
2258 / 1248 / 57
Регистрация: 16.03.2009
Сообщений: 3,588
08.12.2009, 16:01 20
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
int N = Int32.Parse(Console.ReadLine());
            int M = Int32.Parse(Console.ReadLine());
            int[,] Matrix = new int[N,M];
            int[] NotDif=new int[N];
             for (int i=0;i<N;i++)
             {
                 for (int j=0;j<M;j++)
                 {
                     Matrix[i,j]=Int32.Parse(Console.ReadLine());
                     for (int k=0;k<j;k++)
                     {
                         if (Matrix[i,j]==Matrix[i,k])
                         {
                             NotDif[i]=1;
                             break;
                         }
                     }
                    
                 }
             }
 
            for (int i=0;i<N;i++)
            {
                if (NotDif[i]==0)
                {
                    for (int j=0;j<M;j++)
                    {
                        Console.Write(Matrix[i,j]);
                    }
                }
            }
В проге вроде N и M местами поменял - но смісл понять можно

Добавлено через 1 минуту
На форуме кстати более продуктивная реализация описана гдето...
0
08.12.2009, 16:01
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
08.12.2009, 16:01
Помогаю со студенческими работами здесь

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

Удалить в тексте фигурные скобки
2. Удалить в тексте фигурные скобки. Например, для строки &quot;Интересная {такая} строка&quot; после...

Удалить последовательности символов, заключённые в фигурные скобки
Необходимо обработать текстовый файл. В первой строке файла указано общее число строк. Выделить...

Фигурные скобки: Мне пишут что ошибка в закрытие скобки после return.
#include &lt;iostream&gt; using namespace std; int main(){ int *ptr_number = new int; int *sum =...

Извлечь из строки текст, заключенный в кавычки
Доброго времени суток! Подскажите пожалуйста не как не могу разобраться с регулярными...

Фигурные скобки
Здравствуйте! Помогите разобраться с фигурными скобками в GET запросе, а именно: Прилетает...


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

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