Форум программистов, компьютерный форум CyberForum.ru

Ошибка в парсере формулы - Android

Войти
Регистрация
Восстановить пароль
Другие темы раздела
Android хочу заказать приложения http://www.cyberforum.ru/android-dev/thread758292.html
Приветствую форумчан. Хотел бы заказать приложения под андроид. Тема прогнозы на спорт. Для публикации на плей маркет.Хотелось бы услышать примерную стоимость моей хотелки.
Android Не работает виртуальное устройство в eclipse Здравствуйте. У меня такая проблема: я запускаю в eclipse сценарий hello world,после этого появляется такой лог с ошибкой в конце: ------------------------------ Android Launch! adb is running normally. Performing com.app.helloworld.MainActivity activity launch Automatic Target Mode: launching new emulator with compatible AVD '12345' Launching a new emulator with Virtual Device... http://www.cyberforum.ru/android-dev/thread758032.html
Ошибка при запуске программы эмуляторе Android (ADV) Android
Добрый день! Подскажите, пож-та. Есть необходимость запустить лаунчер TSF Shell, но он выдает ошибку при запуске.. скриншот прилагаю. Для примера GO launcher устанавливается без проблем.. что я не так делаю?
Android Как сделать выгрузку строк из файла в приложении
Добрый вечер! Прошу помощи, решил написать простое приложение под андройд. Вот суть программы: есть файлик list.txt и папка, например Lib в ней лежат картинки, мне нужно чтобы при запуске приложение считывало все строки с файла list.txt и выводила их на как ссылке, на картинки в папке, картинки. А при клике на название из списка list, происходил переход на картинку . Что я уже сделал:...
Android создание ViewPager http://www.cyberforum.ru/android-dev/thread757303.html
здравствуйте,возник вопрос по ViewPager. Не получается добавить компоненты после ViewPager, т.е Статический компонент вверху и внизу,а по середине будет ViewPager,который и будет пролистываться? ViewPager получаю с помощью LayoutInfliter. Добавлено через 14 минут Забыл сказать,что ViewPager содержит GridView
Android Нет плавности в передвижении персонажа Здравствуйте. Вот решил освоить андроид программирование. Прикладное программирование более менее понял, написал для себя программу нужную. Вот решил поиграться с игровыми моментами. Решил сделать просто колобка, который двигается по экрану. В общем, все нормально, нашел в интернете пример змейки, сделал по этому примеру своего колобка, но движения не плавные. Причем игрался со всем: и со... подробнее

Показать сообщение отдельно
contedevel
57 / 55 / 8
Регистрация: 07.10.2012
Сообщений: 590

Ошибка в парсере формулы - Android

11.01.2013, 00:13. Просмотров 470. Ответов 8
Метки (Все метки)

Здравствуйте! Помогите понять, где ошибка, пожалуйста...
Пишу обозреватель дерева парсера математических формул, вот код самого узла дерева и построителя:
Кликните здесь для просмотра всего текста
Java
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
62
63
64
65
66
67
68
/**
 * @author ConteDevel
 * @version 1.0.0
 * @class Tree
 */
package ru.contedevel.mathworker.libs;
 
import java.util.ArrayList;
 
public class Tree {
//children
    private ArrayList<Tree> children;
    //parent
    private Tree parent;
    //value of tree
    public String str;
    
    //Constructor #1
    public Tree() {
        str = null;
        children = new ArrayList <Tree> ();
        parent = new Tree();
    }
    
    //Constructor #2
    public Tree(String str, Tree parent) {
        this.str = str;
        children = new ArrayList <Tree> ();
        this.parent = parent;
    }
    
    //Constructor #3
    public Tree(String str, ArrayList<Tree> children, Tree parent) {
        this.str = str;
        this.children = children;
        this.parent = parent;
    }
    
    //Get child-tree
    public Tree getChildById(int position) {
        return children.get(position);
    }
    
    //Get child-tree collection
    public ArrayList<Tree> getChildren() {
        return this.children;
    }
    
    //Add child
    public void addChild(Tree child) {
        children.add(child);
    }
    
    //Set parent
    public void setParent(Tree parent) {
        this.parent = parent;
    }
    
    //Set children
    public void setChildren(ArrayList<Tree> children) {
        this.children = children;
    }
    
    //Is empty
    public boolean isEmpty() {
        return children.isEmpty();
    }
}
Java
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
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
/**
 * @author ConteDevel
 * @version 1.0.0
 * @class TreeBuilder
 */
package ru.contedevel.mathworker.libs;
 
public class TreeBuilder {
    //the mathematical formula
    private String formula;
    //tree
    private Tree tree;
    
    //constructor
    public TreeBuilder(String tmp) {
        //copy
        formula = tmp;
        //initialization of tree
        tree = new Tree();
        //start of building
        tree = building(formula, tree);
    }
    
    //get tree
    public Tree getTree() {
        return this.tree;
    }
    
    //function of building
    private Tree building(String tmp, Tree parent) {
        //positions
        int x1 = 0, x2 = 0;
        //child position
        int position_child = 0;
        //start
        for(int i = 0; i < tmp.length(); i++) {
            //if find symbol '('
            if(tmp.charAt(i) == '(' && x1 <= i) {
                x2 = i;
                //create node
                parent.addChild(new Tree(tmp.substring(x1, x2), parent));
                position_child++;
                x1 = x2 + 1;
                //counter brackets
                int counter = 0;
                //search of close brackets
                for (int j = x1; j < tmp.length(); j++) {
                    if(tmp.charAt(j) == '(') {
                        counter++;
                    }
                    else if(tmp.charAt(j) == ')' && counter != 0) {
                        counter--;
                    }
                    else if(tmp.charAt(j) == ')' && counter == 0) {
                        x2 = j;
                        break;
                    }
                }
                //recursion
                //building(tmp.substring(x1, x2), parent.getChildById(position_child - 1));
                //recalculating position
                x1 = x2;
            }
            
            //if find symbol '+'
            if(tmp.charAt(i) == '+' && x1 <= i) {
                //recalculating positions
                x1 = x2 = i + 1;
                //create node
                parent.addChild(new Tree("+", parent));
                position_child++;
            }
            
            //if find symbol '-'
            if(tmp.charAt(i) == '-' && x1 <= i) {
                //recalculating positions
                x1 = x2 = i + 1;
                //create node
                parent.addChild(new Tree("-", parent));
                position_child++;
            }
            
            //if find symbol '*'
            if(tmp.charAt(i) == '*' && x1 <= i) {
                //recalculating positions
                x1 = x2 = i + 1;
                //create node
                parent.addChild(new Tree("*", parent));
                position_child++;
            }
            
            //if find symbol '/'
            if(tmp.charAt(i) == '/' && x1 <= i) {
                //recalculating positions
                x1 = x2 = i + 1;
                //create node
                parent.addChild(new Tree("/", parent));
                position_child++;
            }
        }
        return parent;
    }
}

Вот код тестового адаптера, который, должен выводить значения потомков корня дерева в ListView:
Кликните здесь для просмотра всего текста
Java
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
62
63
64
65
66
67
68
69
70
71
72
73
74
75
/**
 * @author ConteDevel
 * @version 1.0.0
 * @class TreeAdapter
 */
package ru.contedevel.mathworker;
 
import java.util.ArrayList;
import ru.contedevel.mathworker.libs.Tree;
import ru.contedevel.mathworker.libs.TreeBuilder;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.TextView;
 
public class TreeAdapter extends BaseAdapter {
    //Context
    Context ctx;
    //Inflater
    LayoutInflater inflater;
    //Tree
    private Tree tree;
    //String arrays
    private ArrayList<String> list;
    
    //Constructor
    public TreeAdapter(String str) {
        TreeBuilder tb = new TreeBuilder(str);
        tree = tb.getTree();
        
        //Initialization of list
        list = new ArrayList<String> ();
        list.add("<---");
        //Create the highest array
        if(!tree.isEmpty()) {
            for(int i = 0; i < tree.getChildren().size(); i++) {
                list.add(tree.getChildById(i).str);
            }
        }
    }
 
    @Override
    public int getCount() {
        // TODO Auto-generated method stub
        return list.size();
    }
 
    @Override
    public Object getItem(int position) {
        // TODO Auto-generated method stub
        return list.get(position);
    }
 
    @Override
    public long getItemId(int position) {
        // TODO Auto-generated method stub
        return position;
    }
 
    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        // TODO Auto-generated method stub
        View view = convertView;
        if(view == null) {
            view = inflater.inflate(android.R.layout.simple_list_item_1, parent, false);
        }
        
        TextView tv = (TextView) view.findViewById(android.R.id.text1);
        tv.setText(list.get(position));
        return view;
    }
    
}


Вот список ошибок:
Кликните здесь для просмотра всего текста
01-09 03:18:37.174: I/Process(396): Sending signal. PID: 396 SIG: 9
01-09 03:24:42.435: W/KeyCharacterMap(439): No keyboard for id 0
01-09 03:24:42.445: W/KeyCharacterMap(439): Using default keymap: /system/usr/keychars/qwerty.kcm.bin
01-09 03:24:46.565: I/dalvikvm(439): Stack overflow, expanding (0x41049200 to 0x41049000)
01-09 03:24:46.565: I/dalvikvm(439): Shrank stack (to 0x41049200, curFrame is 0x4104bddc)
01-09 03:24:46.565: D/AndroidRuntime(439): Shutting down VM
01-09 03:24:46.565: W/dalvikvm(439): threadid=3: thread exiting with uncaught exception (group=0x4001b188)
01-09 03:24:46.565: E/AndroidRuntime(439): Uncaught handler: thread main exiting due to uncaught exception
01-09 03:24:46.675: D/dalvikvm(439): GC freed 4062 objects / 312840 bytes in 49ms
01-09 03:24:46.705: E/AndroidRuntime(439): java.lang.StackOverflowError
01-09 03:24:46.705: E/AndroidRuntime(439): at java.util.AbstractList.<init>(AbstractList.java:383)
01-09 03:24:46.705: E/AndroidRuntime(439): at java.util.ArrayList.<init>(ArrayList.java:67)
01-09 03:24:46.705: E/AndroidRuntime(439): at java.util.ArrayList.<init>(ArrayList.java:56)
01-09 03:24:46.705: E/AndroidRuntime(439): at ru.contedevel.mathworker.libs.Tree.<init>(Tree.java:21)
01-09 03:24:46.705: E/AndroidRuntime(439): at ru.contedevel.mathworker.libs.Tree.<init>(Tree.java:22)
01-09 03:24:46.705: E/AndroidRuntime(439): at ru.contedevel.mathworker.libs.Tree.<init>(Tree.java:22)
01-09 03:24:46.705: E/AndroidRuntime(439): at ru.contedevel.mathworker.libs.Tree.<init>(Tree.java:22)
01-09 03:24:46.705: E/AndroidRuntime(439): at ru.contedevel.mathworker.libs.Tree.<init>(Tree.java:22)
01-09 03:24:46.705: E/AndroidRuntime(439): at ru.contedevel.mathworker.libs.Tree.<init>(Tree.java:22)
01-09 03:24:46.705: E/AndroidRuntime(439): at ru.contedevel.mathworker.libs.Tree.<init>(Tree.java:22)
01-09 03:24:46.705: E/AndroidRuntime(439): at ru.contedevel.mathworker.libs.Tree.<init>(Tree.java:22)
01-09 03:24:46.705: E/AndroidRuntime(439): at ru.contedevel.mathworker.libs.Tree.<init>(Tree.java:22)
01-09 03:24:46.705: E/AndroidRuntime(439): at ru.contedevel.mathworker.libs.Tree.<init>(Tree.java:22)
01-09 03:24:46.705: E/AndroidRuntime(439): at ru.contedevel.mathworker.libs.Tree.<init>(Tree.java:22)
01-09 03:24:46.705: E/AndroidRuntime(439): at ru.contedevel.mathworker.libs.Tree.<init>(Tree.java:22)
01-09 03:24:46.705: E/AndroidRuntime(439): at ru.contedevel.mathworker.libs.Tree.<init>(Tree.java:22)
01-09 03:24:46.705: E/AndroidRuntime(439): at ru.contedevel.mathworker.libs.Tree.<init>(Tree.java:22)
01-09 03:24:46.705: E/AndroidRuntime(439): at ru.contedevel.mathworker.libs.Tree.<init>(Tree.java:22)
01-09 03:24:46.705: E/AndroidRuntime(439): at ru.contedevel.mathworker.libs.Tree.<init>(Tree.java:22)
01-09 03:24:46.705: E/AndroidRuntime(439): at ru.contedevel.mathworker.libs.Tree.<init>(Tree.java:22)
01-09 03:24:46.705: E/AndroidRuntime(439): at ru.contedevel.mathworker.libs.Tree.<init>(Tree.java:22)
01-09 03:24:46.705: E/AndroidRuntime(439): at ru.contedevel.mathworker.libs.Tree.<init>(Tree.java:22)
01-09 03:24:46.705: E/AndroidRuntime(439): at ru.contedevel.mathworker.libs.Tree.<init>(Tree.java:22)
01-09 03:24:46.705: E/AndroidRuntime(439): at ru.contedevel.mathworker.libs.Tree.<init>(Tree.java:22)
01-09 03:24:46.705: E/AndroidRuntime(439): at ru.contedevel.mathworker.libs.Tree.<init>(Tree.java:22)
01-09 03:24:46.705: E/AndroidRuntime(439): at ru.contedevel.mathworker.libs.Tree.<init>(Tree.java:22)
01-09 03:24:46.705: E/AndroidRuntime(439): at ru.contedevel.mathworker.libs.Tree.<init>(Tree.java:22)
01-09 03:24:46.705: E/AndroidRuntime(439): at ru.contedevel.mathworker.libs.Tree.<init>(Tree.java:22)
01-09 03:24:46.705: E/AndroidRuntime(439): at ru.contedevel.mathworker.libs.Tree.<init>(Tree.java:22)
01-09 03:24:46.705: E/AndroidRuntime(439): at ru.contedevel.mathworker.libs.Tree.<init>(Tree.java:22)
01-09 03:24:46.705: E/AndroidRuntime(439): at ru.contedevel.mathworker.libs.Tree.<init>(Tree.java:22)
01-09 03:24:46.705: E/AndroidRuntime(439): at ru.contedevel.mathworker.libs.Tree.<init>(Tree.java:22)
01-09 03:24:46.705: E/AndroidRuntime(439): at ru.contedevel.mathworker.libs.Tree.<init>(Tree.java:22)
01-09 03:24:46.705: E/AndroidRuntime(439): at ru.contedevel.mathworker.libs.Tree.<init>(Tree.java:22)
01-09 03:24:46.705: E/AndroidRuntime(439): at ru.contedevel.mathworker.libs.Tree.<init>(Tree.java:22)
01-09 03:24:46.705: E/AndroidRuntime(439): at ru.contedevel.mathworker.libs.Tree.<init>(Tree.java:22)
01-09 03:24:46.705: E/AndroidRuntime(439): at ru.contedevel.mathworker.libs.Tree.<init>(Tree.java:22)
01-09 03:24:46.705: E/AndroidRuntime(439): at ru.contedevel.mathworker.libs.Tree.<init>(Tree.java:22)
01-09 03:24:46.705: E/AndroidRuntime(439): at ru.contedevel.mathworker.libs.Tree.<init>(Tree.java:22)
01-09 03:24:46.705: E/AndroidRuntime(439): at ru.contedevel.mathworker.libs.Tree.<init>(Tree.java:22)
01-09 03:24:46.705: E/AndroidRuntime(439): at ru.contedevel.mathworker.libs.Tree.<init>(Tree.java:22)
01-09 03:24:46.705: E/AndroidRuntime(439): at ru.contedevel.mathworker.libs.Tree.<init>(Tree.java:22)
01-09 03:24:46.705: E/AndroidRuntime(439): at ru.contedevel.mathworker.libs.Tree.<init>(Tree.java:22)
01-09 03:24:46.705: E/AndroidRuntime(439): at ru.contedevel.mathworker.libs.Tree.<init>(Tree.java:22)
01-09 03:24:46.705: E/AndroidRuntime(439): at ru.contedevel.mathworker.libs.Tree.<init>(Tree.java:22)
01-09 03:24:46.705: E/AndroidRuntime(439): at ru.contedevel.mathworker.libs.Tree.<init>(Tree.java:22)
01-09 03:24:46.705: E/AndroidRuntime(439): at ru.contedevel.mathworker.libs.Tree.<init>(Tree.java:22)
01-09 03:24:46.705: E/AndroidRuntime(439): at ru.contedevel.mathworker.libs.Tree.<init>(Tree.java:22)
01-09 03:24:46.705: E/AndroidRuntime(439): at ru.contedevel.mathworker.libs.Tree.<init>(Tree.java:22)
01-09 03:24:46.705: E/AndroidRuntime(439): at ru.contedevel.mathworker.libs.Tree.<init>(Tree.java:22)
01-09 03:24:46.705: E/AndroidRuntime(439): at ru.contedevel.mathworker.libs.Tree.<init>(Tree.java:22)
01-09 03:24:46.705: E/AndroidRuntime(439): at ru.contedevel.mathworker.libs.Tree.<init>(Tree.java:22)
01-09 03:24:46.705: E/AndroidRuntime(439): at ru.contedevel.mathworker.libs.Tree.<init>(Tree.java:22)
01-09 03:24:46.705: E/AndroidRuntime(439): at ru.contedevel.mathworker.libs.Tree.<init>(Tree.java:22)
01-09 03:24:46.705: E/AndroidRuntime(439): at ru.contedevel.mathworker.libs.Tree.<init>(Tree.java:22)
01-09 03:24:46.705: E/AndroidRuntime(439): at ru.contedevel.mathworker.libs.Tree.<init>(Tree.java:22)
01-09 03:24:46.705: E/AndroidRuntime(439): at ru.contedevel.mathworker.libs.Tree.<init>(Tree.java:22)
01-09 03:24:46.705: E/AndroidRuntime(439): at ru.contedevel.mathworker.libs.Tree.<init>(Tree.java:22)
01-09 03:24:46.705: E/AndroidRuntime(439): at ru.contedevel.mathworker.libs.Tree.<init>(Tree.java:22)
01-09 03:24:46.705: E/AndroidRuntime(439): at ru.contedevel.mathworker.libs.Tree.<init>(Tree.java:22)
01-09 03:24:46.705: E/AndroidRuntime(439): at ru.contedevel.mathworker.libs.Tree.<init>(Tree.java:22)
01-09 03:24:46.705: E/AndroidRuntime(439): at ru.contedevel.mathworker.libs.Tree.<init>(Tree.java:22)
01-09 03:24:46.705: E/AndroidRuntime(439): at ru.contedevel.mathworker.libs.Tree.<init>(Tree.java:22)
01-09 03:24:46.705: E/AndroidRuntime(439): at ru.contedevel.mathworker.libs.Tree.<init>(Tree.java:22)
01-09 03:24:46.705: E/AndroidRuntime(439): at ru.contedevel.mathworker.libs.Tree.<init>(Tree.java:22)
01-09 03:24:46.705: E/AndroidRuntime(439): at ru.contedevel.mathworker.libs.Tree.<init>(Tree.java:22)
01-09 03:24:46.705: E/AndroidRuntime(439): at ru.contedevel.mathworker.libs.Tree.<init>(Tree.java:22)
01-09 03:24:46.705: E/AndroidRuntime(439): at ru.contedevel.mathworker.libs
01-09 03:24:46.784: I/dalvikvm(439): threadid=7: reacting to signal 3
01-09 03:24:46.784: E/dalvikvm(439): Unable to open stack trace file '/data/anr/traces.txt': Permission denied
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru