Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > Общие вопросы .NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 15.11.2010, 22:17   #1
TYMON
Пользователь
 
Регистрация: 19.06.2010
Сообщений: 80
По умолчанию Стэк. Программа и задание внутри. Найти ошибку

{,},[,]
Нужно чтобы программа определила является ли последовательность скобок правильной.
Одна ошибка Ошибка 1 "ConsoleApplication2.Program.WellFo rmed(string)": не все ветви кода возвращают значение C:\Documents and Settings\Admin\Мои документы\Visual Studio 2008\Project \lab5(Alg)\lab5(Alg)\Program.cs 13 21 lab5(Alg)


Код:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
using System.Text.RegularExpressions;
using System.Collections;

namespace ConsoleApplication2
{
    class Program
    {
        static bool WellFormed(string Consistency)
        {
            string str;
            char c;
            Stack s = new Stack();
            str = Console.ReadLine();
            for (int i = 0; i < str.Length; i++)
            {
                if ((str[i] == '[') || (str[i] == '{'))
                {
                    //если это открывающая скобка, то
                    s.Push(str[i]); //помещаем скобку в стек
                }
                else if ( (str[i] == ']') || (str[i] == '}'))
                {
                    //если это закрывающая скобка
                    if (s.Count == 0)
                    {
                        //если стек путстой
                        Console.WriteLine("Не хватает скобки");
                        break;
                    }
                    c = (char)s.Pop();
                    //проверяем соответствие форм
                    if (((c == '{') && (str[i] == '}')) ||
                        ((c == '[') && (str[i] == ']')))
                    {
                        continue;
                    }
                    else
                    {
                        Console.WriteLine("Неверный тип скобки");
                        break;
                    }
                }
                else
                {
                    //если это другой символ
                    continue;
                }
            }
        
        }
        static void Main(string[] args)
        {
            string aString;
            aString = Console.ReadLine();
            if (WellFormed(aString))
                Console.WriteLine("Последовательность {0}	правильно	построена", aString);
            else
                Console.WriteLine("Последовательность {0}	не правильно	построена", aString);

        }
    }
}
TYMON вне форума Ответить с цитированием
Старый 15.11.2010, 22:21   #2
BOBAH13
Android Developer
Старожил Подтвердите свой е-майл
 
Аватар для BOBAH13
 
Регистрация: 19.02.2007
Сообщений: 3,708
По умолчанию

Код:
...
static bool WellFormed(string Consistency)
        {
            string str;
            char c;
            Stack s = new Stack();
            str = Console.ReadLine();
            for (int i = 0; i < str.Length; i++)
            {
                if ((str[i] == '[') || (str[i] == '{'))
                {
                    //если это открывающая скобка, то
                    s.Push(str[i]); //помещаем скобку в стек
                }
                else if ( (str[i] == ']') || (str[i] == '}'))
                {
                    //если это закрывающая скобка
                    if (s.Count == 0)
                    {
                        //если стек путстой
                        Console.WriteLine("Не хватает скобки");
                        break;
                    }
                    c = (char)s.Pop();
                    //проверяем соответствие форм
                    if (((c == '{') && (str[i] == '}')) ||
                        ((c == '[') && (str[i] == ']')))
                    {
                        continue;
                    }
                    else
                    {
                        Console.WriteLine("Неверный тип скобки");
                        break;
                    }
                }
                else
                {
                    //если это другой символ
                    continue;
                }
            }
        return false;
        }
...
Я конечно понимаю все, но где return собственно? Где результат вашей функции.
BOBAH13 вне форума Ответить с цитированием
Старый 15.11.2010, 22:37   #3
TYMON
Пользователь
 
Регистрация: 19.06.2010
Сообщений: 80
По умолчанию

Да не хватало спасибо). Но программа неправильно все равно работает. незнаю шо делать уже
TYMON вне форума Ответить с цитированием
Старый 15.11.2010, 23:11   #4
BOBAH13
Android Developer
Старожил Подтвердите свой е-майл
 
Аватар для BOBAH13
 
Регистрация: 19.02.2007
Сообщений: 3,708
По умолчанию

Цитата:
Сообщение от TYMON Посмотреть сообщение
Да не хватало спасибо). Но программа неправильно все равно работает. незнаю шо делать уже
Если это вы писали самостоятельно алгоритм, данную функцию, или хотя бы вникли и разобрались в ней, то проблем "шо делать уже" не должно возникать.

Подсказка: в нужном месте, где подразумевается, что "все плохо" с аргументов, просто пишите return false; в конце функции, после цикла, пишите return true; что собственно означало бы, что "все хорошо".
BOBAH13 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Очень простая программа, не могу найти ошибку! joker077 Помощь студентам 3 02.07.2010 18:31
Найти ошибку и ещё одно задание на С Lexeres Помощь студентам 1 02.06.2010 20:07
Прошу помочь найти ошибку.Текст внутри BackSlash Помощь студентам 3 21.12.2009 12:13
Задание: найти и исправить ошибку RubIlNick Помощь студентам 0 07.11.2009 15:45
формирование матрицы (задание выполненно не могу найти сваю ошибку) КиношкА Помощь студентам 7 11.01.2008 03:50