Lisiy_egik
19-09-2009, 17:08
-только в вуз поступил, и начал учиться с 3й недели, сейчас пытаюсь нагнать программу. в частности и по программированию. Вопрос вот в чем: была как практическая задана задача: "пользователь вводит последовательность символов, содержащую, среди прочих символов, круглые открывающие и закрывающие скобки. Признаком завершения признаком завершения последовательности является символ #. Определить. имеется ли в заданной последовательности баланс открывающихся и закрывающихся скобок. Скобки считаются сбалансированными, если для каждой открывающей скобки есть соответствующая закрывающая скобка, причем в предпоследовательности между этими скобками так же соблюден баланс. Последовательность. не содержащая ни одной скобки. считается так же сбалансированной."
Так как с языком С++ сталкиваюсь впервые)) хотелось бы узнать основные функции и команды вместе с их описанием для Си. то бишь может кто подскажет источник информации. в котором будет описано все "как дураку".
Для приведенной задачи у меня получился примерно такой алгоритм:
1) Создание счетчика с переменной "open" для "(" (изначально переменные = 0)
2) Создание счетчкиа с переменной "close" для ")"
3) Закрузка файла, содержащеко текст, допустим 123.txt
4) Далее сравнение сиволов файла с "(" и ")"
5) Если первая скобка в последовательности символов до символа "#" ")" - выдвать сообщение, что "баланса нет"
6) Если последняя скобка, в последовательности символов до символа "#" "(" аналогичное сообщение об отстутствии баланса и конец программы ( так как ""123 ) 2323(ыв) (0"" несмотря на одинаковое кол-во открывающихся/закр. скобок баланса тут нет )
7) Если 5й и 6й пункт не нашли бисбаланса скобок, то начать сравнение символов начиная с первого и заканчивая символом"#". при этом при обнаружении "(" совершать "open+1" аналогично и для ")" только с close)
8) Как только сравниваемый сивол примит значение "#", сделать сравнение переменных open и close.
9) Если значения переменных равны друг другу. то выдать сообщение об "наличии баланса скобок"
10) Если переменные больше. аналогично и меньше друг друга. то выдать сообщение об "отсутствии баланса"
Среда работы - Microsoft Visual Studio 2008
Буду очень благодарен. если окажете помощь в реализации этой задачи, и ссылками на литературу. в которой как дураку расписано что, как и где нужно напсать. чтоб все написанное заработало. Заранее благодарен)
Так как с языком С++ сталкиваюсь впервые)) хотелось бы узнать основные функции и команды вместе с их описанием для Си. то бишь может кто подскажет источник информации. в котором будет описано все "как дураку".
Для приведенной задачи у меня получился примерно такой алгоритм:
1) Создание счетчика с переменной "open" для "(" (изначально переменные = 0)
2) Создание счетчкиа с переменной "close" для ")"
3) Закрузка файла, содержащеко текст, допустим 123.txt
4) Далее сравнение сиволов файла с "(" и ")"
5) Если первая скобка в последовательности символов до символа "#" ")" - выдвать сообщение, что "баланса нет"
6) Если последняя скобка, в последовательности символов до символа "#" "(" аналогичное сообщение об отстутствии баланса и конец программы ( так как ""123 ) 2323(ыв) (0"" несмотря на одинаковое кол-во открывающихся/закр. скобок баланса тут нет )
7) Если 5й и 6й пункт не нашли бисбаланса скобок, то начать сравнение символов начиная с первого и заканчивая символом"#". при этом при обнаружении "(" совершать "open+1" аналогично и для ")" только с close)
8) Как только сравниваемый сивол примит значение "#", сделать сравнение переменных open и close.
9) Если значения переменных равны друг другу. то выдать сообщение об "наличии баланса скобок"
10) Если переменные больше. аналогично и меньше друг друга. то выдать сообщение об "отсутствии баланса"
Среда работы - Microsoft Visual Studio 2008
Буду очень благодарен. если окажете помощь в реализации этой задачи, и ссылками на литературу. в которой как дураку расписано что, как и где нужно напсать. чтоб все написанное заработало. Заранее благодарен)