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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 09.01.2014, 14:02   #1
Радик29
Пользователь
 
Регистрация: 26.12.2012
Сообщений: 90
По умолчанию Разложить функцию в виде дерева C#

Здравствуйте. Мне нужно разложить функцию в виде дерева в Windows Forms, т.е для каждой переменной своя ячейка.
Вот дан код(она выделяет из списка символы и чисел), по которой надо его разложить:
Код:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication13
{
    class Rmat
    {
        public string[,] mat = new string[50, 3];
        public string this[int i, int j]
        {
            get
            {
                return mat[i, j];
            }
            set
            {
                mat[i, j] = value;
            }
        }
    }
    class Rstr
    {
        public string vhod = "((x+y)/(x+1)) - ((x*y-12)/(34+x))";
        // ((x+y)/(x+1)) - ((x*y-12)/(34+x))
        public string[] str = new string[300];
        public string[,] index = new string[50, 2];
        public string[] ident = new string[50];
        public int k = 0;
        public int m = 0;

        public void func()
        {
            for (int i = 0; i < vhod.Length; i++)
            {
                switch (vhod[i])
                {
                    case ')': str[i] = "<)>"; index[i, 0] = ")"; index[i, 1] = "____symbol"; break;
                    case '(': str[i] = "<(>"; index[i, 0] = "("; index[i, 1] = "____symbol"; break;
                    case '+': str[i] = "<+>"; index[i, 0] = "+"; index[i, 1] = "____symbol"; break;
                    case '-': str[i] = "<->"; index[i, 0] = "-"; index[i, 1] = "____symbol"; break;
                    case '/': str[i] = "</>"; index[i, 0] = "/"; index[i, 1] = "____symbol"; break;
                    case '*': str[i] = "<*>"; index[i, 0] = "*"; index[i, 1] = "____symbol"; break;
                }
                switch (vhod[i])
                {
                    case '1': str[i] = "<1>"; index[i, 0] = "1"; index[i, 1] = "____number"; break;
                    case '2': str[i] = "<2>"; index[i, 0] = "2"; index[i, 1] = "____number"; break;
                    case '3': str[i] = "<3>"; index[i, 0] = "3"; index[i, 1] = "____number"; break;
                    case '4': str[i] = "<4>"; index[i, 0] = "4"; index[i, 1] = "____number"; break;
                    case '5': str[i] = "<5>"; index[i, 0] = "5"; index[i, 1] = "____number"; break;
                    case '6': str[i] = "<6>"; index[i, 0] = "6"; index[i, 1] = "____number"; break;
                    case '7': str[i] = "<7>"; index[i, 0] = "7"; index[i, 1] = "____number"; break;
                    case '8': str[i] = "<8>"; index[i, 0] = "8"; index[i, 1] = "____number"; break;
                    case '9': str[i] = "<9>"; index[i, 0] = "9"; index[i, 1] = "____number"; break;
                    case '0': str[i] = "<0>"; index[i, 0] = "0"; index[i, 1] = "____number"; break;
                }
                switch (vhod[i])
                {
                    case 'x': str[i] = "<id,1>"; index[i, 0] = "x"; index[i, 1] = "____index"; break;
                    case 'y': str[i] = "<id,2>"; index[i, 0] = "y"; index[i, 1] = "____index"; break;
                   
                }
                Console.Write("{0,2}", str[i]);
            }
            Console.WriteLine();
            Console.WriteLine();
            Console.WriteLine("LEX tablet");
            for (int i = 0; i < 50; i++)
            {
                Console.WriteLine();
                for (int j = 0; j < 2; j++)
                {
                    Console.Write("{0,2}", index[i, j]);
                }
            }

            for (int i = 0; i < 50; i++)
            {
                switch (index[i, 0])
                {
                    case "x": ident[k] = "x"; k++; break;
                    case "y": ident[k] = "y"; k++; break;
                   
                }
            }
            for (int m = 0; m < ident.Length; m++)
            {
                for (int k = m + 1; k < ident.Length; k++)
                {
                    if (ident[m] == ident[k])
                    {
                        ident[k] = " ";
                    }
                }
            }
            for (int k = 0; k < ident.Length; k++)
            {
                Console.WriteLine("{0,1}", ident[k]);
            }
        }
    }
    class Class1
    {
        static void Main(string[] args)
        {
            Rstr obj1 = new Rstr();
            obj1.func();
            Console.WriteLine();
        }
    }
}
Должен получится так:

Кто нибудь сможет мне помочь?
Радик29 вне форума Ответить с цитированием
Старый 09.01.2014, 14:19   #2
Радик29
Пользователь
 
Регистрация: 26.12.2012
Сообщений: 90
По умолчанию

вот ссылка на картинку http://yadi.sk/d/Y7NFz4mGFhqmk
Радик29 вне форума Ответить с цитированием
Старый 09.01.2014, 20:18   #3
Радик29
Пользователь
 
Регистрация: 26.12.2012
Сообщений: 90
По умолчанию

Прошу прощения,есть код, его надо изменить на мой вид (картинка представлена выше).
Вложения
Тип файла: rar WindowsFormsApplicationopn.rar (239.2 Кб, 7 просмотров)
Радик29 вне форума Ответить с цитированием
Старый 10.01.2014, 17:11   #4
Радик29
Пользователь
 
Регистрация: 26.12.2012
Сообщений: 90
По умолчанию

никто не умеет?
Радик29 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите с ошибками. Разложить функцию e^2x в ряд Тейлора (Маклорена). Паскаль NikSon-xD Помощь студентам 7 24.12.2013 16:30
Файл в виде В-дерева Stalig Фриланс 2 15.05.2013 19:11
Маркированный список в виде дерева c JS! bulat786 JavaScript, Ajax 1 28.02.2012 16:27
Таблица в виде дерева НП... PHP 4 15.06.2010 15:12
Меню в виде дерева pu4koff JavaScript, Ajax 7 16.10.2007 11:24