Applet pro demonstraci Boyerova-Mooreova algoritmu  1.0
Konstanty.java
Zobrazit dokumentaci tohoto souboru.
1 /******************************************************************************
2  * Název projektu: Aplet pro demonstraci Boyerova-Mooreova algoritmu
3  * Balíček: boyermooredemo
4  * Soubor: Konstanty.java
5  * Datum: 11.4.2008
6  * Poslední změna: 18.4.2008
7  * Autor: Jaroslav Dytrych xdytry00
8  *
9  * Popis: Třída s konstantami (barvy, čísla prvků, texty do panelů, ...)
10  *
11  ******************************************************************************/
12 
13 /**
14  * @file Konstanty.java
15  *
16  * @brief Třída Konstanty - třída s konstantami
17  */
18 
19 package boyermooredemo;
20 
21 import java.awt.Color;
22 
23 /**
24  * Třída s konstantami (barvy, čísla prvků, texty do panelů, ...)
25  *
26  * @brief Třída s konstantami
27  */
28 public class Konstanty {
29  /** Barvy pro textové pole s algoritmem - barva zvýrazněného textu */
30  public static final Color BARVA_ZVYRAZNENI_T = new Color(255,255,255);
31  /** Barvy pro textové pole s algoritmem - barva pozadí zvýrazněného textu */
32  public static final Color BARVA_ZVYRAZNENI_P = new Color(26,6,153);
33  /** Barvy pro textové pole s algoritmem - barva komentářů */
34  public static final Color BARVA_KOMENTARU = new Color(118,118,249);
35  /** Barvy pro textové pole s algoritmem - barva datových typů a modifikátorů */
36  public static final Color BARVA_TYPU = new Color(46,139,87);
37  /** Barvy pro textové pole s algoritmem - barva klíčových slov řídících struktur */
38  public static final Color BARVA_RIDICICH = new Color(165,42,42);
39  /** Barvy pro textové pole s algoritmem - barva literálů */
40  public static final Color BARVA_LITERALU = new Color(255,59,252);
41  /** Barvy pro textové pole s algoritmem - barva zbylého textu (identifikátory, ...) */
42  public static final Color BARVA_CERNA = new Color(0,0,0);
43  /** Barvy pro textové pole s algoritmem - barva pozadí */
44  public static final Color BARVA_BILA = new Color(255,255,255);
45 
46  /** Barvy pro zvýrazňování v tabulkách - barvy proměnných - proměnná i */
47  public static final Color BARVA_I = new Color(99, 255, 99);
48  /** Barvy pro zvýrazňování v tabulkách - barvy proměnných - proměnná j */
49  public static final Color BARVA_J = new Color(115, 255, 255);
50  /** Barvy pro zvýrazňování v tabulkách - barvy proměnných - proměnná i-j+1 */
51  public static final Color BARVA_IJ = new Color(255, 255, 66);
52  /** Barvy pro zvýrazňování v tabulkách - barvy proměnných - proměnná m-j+1 */
53  public static final Color BARVA_MJ = new Color(255, 165, 165);
54  /** Barvy pro zvýrazňování v tabulkách - barvy proměnných - proměnná s */
55  public static final Color BARVA_S = new Color(255, 165, 214);
56  /** Barvy pro zvýrazňování v tabulkách - barvy proměnných - proměnná t */
57  public static final Color BARVA_T = new Color(198, 198, 255);
58  /** Barvy pro zvýrazňování v tabulkách - barvy proměnných - proměnná L */
59  public static final Color BARVA_L = new Color(255, 222, 214);
60  /** Barvy pro zvýrazňování v tabulkách - barvy proměnných - proměnná poz */
61  public static final Color BARVA_POZ = new Color(255, 181, 99);
62 
63  /** Operace změn v GUI (vizualizace) - změna hodnoty políčka v tabulce */
64  public static final int ZM_T_H = 1;
65  /** Operace změn v GUI (vizualizace) - změna barvy políčka v tabulce */
66  public static final int ZM_T_B = 2;
67  /** Operace změn v GUI (vizualizace) - posun řádku tabulky */
68  public static final int ZM_T_P = 3;
69  /** Operace změn v GUI (vizualizace) - změna rozměrů tabulky */
70  public static final int ZM_T_R = 4;
71  /** Operace změn v GUI (vizualizace) - výměna bloku v panelu s algoritmem */
72  public static final int ZM_A_B = 5;
73  /** Operace změn v GUI (vizualizace) - změna zvýrazněného řádku v poli s algoritmem */
74  public static final int ZM_A_Z = 6;
75  /** Operace změn v GUI (vizualizace) - změna hodnoty proměnné */
76  public static final int ZM_P = 7;
77  /** Operace změn v GUI (vizualizace) - změna obsahu pole s nápovědou */
78  public static final int ZM_N = 8;
79  /** Operace změn v GUI (vizualizace) - změna popisku */
80  public static final int ZM_PO = 9;
81 
82  /** Tabulky - tabulkaSR */
83  public static final int TAB_SR = 1;
84  /** Tabulky - tabulkaDelta1 */
85  public static final int TAB_D1 = 2;
86  /** Tabulky - tabulkaDelta2 */
87  public static final int TAB_D2 = 3;
88 
89  /** Políčka s proměnnými - jTextFieldm (proměnná m) */
90  public static final int PROM_M = 1;
91  /** Políčka s proměnnými - jTextFieldn (proměnná n) */
92  public static final int PROM_N = 2;
93  /** Políčka s proměnnými - jTextFieldi (proměnná i) */
94  public static final int PROM_I = 3;
95  /** Políčka s proměnnými - jTextFieldj (proměnná j) */
96  public static final int PROM_J = 4;
97  /** Políčka s proměnnými - jTextFieldij (proměnná i-j+1) */
98  public static final int PROM_IJ = 5;
99  /** Políčka s proměnnými - jTextFieldmj (proměnná m-j+2) */
100  public static final int PROM_MJ = 6;
101  /** Políčka s proměnnými - jTextFields (proměnná s) */
102  public static final int PROM_S = 7;
103  /** Políčka s proměnnými - jTextFieldt (proměnná s) */
104  public static final int PROM_T = 8;
105  /** Políčka s proměnnými - jTextFieldL (proměnná L) */
106  public static final int PROM_L = 9;
107  /** Políčka s proměnnými - jTextFieldpoz (proměnná poz) */
108  public static final int PROM_POZ = 10;
109 
110  /** Měnitelné popisky - popisek jLabelij (má varianty i-j+1 a i+j-1) */
111  public static final int POPISEK_IJ = 1;
112  /** Měnitelné popisky - popisek jLabelmj (má varianty m-j+1 a n-m+1) */
113  public static final int POPISEK_MJ = 2;
114  /** Měnitelné popisky - popisek jLabelL (má varianty L a d1P)*/
115  public static final int POPISEK_L = 3;
116 
117  /** Texty na měnitelné popisky - popisek jLabelij - varianta i-j+1 */
118  public static final String TEXTY_POPISKU_IMJ = "i-j+1 = ";
119  /** Texty na měnitelné popisky - popisek jLabelij - varianta i+j-1 */
120  public static final String TEXTY_POPISKU_IPJ = "i+j-1 = ";
121  /** Texty na měnitelné popisky - popisek jLabelmj - varianta m-j+1 */
122  public static final String TEXTY_POPISKU_MJ = "m-j+1 = ";
123  /** Texty na měnitelné popisky - popisek jLabelmj - varianta n-m+1 */
124  public static final String TEXTY_POPISKU_NM = "n-m+1 = ";
125  /** Texty na měnitelné popisky - popisek jLabelL - varianta L */
126  public static final String TEXTY_POPISKU_L = " L = ";
127  /** Texty na měnitelné popisky - popisek jLabelL - varianta d1p */
128  public static final String TEXTY_POPISKU_D1P = "d1P = ";
129 
130  /** Konstanta pro směr posunu vlevo */
131  public static final int POSUN_VLEVO = 0;
132  /** Konstanta pro směr posunu vpravo */
133  public static final int POSUN_VPRAVO = 1;
134 
135  /** Výchozí rozměry tabulky tabulkaSR */
136  public static final int[] TAB_SR_VR = {2,36};
137  /** Výchozí rozměry tabulky delta1 */
138  public static final int[] TAB_D1_VR = {2,22};
139  /** Výchozí rozměry tabulky delta2 */
140  public static final int[] TAB_D2_VR = {4,22};
141 
142  /**
143  * Pole s nápovědami
144  */
145  public static final String[] textyNapovedy = {
146  /* 0 */ "Návod k použití:\n" +
147  "1. zadejte hledaný řetězec a prohledávaný text\n" +
148  "2. zahajte vizualizaci kliknutím na tlačítko \"Vpřed\"\n" +
149  "3. prohlížejte si vizualizaci klikáním na tlačítka \"Vpřed\" a \"Zpět\"\n" +
150  "4. chcete-li zadat jiný hledaný řetězec, nebo prohledávaný text,\n" +
151  " klikněte na tlačítko \"Reset\" a upravte řetězce dle potřeby",
152  /* 1 */ "Nyní si můžete prohlížet vizualizaci algoritmu pomocí tlačítek\n" +
153  "\"Vpřed\" (provede další krok vizualizace) a \"Zpět\" (návrat o 1 krok). \n" +
154  " Chcete-li změnit vyhledávaný řetězec, nebo prohledávaný text, \n" +
155  "klikněte na tlačítko \"Reset\", upravte řetězce dle potřeby a znovu\n" +
156  "spusťte vizualizaci."
157  }; // textyNapovedy
158 
159  /**
160  * Pole s jednotlivými úseky zdrojového textu algoritmu
161  */
162  public static final String[] textyAlgoritmu = {
163  /* Deklarace proměnných */
164  /* 0: 0 - 2 */ "private char","[] text; ","// prohledávaný text\n",
165  /* 1: 3 - 5 */ "private char","[] pat; ","// hledaný řetězec\n",
166  /* 2: 6 - 8 */ "private int ","m; ","// délka hledaného řetězce\n",
167  /* 3: 9 - 11 */ "private int ","n; ","// délka prohledávaného textu\n",
168  /* 4: 12 - 14 */ "private ","TreeMap<Character,Integer> delta1; ","// kontejner delta1\n",
169  /* 5: 15 - 17 */ "private int ","delta1Jine; ","// delta1 pro znaky, které nejsou v kontejneru\n",
170  /* 6: 18 - 19 */ "private int","[] delta2;\n",
171  /* 7: 20 - 21 */ "private int","[] shoda;\n",
172  /* 8: 22 */ " \n",
173  /* Metoda BMA */
174  /* 9: 23 - 24 */ "public int"," BMA(String P, String T) {\n",
175  /* 10: 25 */ " // inicializace\n",
176  /* 11: 26 - 27 */ " m = P.length(); ","// délka hledaného řetězce\n",
177  /* 12: 28 - 33 */ " pat = ","new ","char","[m + ","1","];\n",
178  /* 13: 34 - 40 */ " for ","(","int"," i = ","0","; i < m; i++) ","// uloží hledaný řetězec do pole pat\n",
179  /* 14: 41 - 43 */ " pat[i+","1","] = P.charAt(i);\n",
180  /* 15: 44 - 45 */ " n = T.length(); ","// délka prohledávaného textu\n",
181  /* 16: 46 - 51 */ " text = ","new ","char","[n + ","1","];\n",
182  /* 17: 52 - 58 */ " for ","(","int ","i = ","0","; i < n; i++) ","// uloží prohledávaný řetězec do pole\n",
183  /* 18: 59 - 61 */ " text[i+","1","] = T.charAt(i);\n",
184  /* 19: 62 */ " \n",
185  /* 20: 63 - 64 */ " vypocetDelta1(); ","// výpočet tabulky delta1\n",
186  /* 21: 65 - 66 */ " vypocetDelta2(); ","// výpočet tabulky delta2\n",
187  /* 22: 67 */ " \n",
188  /* 23: 68 - 72 */ " int ","i = ","1","; ","// pozice v textu\n",
189  /* 24: 73 - 75 */ " int ","j; ","// pozice v pat\n",
190  /* 25: 76 - 77 */ " Integer d1P; ","// pomocná delta1\n",
191  /* 26: 78 - 81 */ " while"," (i <= (n-m+","1",")) { \n",
192  /* 27: 82 */ " j = m;\n",
193  /* 28: 83 - 89 */ " while ","((j >= ","1",") && (pat[j] == text[i+j-","1","])) ","// dokud do chází ke shodě\n",
194  /* 29: 90 - 91 */ " j--; ","// posun na další znak (testuje od konce)\n",
195  /* 30: 92 - 96 */ " if ","(j == ","0",") ","// pokud byl řetězec nalezen\n",
196  /* 31: 97 - 101 */ " return ","i-","1","; ","// řetězec v poli začíná o 1 dál\n",
197  /* 32: 102 - 104 */ " else ","{ ","// pokud řetězec nebyl nalezen\n",
198  /* 33: 105 - 107 */ " d1P = delta1.get(text[i+j-","1","]);\n",
199  /* 34: 108 - 112 */ " if ","(d1P == ","null",") ","// pokud se jedná o znak, který není v kontejneru\n",
200  /* 35: 113 */ " d1P = delta1Jine;\n",
201  /* 36: 114 - 115 */ " i += Math.max(d1P, delta2[j]); ","// posun\n",
202  /* 37: 116 */ " }\n",
203  /* 38: 117 */ " }\n",
204  /* 39: 118 - 121 */ " return ","-1","; ","// řetězec nebyl nalezen\n",
205  /* 40: 122 - 123 */ "} ","// public int BMA()\n",
206  /* 41: 124 */ " \n",
207  /* Metoda pro výpočet delta1 */
208  /* 42: 125 - 126 */ "private void ","vypocetDelta1() {\n",
209  /* 43: 127 */ " // inicializace kontejneru\n",
210  /* 44: 128 - 130 */ " delta1 = ","new ","TreeMap();\n",
211  /* 45: 131 */ " // výpočet pole delta1 (pro velký počet možných znaků je zde toto pole\n",
212  /* 46: 132 */ " // nahrazeno kontejnerem pro uvedené znaky a proměnnou pro hodnotu\n",
213  /* 47: 133 */ " // delta1 neuvedených (jiných) znaků)\n",
214  /* 48: 134 - 140 */ " for ","(","int ","i = ","1","; i <= m; i++) { ","// výpočet delta1\n",
215  /* 49: 141 */ " delta1.put(pat[i],(m-i));\n",
216  /* 50: 142 */ " }\n",
217  /* 51: 143 */ " delta1Jine = m;\n",
218  /* 52: 144 - 145 */ "} ","// private void vypocetDelta1()\n",
219  /* 53: 146 */ " \n",
220  /* Metoda pro výpočet delta2 */
221  /* 54: 147 - 148 */ "private void ","vypocetDelta2() {\n",
222  /* 55: 149 */ " // inicializace polí\n",
223  /* 56: 150 - 155 */ " delta2 = ","new ","int","[m+","1","];\n",
224  /* 57: 156 - 161 */ " shoda = ","new ","int","[m+","1","];\n",
225  /* 58: 162 - 164 */ " shoda[m] = ","0",";\n",
226  /* 59: 165 - 167 */ " delta2[m] = ","1",";\n",
227  /* 60: 168 - 175 */ " for ","(","int ","j = ","0","; j <= (m-","1","); j++) {\n",
228  /* 61: 176 - 178 */ " shoda[j] = ","1",";\n",
229  /* 62: 179 */ " delta2[j] = m;\n",
230  /* 63: 180 */ " }\n",
231  /* 64: 181 */ " // fáze 1: hledání podřetězců shodných s koncem pat\n",
232  /* 65: 182 - 186 */ " int ","j = ","1","; ","// index, od kterého se pat kontroluje\n",
233  /* 66: 187 - 191 */ " int ","i = m-","1","; ","// počet shodných znaků\n",
234  /* 67: 192 - 193 */ " while ","(i >= j) {\n",
235  /* 68: 194 - 200 */ " while ","((i >= j) && (pat[m-j+","1","] == pat[i-j+","1","])) { ","// hlední nejdelší shody\n",
236  /* 69: 201 */ " j++;\n",
237  /* 70: 202 - 204 */ " shoda[i-j+","1","] = j;\n",
238  /* 71: 205 */ " }\n",
239  /* 72: 206 - 210 */ " if ","(j > ","1",") ","// pokud byla nalezena shoda, provede aktualizaci\n",
240  /* 73: 211 - 215 */ " delta2[m-j+","1","] = Math.min(m-i, delta2[m-j+","1","]);\n",
241  /* 74: 216 - 218 */ " i = i-j+shoda[m-j+","1","];\n",
242  /* 75: 219 - 223 */ " j = Math.max(shoda[m-j+","1","],","1",");\n",
243  /* 76: 224 */ " }\n",
244  /* 77: 225 */ " // fáze 2: výpočet tabulky posunutí\n",
245  /* 78: 226 - 230 */ " int ","t = shoda[","0","]; ","// délka shodného řetězce s koncem pat\n",
246  /* 79: 231 - 235 */ " int ","L = ","1","; ","// aktuální znak pat\n",
247  /* 80: 236 - 238 */ " int ","s; ","// maximální posunutí úseku\n",
248  /* 81: 239 - 242 */ " while ","(t > ","0",") {\n",
249  /* 82: 243 - 245 */ " s = m-t+","1",";\n",
250  /* 83: 246 - 247 */ " for ","(j = L; j <= s; j++) {\n",
251  /* 84: 248 */ " delta2[j] = Math.min(delta2[j], s);\n",
252  /* 85: 249 */ " }\n",
253  /* 86: 250 */ " t = shoda[s];\n",
254  /* 87: 251 - 253 */ " L = s+","1",";\n",
255  /* 88: 254 */ " }\n",
256  /* 89: 255 - 256 */ "} ","// private void vypocetDelta2()"
257  }; // textyAlgoritmu
258 
259 
260  /**
261  * Pole s barvami jednotlivých úseků textu algoritmu
262  */
263  public static final Color[] barvyAlgoritmu = {
264  /* Deklarace proměnných */
265  /* 0: 0 - 2 */ BARVA_TYPU,BARVA_CERNA,BARVA_KOMENTARU,
266  /* 1: 3 - 5 */ BARVA_TYPU,BARVA_CERNA,BARVA_KOMENTARU,
267  /* 2: 6 - 8 */ BARVA_TYPU,BARVA_CERNA,BARVA_KOMENTARU,
268  /* 3: 9 - 11 */ BARVA_TYPU,BARVA_CERNA,BARVA_KOMENTARU,
269  /* 4: 12 - 14 */ BARVA_TYPU,BARVA_CERNA,BARVA_KOMENTARU,
270  /* 5: 15 - 17 */ BARVA_TYPU,BARVA_CERNA,BARVA_KOMENTARU,
271  /* 6: 18 - 19 */ BARVA_TYPU,BARVA_CERNA,
272  /* 7: 20 - 21 */ BARVA_TYPU,BARVA_CERNA,
273  /* 8: 22 */ BARVA_CERNA,
274  /* Metoda BMA */
275  /* 9: 23 - 24 */ BARVA_TYPU,BARVA_CERNA,
276  /* 10: 25 */ BARVA_KOMENTARU,
277  /* 11: 26 - 27 */ BARVA_CERNA,BARVA_KOMENTARU,
280  /* 14: 41 - 43 */ BARVA_CERNA,BARVA_LITERALU,BARVA_CERNA,
281  /* 15: 44 - 45 */ BARVA_CERNA,BARVA_KOMENTARU,
284  /* 18: 59 - 61 */ BARVA_CERNA,BARVA_LITERALU,BARVA_CERNA,
285  /* 19: 62 */ BARVA_CERNA,
286  /* 20: 63 - 64 */ BARVA_CERNA,BARVA_KOMENTARU,
287  /* 21: 65 - 66 */ BARVA_CERNA,BARVA_KOMENTARU,
288  /* 22: 67 */ BARVA_CERNA,
290  /* 24: 73 - 75 */ BARVA_TYPU,BARVA_CERNA,BARVA_KOMENTARU,
291  /* 25: 76 - 77 */ BARVA_CERNA,BARVA_KOMENTARU,
293  /* 27: 82 */ BARVA_CERNA,
295  /* 29: 90 - 91 */ BARVA_CERNA,BARVA_KOMENTARU,
298  /* 32: 102 - 104 */ BARVA_RIDICICH,BARVA_CERNA,BARVA_KOMENTARU,
299  /* 33: 105 - 107 */ BARVA_CERNA,BARVA_LITERALU,BARVA_CERNA,
301  /* 35: 113 */ BARVA_CERNA,
302  /* 36: 114 - 115 */ BARVA_CERNA,BARVA_KOMENTARU,
303  /* 37: 116 */ BARVA_CERNA,
304  /* 38: 117 */ BARVA_CERNA,
306  /* 40: 122 - 123 */ BARVA_CERNA,BARVA_KOMENTARU,
307  /* 41: 124 */ BARVA_CERNA,
308  /* Metoda pro výpočet delta1 */
309  /* 42: 125 - 126 */ BARVA_TYPU,BARVA_CERNA,
310  /* 43: 127 */ BARVA_KOMENTARU,
311  /* 44: 128 - 130 */ BARVA_CERNA,BARVA_RIDICICH,BARVA_CERNA,
312  /* 45: 131 */ BARVA_KOMENTARU,
313  /* 46: 132 */ BARVA_KOMENTARU,
314  /* 47: 133 */ BARVA_KOMENTARU,
316  /* 49: 141 */ BARVA_CERNA,
317  /* 50: 142 */ BARVA_CERNA,
318  /* 51: 143 */ BARVA_CERNA,
319  /* 52: 144 - 145 */ BARVA_CERNA,BARVA_KOMENTARU,
320  /* 53: 146 */ BARVA_CERNA,
321  /* Metoda pro výpočet delta2 */
322  /* 54: 147 - 148 */ BARVA_TYPU,BARVA_CERNA,
323  /* 55: 149 */ BARVA_KOMENTARU,
326  /* 58: 162 - 164 */ BARVA_CERNA,BARVA_LITERALU,BARVA_CERNA,
327  /* 59: 165 - 167 */ BARVA_CERNA,BARVA_LITERALU,BARVA_CERNA,
329  /* 61: 176 - 178 */ BARVA_CERNA,BARVA_LITERALU,BARVA_CERNA,
330  /* 62: 179 */ BARVA_CERNA,
331  /* 63: 180 */ BARVA_CERNA,
332  /* 64: 181 */ BARVA_KOMENTARU,
335  /* 67: 192 - 193 */ BARVA_RIDICICH,BARVA_CERNA,
337  /* 69: 201 */ BARVA_CERNA,
338  /* 70: 202 - 204 */ BARVA_CERNA,BARVA_LITERALU,BARVA_CERNA,
339  /* 71: 205 */ BARVA_CERNA,
342  /* 74: 216 - 218 */ BARVA_CERNA,BARVA_LITERALU,BARVA_CERNA,
344  /* 76: 224 */ BARVA_CERNA,
345  /* 77: 225 */ BARVA_KOMENTARU,
348  /* 80: 236 - 238 */ BARVA_TYPU,BARVA_CERNA,BARVA_KOMENTARU,
350  /* 82: 243 - 245 */ BARVA_CERNA,BARVA_LITERALU,BARVA_CERNA,
351  /* 83: 246 - 247 */ BARVA_RIDICICH,BARVA_CERNA,
352  /* 84: 248 */ BARVA_CERNA,
353  /* 85: 249 */ BARVA_CERNA,
354  /* 86: 250 */ BARVA_CERNA,
355  /* 87: 251 - 253 */ BARVA_CERNA,BARVA_LITERALU,BARVA_CERNA,
356  /* 88: 254 */ BARVA_CERNA,
357  /* 89: 255 - 256 */ BARVA_CERNA,BARVA_KOMENTARU
358  }; // barvyAlgoritmu
359 
360 
361  /**
362  * Pole s označeními tučných úseků textu algoritmu
363  */
364  public static final boolean[] tucneCastiAlgoritmu = {
365  /* Deklarace proměnných */
366  /* 0: 0 - 2 */ true,false,false,
367  /* 1: 3 - 5 */ true,false,false,
368  /* 2: 6 - 8 */ true,false,false,
369  /* 3: 9 - 11 */ true,false,false,
370  /* 4: 12 - 14 */ true,false,false,
371  /* 5: 15 - 17 */ true,false,false,
372  /* 6: 18 - 19 */ true,false,
373  /* 7: 20 - 21 */ true,false,
374  /* 8: 22 */ false,
375  /* Metoda BMA */
376  /* 9: 23 - 24 */ true,false,
377  /* 10: 25 */ false,
378  /* 11: 26 - 27 */ false,false,
379  /* 12: 28 - 33 */ false,true,true,false,false,false,
380  /* 13: 34 - 40 */ true,false,true,false,false,false,false,
381  /* 14: 41 - 43 */ false,false,false,
382  /* 15: 44 - 45 */ false,false,
383  /* 16: 46 - 51 */ false,true,true,false,false,false,
384  /* 17: 52 - 58 */ true,false,true,false,false,false,false,
385  /* 18: 59 - 61 */ false,false,false,
386  /* 19: 62 */ false,
387  /* 20: 63 - 64 */ false,false,
388  /* 21: 65 - 66 */ false,false,
389  /* 22: 67 */ false,
390  /* 23: 68 - 72 */ true,false,false,false,false,
391  /* 24: 73 - 75 */ true,false,false,
392  /* 25: 76 - 77 */ false,false,
393  /* 26: 78 - 81 */ true,false,false,false,
394  /* 27: 82 */ false,
395  /* 28: 83 - 89 */ true,false,false,false,false,false,false,
396  /* 29: 90 - 91 */ false,false,
397  /* 30: 92 - 96 */ true,false,false,false,false,
398  /* 31: 97 - 101 */ true,false,false,false,false,
399  /* 32: 102 - 104 */ true,false,false,
400  /* 33: 105 - 107 */ false,false,false,
401  /* 34: 108 - 112 */ true,false,false,false,false,
402  /* 35: 113 */ false,
403  /* 36: 114 - 115 */ false,false,
404  /* 37: 116 */ false,
405  /* 38: 117 */ false,
406  /* 39: 118 - 121 */ true,false,false,false,
407  /* 40: 122 - 123 */ false,false,
408  /* 41: 124 */ false,
409  /* Metoda pro výpočet delta1 */
410  /* 42: 125 - 126 */ true,false,
411  /* 43: 127 */ false,
412  /* 44: 128 - 130 */ false,true,false,
413  /* 45: 131 */ false,
414  /* 46: 132 */ false,
415  /* 47: 133 */ false,
416  /* 48: 134 - 140 */ true,false,true,false,false,false,false,
417  /* 49: 141 */ false,
418  /* 50: 142 */ false,
419  /* 51: 143 */ false,
420  /* 52: 144 - 145 */ false,false,
421  /* 53: 146 */ false,
422  /* Metoda pro výpočet delta2 */
423  /* 54: 147 - 148 */ true,false,
424  /* 55: 149 */ false,
425  /* 56: 150 - 155 */ false,true,true,false,false,false,
426  /* 57: 156 - 161 */ false,true,true,false,false,false,
427  /* 58: 162 - 164 */ false,false,false,
428  /* 59: 165 - 167 */ false,false,false,
429  /* 60: 168 - 175 */ true,false,true,false,false,false,false,false,
430  /* 61: 176 - 178 */ false,false,false,
431  /* 62: 179 */ false,
432  /* 63: 180 */ false,
433  /* 64: 181 */ false,
434  /* 65: 182 - 186 */ true,false,false,false,false,
435  /* 66: 187 - 191 */ true,false,false,false,false,
436  /* 67: 192 - 193 */ true,false,
437  /* 68: 194 - 200 */ true,false,false,false,false,false,false,
438  /* 69: 201 */ false,
439  /* 70: 202 - 204 */ false,false,false,
440  /* 71: 205 */ false,
441  /* 72: 206 - 210 */ true,false,false,false,false,
442  /* 73: 211 - 215 */ false,false,false,false,false,
443  /* 74: 216 - 218 */ false,false,false,
444  /* 75: 219 - 223 */ false,false,false,false,false,
445  /* 76: 224 */ false,
446  /* 77: 225 */ false,
447  /* 78: 226 - 230 */ true,false,false,false,false,
448  /* 79: 231 - 235 */ true,false,false,false,false,
449  /* 80: 236 - 238 */ true,false,false,
450  /* 81: 239 - 242 */ true,false,false,false,
451  /* 82: 243 - 245 */ false,false,false,
452  /* 83: 246 - 247 */ true,false,
453  /* 84: 248 */ false,
454  /* 85: 249 */ false,
455  /* 86: 250 */ false,
456  /* 87: 251 - 253 */ false,false,false,
457  /* 88: 254 */ false,
458  /* 89: 255 - 256 */ false,false
459  }; // tucneCastiAlgoritmu
460 
461 
462  /**
463  * Pole se začátky a konci řádků algoritmu (pro zvýrazňování)
464  */
465  public static final int[][] radkyAlgoritmu = {
466  /* Deklarace proměnných */
467  /* 0 */ {0,2},
468  /* 1 */ {3,5},
469  /* 2 */ {6,8},
470  /* 3 */ {9,11},
471  /* 4 */ {12,14},
472  /* 5 */ {15,17},
473  /* 6 */ {18,19},
474  /* 7 */ {20,21},
475  /* 8 */ {22,22},
476  /* Metoda BMA */
477  /* 9 */ {23,24},
478  /* 10 */ {25,25},
479  /* 11 */ {26,27},
480  /* 12 */ {28,33},
481  /* 13 */ {34,40},
482  /* 14 */ {41,43},
483  /* 15 */ {44,45},
484  /* 16 */ {46,51},
485  /* 17 */ {52,58},
486  /* 18 */ {59,61},
487  /* 19 */ {62,62},
488  /* 20 */ {63,64},
489  /* 21 */ {65,66},
490  /* 22 */ {67,67},
491  /* 23 */ {68,72},
492  /* 24 */ {73,75},
493  /* 25 */ {76,77},
494  /* 26 */ {78,81},
495  /* 27 */ {82,82},
496  /* 28 */ {83,89},
497  /* 29 */ {90,91},
498  /* 30 */ {92,96},
499  /* 31 */ {97,101},
500  /* 32 */ {102,104},
501  /* 33 */ {105,107},
502  /* 34 */ {108,112},
503  /* 35 */ {113,113},
504  /* 36 */ {114,115},
505  /* 37 */ {116,116},
506  /* 38 */ {117,117},
507  /* 39 */ {118,121},
508  /* 40 */ {122,123},
509  /* 41 */ {124,124},
510  /* Metoda pro výpočet delta1 */
511  /* 42 */ {125,126},
512  /* 43 */ {127,127},
513  /* 44 */ {128,130},
514  /* 45 */ {131,131},
515  /* 46 */ {132,132},
516  /* 47 */ {133,133},
517  /* 48 */ {134,140},
518  /* 49 */ {141,141},
519  /* 50 */ {142,142},
520  /* 51 */ {143,143},
521  /* 52 */ {144,145},
522  /* 53 */ {146,146},
523  /* Metoda pro výpočet delta2 */
524  /* 54 */ {147,148},
525  /* 55 */ {149,149},
526  /* 56 */ {150,155},
527  /* 57 */ {156,161},
528  /* 58 */ {162,164},
529  /* 59 */ {165,167},
530  /* 60 */ {168,175},
531  /* 61 */ {176,178},
532  /* 62 */ {179,179},
533  /* 63 */ {180,180},
534  /* 64 */ {181,181},
535  /* 65 */ {182,186},
536  /* 66 */ {187,191},
537  /* 67 */ {192,193},
538  /* 68 */ {194,200},
539  /* 69 */ {201,201},
540  /* 70 */ {202,204},
541  /* 71 */ {205,205},
542  /* 72 */ {206,210},
543  /* 73 */ {211,215},
544  /* 74 */ {216,218},
545  /* 75 */ {219,223},
546  /* 76 */ {224,224},
547  /* 77 */ {225,225},
548  /* 78 */ {226,230},
549  /* 79 */ {231,235},
550  /* 80 */ {236,238},
551  /* 81 */ {239,242},
552  /* 82 */ {243,245},
553  /* 83 */ {246,247},
554  /* 84 */ {248,248},
555  /* 85 */ {249,249},
556  /* 86 */ {250,250},
557  /* 87 */ {251,253},
558  /* 88 */ {254,254},
559  /* 89 */ {255,256}
560  }; // radkyAlgoritmu
561 
562  /**
563  * Pole se začátky a konci bloků algoritmu (pro vypisování)
564  */
565  public static final int[][] blokyAlgoritmu = {
566  /* 0 */ {0,22}, // deklarace proměnných
567  /* 1 */ {23,124}, // Metoda BMA
568  /* 2 */ {125,146}, // Metoda pro výpočet delta1
569  /* 3 */ {147,256}, // Metoda pro výpočet delta2
570  };
571 
572  /** Názvy bloků zdrojového kódu BMA - blok s deklaracemi */
573  public static final int BLOK_DEKLARACE = 0;
574  /** Názvy bloků zdrojového kódu BMA - blok s algoritmem hledání řetězce */
575  public static final int BLOK_BMA = 1;
576  /** Názvy bloků zdrojového kódu BMA - blok s výpočtem tabulky delta1 */
577  public static final int BLOK_DELTA1 = 2;
578  /** Názvy bloků zdrojového kódu BMA - blok s výpočtem tabulky delta2 */
579  public static final int BLOK_DELTA2 = 3;
580 
581  /**
582  * Konstanta pro reprezentaci řádku mimo algoritmus (pro zvýrazňování)
583  */
584  public static final int ZADNY_RADEK = 900;
585 
586  /**
587  * Řetězec pro záhlaví sloupce pro jiné znaky v tabulce delta1
588  */
589  public static final String JINE_ZNAKY = "jiné znaky";
590 
591  /**
592  * Konstruktor třídy (třída obsahuje pouze konstanty, konstruktor je tedy
593  * prázdný)
594  */
595  public Konstanty() {
596  }
597 
598 } // public class Konstanty
599 
600 /*** Konec souboru Konstanty.java ***/
static final int PROM_IJ
Definition: Konstanty.java:98
static final int ZADNY_RADEK
Definition: Konstanty.java:584
static final int ZM_T_H
Definition: Konstanty.java:64
static final int ZM_P
Definition: Konstanty.java:76
static final int POPISEK_L
Definition: Konstanty.java:115
static final int [] TAB_D2_VR
Definition: Konstanty.java:140
static final Color BARVA_ZVYRAZNENI_T
Definition: Konstanty.java:30
static final Color BARVA_L
Definition: Konstanty.java:59
static final int PROM_S
Definition: Konstanty.java:102
static final int ZM_T_R
Definition: Konstanty.java:70
static final Color BARVA_IJ
Definition: Konstanty.java:51
static final int [] TAB_D1_VR
Definition: Konstanty.java:138
static final String TEXTY_POPISKU_MJ
Definition: Konstanty.java:122
static final Color BARVA_I
Definition: Konstanty.java:47
static final int BLOK_DELTA1
Definition: Konstanty.java:577
static final int TAB_D1
Definition: Konstanty.java:85
static final String JINE_ZNAKY
Definition: Konstanty.java:589
static final int PROM_POZ
Definition: Konstanty.java:108
static final int POSUN_VPRAVO
Definition: Konstanty.java:133
static final String TEXTY_POPISKU_IPJ
Definition: Konstanty.java:120
static final int TAB_D2
Definition: Konstanty.java:87
static final Color BARVA_MJ
Definition: Konstanty.java:53
static final int [] TAB_SR_VR
Definition: Konstanty.java:136
static final int PROM_L
Definition: Konstanty.java:106
static final int ZM_T_P
Definition: Konstanty.java:68
static final int PROM_I
Definition: Konstanty.java:94
static final String [] textyAlgoritmu
Definition: Konstanty.java:162
static final boolean [] tucneCastiAlgoritmu
Definition: Konstanty.java:364
static final Color BARVA_CERNA
Definition: Konstanty.java:42
static final int ZM_PO
Definition: Konstanty.java:80
static final int [][] blokyAlgoritmu
Definition: Konstanty.java:565
static final int ZM_N
Definition: Konstanty.java:78
static final int PROM_M
Definition: Konstanty.java:90
static final String TEXTY_POPISKU_D1P
Definition: Konstanty.java:128
static final String TEXTY_POPISKU_NM
Definition: Konstanty.java:124
static final Color BARVA_LITERALU
Definition: Konstanty.java:40
static final int BLOK_BMA
Definition: Konstanty.java:575
static final Color BARVA_RIDICICH
Definition: Konstanty.java:38
static final int PROM_J
Definition: Konstanty.java:96
static final int [][] radkyAlgoritmu
Definition: Konstanty.java:465
static final int PROM_T
Definition: Konstanty.java:104
static final int BLOK_DEKLARACE
Definition: Konstanty.java:573
static final int POSUN_VLEVO
Definition: Konstanty.java:131
static final int POPISEK_MJ
Definition: Konstanty.java:113
static final String [] textyNapovedy
Definition: Konstanty.java:145
static final int POPISEK_IJ
Definition: Konstanty.java:111
static final Color BARVA_KOMENTARU
Definition: Konstanty.java:34
static final Color [] barvyAlgoritmu
Definition: Konstanty.java:263
static final int ZM_A_B
Definition: Konstanty.java:72
static final int TAB_SR
Definition: Konstanty.java:83
static final Color BARVA_S
Definition: Konstanty.java:55
static final int PROM_MJ
Definition: Konstanty.java:100
static final int PROM_N
Definition: Konstanty.java:92
static final int ZM_T_B
Definition: Konstanty.java:66
static final int ZM_A_Z
Definition: Konstanty.java:74
static final Color BARVA_BILA
Definition: Konstanty.java:44
static final Color BARVA_J
Definition: Konstanty.java:49
static final int BLOK_DELTA2
Definition: Konstanty.java:579
static final Color BARVA_T
Definition: Konstanty.java:57
static final Color BARVA_ZVYRAZNENI_P
Definition: Konstanty.java:32
Třída s konstantami.
Definition: Konstanty.java:28
static final Color BARVA_POZ
Definition: Konstanty.java:61
static final String TEXTY_POPISKU_IMJ
Definition: Konstanty.java:118
static final Color BARVA_TYPU
Definition: Konstanty.java:36
static final String TEXTY_POPISKU_L
Definition: Konstanty.java:126