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

Функция для поиска ошибок в расстановке скобок

03.11.2019, 12:18. Показов 3436. Ответов 1

Студворк — интернет-сервис помощи студентам
Здравствуйте уважаемые пользователи форума,я обращаюсь к вам за помощью,в весьма нетривиальном деле, нужно написать (или исправить моё) метод(функцию) который бы находил неправильно расставленные знаки : "(",")","[","]","{","}", и условие звучит так:
"
Тебе наверняка часто встречались ошибки, когда программа не запускалась из-за того, что ты забыл закрыть круглую или фигурную скобку. В этой задаче ты реализуешь аналогичную функциональность поиска непарных скобок или других символов.

Напиши функцию CheckPairs, которая принимает три параметра: строку с исходным текстом и пару открывающий/закрывающий символы. Функция выводит в консоль текст Все в порядке, если каждому открывающему символу есть пара и они расставлены в правильном порядке. И текст Найдены ошибки в противном случае
Обрати внимание, что в переданной строке следует искать именно те символы, которые переданы вторым и третьим аргументами
C#
1
2
3
4
5
6
7
using System;
 
class Program {
  static void Main(string[] args) {
    Task.CheckPairs("Console.ReadLine();", '(', ')'); /* Все в порядке */
  }
}
Sample Input 1:

Code
1
2
3
Console.ReadLine();
(
)
Sample Output 1:

Code
1
Все в порядке
Sample Input 2:

Code
1
2
3
static void Main(string[] args) {]
{
}
Sample Output 2:

Code
1
Найдены ошибки
Sample Input 3:

Code
1
2
3
string][ fruits = {"Яблоко", "Апельсин", "Слива"};
[
]
Sample Output 3:

Code
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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
class Task {
    public static void CheckPairs(string a, char b,char c)
    {
        int countChar = a.Length;
        int countSCOBKA_LEVO = -1;
        int countSCOBKA_PRAVO = -1;
        for (int index = 0; index < countChar; index++)
            {
                   if (a[index] == b)
                   {
                       countSCOBKA_LEVO = index;
                       break;
 
                   }
                    else 
                    {
                        countSCOBKA_LEVO = -1;
                    } 
            }
        for (int index = 0; index < countChar ; index++)
            {
                   if (a[index] == c)
                   {
                       countSCOBKA_PRAVO = index;
                       break;
 
                   }
                    else 
                    {
                        countSCOBKA_PRAVO = -1;
                    } 
            }
 
        if ((countSCOBKA_LEVO < countSCOBKA_PRAVO) && (countSCOBKA_PRAVO > -1))
        {
            Console.WriteLine("Все в порядке");
        }
        else if (countSCOBKA_LEVO == -1 || countSCOBKA_PRAVO == - 1 )
        {
            Console.WriteLine("Найдены ошибки");
         }
        else if (countSCOBKA_LEVO > -1 && countSCOBKA_PRAVO == - 1 )
        {
            Console.WriteLine("Найдены ошибки");
         }
        else if (countSCOBKA_LEVO == -1 && countSCOBKA_PRAVO > - 1 )
        {
            Console.WriteLine("Найдены ошибки");
         }
        else if (countSCOBKA_LEVO == -1 && countSCOBKA_PRAVO == - 1 )
        {
            Console.WriteLine("Все в порядке");
         }
        else 
        {
            Console.WriteLine("Найдены ошибки");
         }
 
     }
 
}

И не смотря на всю громоздкость, он пропускает подобные случаи:
Input
Code
1
2
3
namespace ConsoleApplication1 {class Program {static void Main(string[] args) {}
{
}
Output
Code
1
Всё в порядке
(хотя должно быть выведено "Найдены ошибки", так как она тут на лицо), помогите пожалуйста.
1
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
03.11.2019, 12:18
Ответы с готовыми решениями:

Написать регулярное выражение для поиска парных скобок
помогите написать регулярное выражение для поиска парных скобок

Приложение для поиска check ошибок
Здравствуйте, я студент 4 курса на до мной весит курсовой проект который я должен сделать за месяц с чем то но тема у меня весьма...

Функция для поиска символов
Дали задачу такую Пусть задано множество строк. Определить длину содержащейся в нем максимальной серии символов, несодержащей букв ...

1
 Аватар для Enifan
1849 / 1191 / 501
Регистрация: 14.10.2018
Сообщений: 3,220
03.11.2019, 13:18
strannikkk999, самый банальный способ:
создать в методе переменную типа int. Нашелся один парный символ - увеличиваем на +1. Нашелся другой парный символ - уменьшаем на -1. Если в конце результат 0 - значит все хорошо. Если положительное значение - то не хватает второго парного символа, если отрицательное значение - то не хватает первого парного символа
Тут еще надо учитывать комментарии, где подсчет не ведется. Можно завести булевую переменную чтобы проверять в комментах мы или нет.
А так можно почитать про Stack который поможет работать сразу с несколькими парными символами.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
03.11.2019, 13:18
Помогаю со студенческими работами здесь

Функция для поиска хешированием
Необходимо написать функцию для метода поиска хешированием. Не получается написать. Искал много-много, но нужного не нашел :( Помогите,...

Функция для поиска минимального элемента
дано натуральное число n и последовательность целых чисел a1, a2....an , b1 , b2.....bn, c1,c2...cn.используя функцию для поиска...

Функция glob для поиска файлов
Привет, граждане программисты! Вопрос очень простой. Есть директория с изображениями &quot;jpeg&quot;, имена файлов произвольные....

Функция для поиска буквы в строке
Задача: Напишите функцию для поиска буквы в заданной строке.Функция возвращает True, если в строке есть хоть одна эта буква , и False...

функция поиска для отсортированных массивов?
есть класс объект которого отсортированный массив,нужно написать для этого класса функцию int Find(int value) чтобы возвращал индекс...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru