• Hlavní stránka
  • Balíky
  • Třídy
  • Soubory
  • Seznam souborů

Konstanty.java

Zobrazit dokumentaci tohoto souboru.
00001 /******************************************************************************
00002  * Název projektu: Aplet pro demonstraci Boyerova-Mooreova algoritmu
00003  * Balíček: boyermooredemo
00004  * Soubor: Konstanty.java
00005  * Datum:  11.4.2008
00006  * Poslední změna: 18.4.2008
00007  * Autor:  Jaroslav Dytrych xdytry00
00008  *
00009  * Popis: Třída s konstantami (barvy, čísla prvků, texty do panelů, ...)
00010  *
00011  ******************************************************************************/
00012 
00013 /**
00014  * @file Konstanty.java
00015  * 
00016  * @brief Třída Konstanty - třída s konstantami
00017  */
00018 
00019 package boyermooredemo;
00020 
00021 import java.awt.Color;
00022 
00023 /**
00024  * Třída s konstantami (barvy, čísla prvků, texty do panelů, ...)
00025  * 
00026  * @brief Třída s konstantami
00027  */
00028 public class Konstanty {
00029   /** Barvy pro textové pole s algoritmem - barva zvýrazněného textu */
00030   public static final Color BARVA_ZVYRAZNENI_T = new Color(255,255,255);
00031   /** Barvy pro textové pole s algoritmem - barva pozadí zvýrazněného textu */
00032   public static final Color BARVA_ZVYRAZNENI_P = new Color(26,6,153);
00033   /** Barvy pro textové pole s algoritmem - barva komentářů */
00034   public static final Color BARVA_KOMENTARU = new Color(118,118,249);
00035   /** Barvy pro textové pole s algoritmem - barva datových typů a modifikátorů */
00036   public static final Color BARVA_TYPU = new Color(46,139,87);
00037   /** Barvy pro textové pole s algoritmem - barva klíčových slov řídících struktur */
00038   public static final Color BARVA_RIDICICH = new Color(165,42,42);
00039   /** Barvy pro textové pole s algoritmem - barva literálů */
00040   public static final Color BARVA_LITERALU = new Color(255,59,252);  
00041   /** Barvy pro textové pole s algoritmem - barva zbylého textu (identifikátory, ...) */
00042   public static final Color BARVA_CERNA = new Color(0,0,0);
00043    /** Barvy pro textové pole s algoritmem - barva pozadí */
00044   public static final Color BARVA_BILA = new Color(255,255,255);
00045 
00046   /** Barvy pro zvýrazňování v tabulkách - barvy proměnných - proměnná i */
00047   public static final Color BARVA_I = new Color(99, 255, 99);
00048   /** Barvy pro zvýrazňování v tabulkách - barvy proměnných - proměnná j */
00049   public static final Color BARVA_J = new Color(115, 255, 255);
00050   /** Barvy pro zvýrazňování v tabulkách - barvy proměnných - proměnná i-j+1 */
00051   public static final Color BARVA_IJ = new Color(255, 255, 66);
00052   /** Barvy pro zvýrazňování v tabulkách - barvy proměnných - proměnná m-j+1 */
00053   public static final Color BARVA_MJ = new Color(255, 165, 165);
00054   /** Barvy pro zvýrazňování v tabulkách - barvy proměnných - proměnná s */
00055   public static final Color BARVA_S = new Color(255, 165, 214);  
00056   /** Barvy pro zvýrazňování v tabulkách - barvy proměnných - proměnná t */
00057   public static final Color BARVA_T = new Color(198, 198, 255);  
00058   /** Barvy pro zvýrazňování v tabulkách - barvy proměnných - proměnná L */
00059   public static final Color BARVA_L = new Color(255, 222, 214);  
00060   /** Barvy pro zvýrazňování v tabulkách - barvy proměnných - proměnná poz */
00061   public static final Color BARVA_POZ = new Color(255, 181, 99);  
00062   
00063   /** Operace změn v GUI (vizualizace) - změna hodnoty políčka v tabulce */
00064   public static final int ZM_T_H = 1;
00065   /** Operace změn v GUI (vizualizace) - změna barvy políčka v tabulce */
00066   public static final int ZM_T_B = 2;
00067   /** Operace změn v GUI (vizualizace) - posun řádku tabulky */
00068   public static final int ZM_T_P = 3;
00069   /** Operace změn v GUI (vizualizace) - změna rozměrů tabulky */
00070   public static final int ZM_T_R = 4;
00071   /** Operace změn v GUI (vizualizace) - výměna bloku v panelu s algoritmem */
00072   public static final int ZM_A_B = 5;
00073   /** Operace změn v GUI (vizualizace) - změna zvýrazněného řádku v poli s algoritmem */
00074   public static final int ZM_A_Z = 6;
00075   /** Operace změn v GUI (vizualizace) - změna hodnoty proměnné */
00076   public static final int ZM_P = 7;
00077   /** Operace změn v GUI (vizualizace) - změna obsahu pole s nápovědou */
00078   public static final int ZM_N = 8;
00079   /** Operace změn v GUI (vizualizace) - změna popisku */
00080   public static final int ZM_PO = 9;
00081   
00082   /** Tabulky - tabulkaSR  */
00083   public static final int TAB_SR = 1;
00084   /** Tabulky - tabulkaDelta1  */
00085   public static final int TAB_D1 = 2;
00086   /** Tabulky - tabulkaDelta2  */
00087   public static final int TAB_D2 = 3;
00088   
00089   /** Políčka s proměnnými - jTextFieldm (proměnná m) */
00090   public static final int PROM_M = 1;
00091   /** Políčka s proměnnými - jTextFieldn (proměnná n) */
00092   public static final int PROM_N = 2;
00093   /** Políčka s proměnnými - jTextFieldi (proměnná i) */
00094   public static final int PROM_I = 3;
00095   /** Políčka s proměnnými - jTextFieldj (proměnná j) */
00096   public static final int PROM_J = 4;
00097   /** Políčka s proměnnými - jTextFieldij (proměnná i-j+1) */
00098   public static final int PROM_IJ = 5;
00099   /** Políčka s proměnnými - jTextFieldmj (proměnná m-j+2) */
00100   public static final int PROM_MJ = 6;
00101   /** Políčka s proměnnými - jTextFields (proměnná s) */
00102   public static final int PROM_S = 7;
00103   /** Políčka s proměnnými - jTextFieldt (proměnná s) */
00104   public static final int PROM_T = 8;
00105   /** Políčka s proměnnými - jTextFieldL (proměnná L) */
00106   public static final int PROM_L = 9;
00107   /** Políčka s proměnnými - jTextFieldpoz (proměnná poz) */
00108   public static final int PROM_POZ = 10;
00109   
00110   /** Měnitelné popisky - popisek jLabelij (má varianty i-j+1 a i+j-1) */
00111   public static final int POPISEK_IJ = 1;
00112   /** Měnitelné popisky - popisek jLabelmj (má varianty m-j+1 a n-m+1) */
00113   public static final int POPISEK_MJ = 2;
00114   /** Měnitelné popisky - popisek jLabelL (má varianty L a d1P)*/
00115   public static final int POPISEK_L = 3;
00116   
00117   /** Texty na měnitelné popisky - popisek jLabelij - varianta i-j+1 */
00118   public static final String TEXTY_POPISKU_IMJ = "i-j+1 = ";
00119   /** Texty na měnitelné popisky - popisek jLabelij - varianta i+j-1 */
00120   public static final String TEXTY_POPISKU_IPJ = "i+j-1 = ";
00121   /** Texty na měnitelné popisky - popisek jLabelmj - varianta m-j+1 */
00122   public static final String TEXTY_POPISKU_MJ = "m-j+1 = ";
00123   /** Texty na měnitelné popisky - popisek jLabelmj - varianta n-m+1 */
00124   public static final String TEXTY_POPISKU_NM = "n-m+1 = ";
00125   /** Texty na měnitelné popisky - popisek jLabelL - varianta L */
00126   public static final String TEXTY_POPISKU_L = "     L = ";
00127   /** Texty na měnitelné popisky - popisek jLabelL - varianta d1p */
00128   public static final String TEXTY_POPISKU_D1P = "d1P = ";
00129   
00130   /** Konstanta pro směr posunu vlevo */
00131   public static final int POSUN_VLEVO = 0;
00132   /** Konstanta pro směr posunu vpravo */
00133   public static final int POSUN_VPRAVO = 1;
00134   
00135   /** Výchozí rozměry tabulky tabulkaSR */
00136   public static final int[] TAB_SR_VR = {2,36};
00137   /** Výchozí rozměry tabulky delta1 */
00138   public static final int[] TAB_D1_VR = {2,22};
00139   /** Výchozí rozměry tabulky delta2 */
00140   public static final int[] TAB_D2_VR = {4,22};
00141   
00142   /**
00143    * Pole s nápovědami
00144    */
00145   public static final String[] textyNapovedy = {
00146     /* 0 */ "Návod k použití:\n" + 
00147             "1. zadejte hledaný řetězec a prohledávaný text\n" + 
00148             "2. zahajte vizualizaci kliknutím na tlačítko \"Vpřed\"\n" + 
00149             "3. prohlížejte si vizualizaci klikáním na tlačítka \"Vpřed\" a \"Zpět\"\n" + 
00150             "4. chcete-li zadat jiný hledaný řetězec, nebo prohledávaný text,\n" + 
00151             "    klikněte na tlačítko \"Reset\" a upravte řetězce dle potřeby",
00152     /* 1 */ "Nyní si můžete prohlížet vizualizaci algoritmu pomocí tlačítek\n" + 
00153             "\"Vpřed\" (provede další krok vizualizace) a \"Zpět\" (návrat o 1 krok). \n" + 
00154             "     Chcete-li změnit vyhledávaný řetězec, nebo prohledávaný text, \n" + 
00155             "klikněte na tlačítko \"Reset\", upravte řetězce dle potřeby a znovu\n" + 
00156             "spusťte vizualizaci."
00157   };  // textyNapovedy
00158   
00159   /**
00160    * Pole s jednotlivými úseky zdrojového textu algoritmu
00161    */
00162   public static final String[] textyAlgoritmu = {
00163     /* Deklarace proměnných  */
00164     /*  0:  0 -  2 */ "private char","[] text;  ","// prohledávaný text\n",
00165     /*  1:  3 -  5 */ "private char","[] pat;  ","// hledaný řetězec\n",
00166     /*  2:  6 -  8 */ "private int ","m;  ","// délka hledaného řetězce\n",
00167     /*  3:  9 - 11 */ "private int ","n;  ","// délka prohledávaného textu\n",
00168     /*  4: 12 - 14 */ "private ","TreeMap<Character,Integer> delta1;  ","// kontejner delta1\n",
00169     /*  5: 15 - 17 */ "private int ","delta1Jine;  ","// delta1 pro znaky, které nejsou v kontejneru\n",
00170     /*  6: 18 - 19 */ "private int","[] delta2;\n",
00171     /*  7: 20 - 21 */ "private int","[] shoda;\n",
00172     /*  8:      22 */ "  \n",
00173     /* Metoda BMA */
00174     /*  9: 23 - 24 */ "public int"," BMA(String P, String T) {\n",
00175     /* 10:      25 */ "  // inicializace\n",
00176     /* 11: 26 - 27 */ "  m = P.length();  ","// délka hledaného řetězce\n",
00177     /* 12: 28 - 33 */ "  pat = ","new ","char","[m + ","1","];\n",
00178     /* 13: 34 - 40 */ "  for ","(","int"," i = ","0","; i < m; i++)  ","// uloží hledaný řetězec do pole pat\n",
00179     /* 14: 41 - 43 */ "    pat[i+","1","] = P.charAt(i);\n",
00180     /* 15: 44 - 45 */ "  n = T.length();  ","// délka prohledávaného textu\n",
00181     /* 16: 46 - 51 */ "  text = ","new ","char","[n + ","1","];\n",
00182     /* 17: 52 - 58 */ "  for ","(","int ","i = ","0","; i < n; i++)  ","// uloží prohledávaný řetězec do pole\n",
00183     /* 18: 59 - 61 */ "    text[i+","1","] = T.charAt(i);\n",
00184     /* 19:      62 */ "  \n",
00185     /* 20: 63 - 64 */ "  vypocetDelta1();  ","// výpočet tabulky delta1\n",
00186     /* 21: 65 - 66 */ "  vypocetDelta2();  ","// výpočet tabulky delta2\n",
00187     /* 22:      67 */ "  \n",
00188     /* 23: 68 - 72 */ "  int ","i = ","1",";  ","// pozice v textu\n",
00189     /* 24: 73 - 75 */ "  int ","j;  ","// pozice v pat\n",
00190     /* 25: 76 - 77 */ "  Integer d1P;  ","// pomocná delta1\n",
00191     /* 26: 78 - 81 */ "  while"," (i <= (n-m+","1",")) {  \n",
00192     /* 27:      82 */ "    j = m;\n",
00193     /* 28: 83 - 89 */ "    while ","((j >= ","1",") && (pat[j] == text[i+j-","1","]))  ","// dokud do chází ke shodě\n",
00194     /* 29: 90 - 91 */ "      j--;  ","// posun na další znak (testuje od konce)\n",
00195     /* 30: 92 - 96 */ "    if ","(j == ","0",")  ","// pokud byl řetězec nalezen\n",
00196     /* 31:  97 - 101 */ "      return ","i-","1",";  ","// řetězec v poli začíná o 1 dál\n",
00197     /* 32: 102 - 104 */ "    else ","{  ","// pokud řetězec nebyl nalezen\n",
00198     /* 33: 105 - 107 */ "      d1P = delta1.get(text[i+j-","1","]);\n",
00199     /* 34: 108 - 112 */ "      if ","(d1P == ","null",")  ","// pokud se jedná o znak, který není v kontejneru\n",
00200     /* 35:       113 */ "        d1P = delta1Jine;\n",
00201     /* 36: 114 - 115 */ "      i += Math.max(d1P, delta2[j]);  ","// posun\n",
00202     /* 37:       116 */ "    }\n",
00203     /* 38:       117 */ "  }\n",
00204     /* 39: 118 - 121 */ "  return ","-1",";  ","// řetězec nebyl nalezen\n",
00205     /* 40: 122 - 123 */ "}  ","// public int BMA()\n",
00206     /* 41:       124 */ "  \n",
00207     /* Metoda pro výpočet delta1 */
00208     /* 42: 125 - 126 */ "private void ","vypocetDelta1()  {\n",
00209     /* 43:       127 */ "  // inicializace kontejneru\n",
00210     /* 44: 128 - 130 */ "  delta1 = ","new ","TreeMap();\n",
00211     /* 45:       131 */ "  // výpočet pole delta1 (pro velký počet možných znaků je zde toto pole\n",
00212     /* 46:       132 */ "  // nahrazeno kontejnerem pro uvedené znaky a proměnnou pro hodnotu\n",
00213     /* 47:       133 */ "  // delta1 neuvedených (jiných) znaků)\n",    
00214     /* 48: 134 - 140 */ "  for ","(","int ","i = ","1","; i <= m; i++) {  ","// výpočet delta1\n",
00215     /* 49:       141 */ "    delta1.put(pat[i],(m-i));\n",
00216     /* 50:       142 */ "  }\n",        
00217     /* 51:       143 */ "  delta1Jine = m;\n",    
00218     /* 52: 144 - 145 */ "}  ","// private void vypocetDelta1()\n",
00219     /* 53:       146 */ "  \n",
00220     /* Metoda pro výpočet delta2 */
00221     /* 54: 147 - 148 */ "private void ","vypocetDelta2() {\n",
00222     /* 55:       149 */ "  // inicializace polí\n",
00223     /* 56: 150 - 155 */ "  delta2 = ","new ","int","[m+","1","];\n",
00224     /* 57: 156 - 161 */ "  shoda = ","new ","int","[m+","1","];\n",
00225     /* 58: 162 - 164 */ "  shoda[m] = ","0",";\n",
00226     /* 59: 165 - 167 */ "  delta2[m] = ","1",";\n",
00227     /* 60: 168 - 175 */ "  for ","(","int ","j = ","0","; j <= (m-","1","); j++)  {\n",
00228     /* 61: 176 - 178 */ "    shoda[j] = ","1",";\n",
00229     /* 62:       179 */ "    delta2[j] = m;\n",
00230     /* 63:       180 */ "  }\n",
00231     /* 64:       181 */ "  // fáze 1: hledání podřetězců shodných s koncem pat\n",
00232     /* 65: 182 - 186 */ "  int ","j = ","1",";  ","// index, od kterého se pat kontroluje\n",
00233     /* 66: 187 - 191 */ "  int ","i = m-","1",";  ","// počet shodných znaků\n",
00234     /* 67: 192 - 193 */ "  while ","(i >= j) {\n",
00235     /* 68: 194 - 200 */ "    while ","((i >= j) && (pat[m-j+","1","] == pat[i-j+","1","])) {  ","// hlední nejdelší shody\n",
00236     /* 69:       201 */ "      j++;\n",
00237     /* 70: 202 - 204 */ "      shoda[i-j+","1","] = j;\n",
00238     /* 71:       205 */ "    }\n",
00239     /* 72: 206 - 210 */ "    if ","(j > ","1",") ","// pokud byla nalezena shoda, provede aktualizaci\n",
00240     /* 73: 211 - 215 */ "      delta2[m-j+","1","] = Math.min(m-i, delta2[m-j+","1","]);\n",
00241     /* 74: 216 - 218 */ "    i = i-j+shoda[m-j+","1","];\n",
00242     /* 75: 219 - 223 */ "    j = Math.max(shoda[m-j+","1","],","1",");\n",
00243     /* 76:       224 */ "  }\n",
00244     /* 77:       225 */ "  // fáze 2: výpočet tabulky posunutí\n",
00245     /* 78: 226 - 230 */ "  int ","t = shoda[","0","];  ","// délka shodného řetězce s koncem pat\n",
00246     /* 79: 231 - 235 */ "  int ","L = ","1",";  ","// aktuální znak pat\n",
00247     /* 80: 236 - 238 */ "  int ","s;  ","// maximální posunutí úseku\n",
00248     /* 81: 239 - 242 */ "  while ","(t > ","0",") {\n",
00249     /* 82: 243 - 245 */ "    s = m-t+","1",";\n",
00250     /* 83: 246 - 247 */ "    for ","(j = L; j <= s; j++) {\n",
00251     /* 84:       248 */ "      delta2[j] = Math.min(delta2[j], s);\n",
00252     /* 85:       249 */ "    }\n",
00253     /* 86:       250 */ "    t = shoda[s];\n",
00254     /* 87: 251 - 253 */ "    L = s+","1",";\n",
00255     /* 88:       254 */ "  }\n",
00256     /* 89: 255 - 256 */ "}  ","// private void vypocetDelta2()"
00257   };  // textyAlgoritmu
00258   
00259   
00260   /**
00261    * Pole s barvami jednotlivých úseků textu algoritmu
00262    */
00263   public static final Color[] barvyAlgoritmu = {
00264     /* Deklarace proměnných  */
00265     /*  0:  0 -  2 */ BARVA_TYPU,BARVA_CERNA,BARVA_KOMENTARU,
00266     /*  1:  3 -  5 */ BARVA_TYPU,BARVA_CERNA,BARVA_KOMENTARU,
00267     /*  2:  6 -  8 */ BARVA_TYPU,BARVA_CERNA,BARVA_KOMENTARU,
00268     /*  3:  9 - 11 */ BARVA_TYPU,BARVA_CERNA,BARVA_KOMENTARU,
00269     /*  4: 12 - 14 */ BARVA_TYPU,BARVA_CERNA,BARVA_KOMENTARU,
00270     /*  5: 15 - 17 */ BARVA_TYPU,BARVA_CERNA,BARVA_KOMENTARU,
00271     /*  6: 18 - 19 */ BARVA_TYPU,BARVA_CERNA,
00272     /*  7: 20 - 21 */ BARVA_TYPU,BARVA_CERNA,
00273     /*  8:      22 */ BARVA_CERNA,
00274     /* Metoda BMA */
00275     /*  9: 23 - 24 */ BARVA_TYPU,BARVA_CERNA,
00276     /* 10:      25 */ BARVA_KOMENTARU,
00277     /* 11: 26 - 27 */ BARVA_CERNA,BARVA_KOMENTARU,
00278     /* 12: 28 - 33 */ BARVA_CERNA,BARVA_RIDICICH,BARVA_TYPU,BARVA_CERNA,BARVA_LITERALU,BARVA_CERNA,
00279     /* 13: 34 - 40 */ BARVA_RIDICICH,BARVA_CERNA,BARVA_TYPU,BARVA_CERNA,BARVA_LITERALU,BARVA_CERNA,BARVA_KOMENTARU,
00280     /* 14: 41 - 43 */ BARVA_CERNA,BARVA_LITERALU,BARVA_CERNA,
00281     /* 15: 44 - 45 */ BARVA_CERNA,BARVA_KOMENTARU,
00282     /* 16: 46 - 51 */ BARVA_CERNA,BARVA_RIDICICH,BARVA_TYPU,BARVA_CERNA,BARVA_LITERALU,BARVA_CERNA,
00283     /* 17: 52 - 58 */ BARVA_RIDICICH,BARVA_CERNA,BARVA_TYPU,BARVA_CERNA,BARVA_LITERALU,BARVA_CERNA,BARVA_KOMENTARU,
00284     /* 18: 59 - 61 */ BARVA_CERNA,BARVA_LITERALU,BARVA_CERNA,
00285     /* 19:      62 */ BARVA_CERNA,
00286     /* 20: 63 - 64 */ BARVA_CERNA,BARVA_KOMENTARU,
00287     /* 21: 65 - 66 */ BARVA_CERNA,BARVA_KOMENTARU,
00288     /* 22:      67 */ BARVA_CERNA,
00289     /* 23: 68 - 72 */ BARVA_TYPU,BARVA_CERNA,BARVA_LITERALU,BARVA_CERNA,BARVA_KOMENTARU,
00290     /* 24: 73 - 75 */ BARVA_TYPU,BARVA_CERNA,BARVA_KOMENTARU,
00291     /* 25: 76 - 77 */ BARVA_CERNA,BARVA_KOMENTARU,
00292     /* 26: 78 - 81 */ BARVA_RIDICICH,BARVA_CERNA,BARVA_LITERALU,BARVA_CERNA,
00293     /* 27:      82 */ BARVA_CERNA,
00294     /* 28: 83 - 89 */ BARVA_RIDICICH,BARVA_CERNA,BARVA_LITERALU,BARVA_CERNA,BARVA_LITERALU,BARVA_CERNA,BARVA_KOMENTARU,
00295     /* 29: 90 - 91 */ BARVA_CERNA,BARVA_KOMENTARU,
00296     /* 30: 92 - 96 */ BARVA_RIDICICH,BARVA_CERNA,BARVA_LITERALU,BARVA_CERNA,BARVA_KOMENTARU,
00297     /* 31:  97 - 101 */ BARVA_RIDICICH,BARVA_CERNA,BARVA_LITERALU,BARVA_CERNA,BARVA_KOMENTARU,
00298     /* 32: 102 - 104 */ BARVA_RIDICICH,BARVA_CERNA,BARVA_KOMENTARU,
00299     /* 33: 105 - 107 */ BARVA_CERNA,BARVA_LITERALU,BARVA_CERNA,
00300     /* 34: 108 - 112 */ BARVA_RIDICICH,BARVA_CERNA,BARVA_LITERALU,BARVA_CERNA,BARVA_KOMENTARU,
00301     /* 35:       113 */ BARVA_CERNA,
00302     /* 36: 114 - 115 */ BARVA_CERNA,BARVA_KOMENTARU,
00303     /* 37:       116 */ BARVA_CERNA,
00304     /* 38:       117 */ BARVA_CERNA,
00305     /* 39: 118 - 121 */ BARVA_RIDICICH,BARVA_LITERALU,BARVA_CERNA,BARVA_KOMENTARU,
00306     /* 40: 122 - 123 */ BARVA_CERNA,BARVA_KOMENTARU,
00307     /* 41:       124 */ BARVA_CERNA,
00308     /* Metoda pro výpočet delta1 */
00309     /* 42: 125 - 126 */ BARVA_TYPU,BARVA_CERNA,
00310     /* 43:       127 */ BARVA_KOMENTARU,
00311     /* 44: 128 - 130 */ BARVA_CERNA,BARVA_RIDICICH,BARVA_CERNA,
00312     /* 45:       131 */ BARVA_KOMENTARU,
00313     /* 46:       132 */ BARVA_KOMENTARU,
00314     /* 47:       133 */ BARVA_KOMENTARU,
00315     /* 48: 134 - 140 */ BARVA_RIDICICH,BARVA_CERNA,BARVA_TYPU,BARVA_CERNA,BARVA_LITERALU,BARVA_CERNA,BARVA_KOMENTARU,
00316     /* 49:       141 */ BARVA_CERNA,
00317     /* 50:       142 */ BARVA_CERNA,
00318     /* 51:       143 */ BARVA_CERNA,
00319     /* 52: 144 - 145 */ BARVA_CERNA,BARVA_KOMENTARU,
00320     /* 53:       146 */ BARVA_CERNA,
00321     /* Metoda pro výpočet delta2 */
00322     /* 54: 147 - 148 */ BARVA_TYPU,BARVA_CERNA,
00323     /* 55:       149 */ BARVA_KOMENTARU,
00324     /* 56: 150 - 155 */ BARVA_CERNA,BARVA_RIDICICH,BARVA_TYPU,BARVA_CERNA,BARVA_LITERALU,BARVA_CERNA,
00325     /* 57: 156 - 161 */ BARVA_CERNA,BARVA_RIDICICH,BARVA_TYPU,BARVA_CERNA,BARVA_LITERALU,BARVA_CERNA,
00326     /* 58: 162 - 164 */ BARVA_CERNA,BARVA_LITERALU,BARVA_CERNA,
00327     /* 59: 165 - 167 */ BARVA_CERNA,BARVA_LITERALU,BARVA_CERNA,
00328     /* 60: 168 - 175 */ BARVA_RIDICICH,BARVA_CERNA,BARVA_TYPU,BARVA_CERNA,BARVA_LITERALU,BARVA_CERNA,BARVA_LITERALU,BARVA_CERNA,
00329     /* 61: 176 - 178 */ BARVA_CERNA,BARVA_LITERALU,BARVA_CERNA,
00330     /* 62:       179 */ BARVA_CERNA,
00331     /* 63:       180 */ BARVA_CERNA,
00332     /* 64:       181 */ BARVA_KOMENTARU,
00333     /* 65: 182 - 186 */ BARVA_TYPU,BARVA_CERNA,BARVA_LITERALU,BARVA_CERNA,BARVA_KOMENTARU,
00334     /* 66: 187 - 191 */ BARVA_TYPU,BARVA_CERNA,BARVA_LITERALU,BARVA_CERNA,BARVA_KOMENTARU,
00335     /* 67: 192 - 193 */ BARVA_RIDICICH,BARVA_CERNA,
00336     /* 68: 194 - 200 */ BARVA_RIDICICH,BARVA_CERNA,BARVA_LITERALU,BARVA_CERNA,BARVA_LITERALU,BARVA_CERNA,BARVA_KOMENTARU,
00337     /* 69:       201 */ BARVA_CERNA,
00338     /* 70: 202 - 204 */ BARVA_CERNA,BARVA_LITERALU,BARVA_CERNA,
00339     /* 71:       205 */ BARVA_CERNA,
00340     /* 72: 206 - 210 */ BARVA_RIDICICH,BARVA_CERNA,BARVA_LITERALU,BARVA_CERNA,BARVA_KOMENTARU,
00341     /* 73: 211 - 215 */ BARVA_CERNA,BARVA_LITERALU,BARVA_CERNA,BARVA_LITERALU,BARVA_CERNA,
00342     /* 74: 216 - 218 */ BARVA_CERNA,BARVA_LITERALU,BARVA_CERNA,
00343     /* 75: 219 - 223 */ BARVA_CERNA,BARVA_LITERALU,BARVA_CERNA,BARVA_LITERALU,BARVA_CERNA,
00344     /* 76:       224 */ BARVA_CERNA,
00345     /* 77:       225 */ BARVA_KOMENTARU,
00346     /* 78: 226 - 230 */ BARVA_TYPU,BARVA_CERNA,BARVA_LITERALU,BARVA_CERNA,BARVA_KOMENTARU,
00347     /* 79: 231 - 235 */ BARVA_TYPU,BARVA_CERNA,BARVA_LITERALU,BARVA_CERNA,BARVA_KOMENTARU,
00348     /* 80: 236 - 238 */ BARVA_TYPU,BARVA_CERNA,BARVA_KOMENTARU,
00349     /* 81: 239 - 242 */ BARVA_RIDICICH,BARVA_CERNA,BARVA_LITERALU,BARVA_CERNA,
00350     /* 82: 243 - 245 */ BARVA_CERNA,BARVA_LITERALU,BARVA_CERNA,
00351     /* 83: 246 - 247 */ BARVA_RIDICICH,BARVA_CERNA,
00352     /* 84:       248 */ BARVA_CERNA,
00353     /* 85:       249 */ BARVA_CERNA,
00354     /* 86:       250 */ BARVA_CERNA,
00355     /* 87: 251 - 253 */ BARVA_CERNA,BARVA_LITERALU,BARVA_CERNA,
00356     /* 88:       254 */ BARVA_CERNA,
00357     /* 89: 255 - 256 */ BARVA_CERNA,BARVA_KOMENTARU
00358   };  // barvyAlgoritmu
00359   
00360   
00361   /**
00362    * Pole s označeními tučných úseků textu algoritmu
00363    */
00364   public static final boolean[] tucneCastiAlgoritmu = {
00365     /* Deklarace proměnných  */
00366     /*  0:  0 -  2 */ true,false,false,
00367     /*  1:  3 -  5 */ true,false,false,
00368     /*  2:  6 -  8 */ true,false,false,
00369     /*  3:  9 - 11 */ true,false,false,
00370     /*  4: 12 - 14 */ true,false,false,
00371     /*  5: 15 - 17 */ true,false,false,
00372     /*  6: 18 - 19 */ true,false,
00373     /*  7: 20 - 21 */ true,false,
00374     /*  8:      22 */ false,
00375     /* Metoda BMA */
00376     /*  9: 23 - 24 */ true,false,
00377     /* 10:      25 */ false,
00378     /* 11: 26 - 27 */ false,false,
00379     /* 12: 28 - 33 */ false,true,true,false,false,false,
00380     /* 13: 34 - 40 */ true,false,true,false,false,false,false,
00381     /* 14: 41 - 43 */ false,false,false,
00382     /* 15: 44 - 45 */ false,false,
00383     /* 16: 46 - 51 */ false,true,true,false,false,false,
00384     /* 17: 52 - 58 */ true,false,true,false,false,false,false,
00385     /* 18: 59 - 61 */ false,false,false,
00386     /* 19:      62 */ false,
00387     /* 20: 63 - 64 */ false,false,
00388     /* 21: 65 - 66 */ false,false,
00389     /* 22:      67 */ false,
00390     /* 23: 68 - 72 */ true,false,false,false,false,
00391     /* 24: 73 - 75 */ true,false,false,
00392     /* 25: 76 - 77 */ false,false,
00393     /* 26: 78 - 81 */ true,false,false,false,
00394     /* 27:      82 */ false,
00395     /* 28: 83 - 89 */ true,false,false,false,false,false,false,
00396     /* 29: 90 - 91 */ false,false,
00397     /* 30: 92 - 96 */ true,false,false,false,false,
00398     /* 31:  97 - 101 */ true,false,false,false,false,
00399     /* 32: 102 - 104 */ true,false,false,
00400     /* 33: 105 - 107 */ false,false,false,
00401     /* 34: 108 - 112 */ true,false,false,false,false,
00402     /* 35:       113 */ false,
00403     /* 36: 114 - 115 */ false,false,
00404     /* 37:       116 */ false,
00405     /* 38:       117 */ false,
00406     /* 39: 118 - 121 */ true,false,false,false,
00407     /* 40: 122 - 123 */ false,false,
00408     /* 41:       124 */ false,
00409     /* Metoda pro výpočet delta1 */
00410     /* 42: 125 - 126 */ true,false,
00411     /* 43:       127 */ false,
00412     /* 44: 128 - 130 */ false,true,false,
00413     /* 45:       131 */ false,
00414     /* 46:       132 */ false,
00415     /* 47:       133 */ false,    
00416     /* 48: 134 - 140 */ true,false,true,false,false,false,false,
00417     /* 49:       141 */ false,
00418     /* 50:       142 */ false,
00419     /* 51:       143 */ false,
00420     /* 52: 144 - 145 */ false,false,
00421     /* 53:       146 */ false,
00422     /* Metoda pro výpočet delta2 */
00423     /* 54: 147 - 148 */ true,false,
00424     /* 55:       149 */ false,
00425     /* 56: 150 - 155 */ false,true,true,false,false,false,
00426     /* 57: 156 - 161 */ false,true,true,false,false,false,
00427     /* 58: 162 - 164 */ false,false,false,
00428     /* 59: 165 - 167 */ false,false,false,
00429     /* 60: 168 - 175 */ true,false,true,false,false,false,false,false,
00430     /* 61: 176 - 178 */ false,false,false,
00431     /* 62:       179 */ false,
00432     /* 63:       180 */ false,
00433     /* 64:       181 */ false,
00434     /* 65: 182 - 186 */ true,false,false,false,false,
00435     /* 66: 187 - 191 */ true,false,false,false,false,
00436     /* 67: 192 - 193 */ true,false,
00437     /* 68: 194 - 200 */ true,false,false,false,false,false,false,
00438     /* 69:       201 */ false,
00439     /* 70: 202 - 204 */ false,false,false,
00440     /* 71:       205 */ false,
00441     /* 72: 206 - 210 */ true,false,false,false,false,
00442     /* 73: 211 - 215 */ false,false,false,false,false,
00443     /* 74: 216 - 218 */ false,false,false,
00444     /* 75: 219 - 223 */ false,false,false,false,false,
00445     /* 76:       224 */ false,
00446     /* 77:       225 */ false,
00447     /* 78: 226 - 230 */ true,false,false,false,false,
00448     /* 79: 231 - 235 */ true,false,false,false,false,
00449     /* 80: 236 - 238 */ true,false,false,
00450     /* 81: 239 - 242 */ true,false,false,false,
00451     /* 82: 243 - 245 */ false,false,false,
00452     /* 83: 246 - 247 */ true,false,
00453     /* 84:       248 */ false,
00454     /* 85:       249 */ false,
00455     /* 86:       250 */ false,
00456     /* 87: 251 - 253 */ false,false,false,
00457     /* 88:       254 */ false,
00458     /* 89: 255 - 256 */ false,false
00459   };  // tucneCastiAlgoritmu
00460   
00461   
00462   /**
00463    * Pole se začátky a konci řádků algoritmu (pro zvýrazňování)
00464    */
00465   public static final int[][] radkyAlgoritmu = {
00466    /* Deklarace proměnných  */
00467    /*  0 */ {0,2},
00468    /*  1 */ {3,5},
00469    /*  2 */ {6,8},
00470    /*  3 */ {9,11},
00471    /*  4 */ {12,14},
00472    /*  5 */ {15,17},
00473    /*  6 */ {18,19},
00474    /*  7 */ {20,21},
00475    /*  8 */ {22,22},
00476    /* Metoda BMA */
00477    /*  9 */ {23,24},
00478    /* 10 */ {25,25},
00479    /* 11 */ {26,27},
00480    /* 12 */ {28,33},
00481    /* 13 */ {34,40},
00482    /* 14 */ {41,43},
00483    /* 15 */ {44,45},
00484    /* 16 */ {46,51},
00485    /* 17 */ {52,58},
00486    /* 18 */ {59,61},
00487    /* 19 */ {62,62},
00488    /* 20 */ {63,64},
00489    /* 21 */ {65,66},
00490    /* 22 */ {67,67},
00491    /* 23 */ {68,72},
00492    /* 24 */ {73,75},
00493    /* 25 */ {76,77},
00494    /* 26 */ {78,81},
00495    /* 27 */ {82,82},
00496    /* 28 */ {83,89},
00497    /* 29 */ {90,91},
00498    /* 30 */ {92,96},
00499    /* 31 */ {97,101},
00500    /* 32 */ {102,104},
00501    /* 33 */ {105,107},
00502    /* 34 */ {108,112},
00503    /* 35 */ {113,113},
00504    /* 36 */ {114,115},
00505    /* 37 */ {116,116},
00506    /* 38 */ {117,117},
00507    /* 39 */ {118,121},
00508    /* 40 */ {122,123},
00509    /* 41 */ {124,124},
00510    /* Metoda pro výpočet delta1 */
00511    /* 42 */ {125,126},
00512    /* 43 */ {127,127},
00513    /* 44 */ {128,130},
00514    /* 45 */ {131,131},
00515    /* 46 */ {132,132},
00516    /* 47 */ {133,133},
00517    /* 48 */ {134,140},
00518    /* 49 */ {141,141},
00519    /* 50 */ {142,142},
00520    /* 51 */ {143,143},
00521    /* 52 */ {144,145},
00522    /* 53 */ {146,146},
00523    /* Metoda pro výpočet delta2 */
00524    /* 54 */ {147,148},
00525    /* 55 */ {149,149},
00526    /* 56 */ {150,155},
00527    /* 57 */ {156,161},
00528    /* 58 */ {162,164},
00529    /* 59 */ {165,167},
00530    /* 60 */ {168,175},
00531    /* 61 */ {176,178},
00532    /* 62 */ {179,179},
00533    /* 63 */ {180,180},
00534    /* 64 */ {181,181},
00535    /* 65 */ {182,186},
00536    /* 66 */ {187,191},
00537    /* 67 */ {192,193},
00538    /* 68 */ {194,200},
00539    /* 69 */ {201,201},
00540    /* 70 */ {202,204},
00541    /* 71 */ {205,205},
00542    /* 72 */ {206,210},
00543    /* 73 */ {211,215},
00544    /* 74 */ {216,218},
00545    /* 75 */ {219,223},
00546    /* 76 */ {224,224},
00547    /* 77 */ {225,225},
00548    /* 78 */ {226,230},
00549    /* 79 */ {231,235},
00550    /* 80 */ {236,238},
00551    /* 81 */ {239,242},
00552    /* 82 */ {243,245},
00553    /* 83 */ {246,247},
00554    /* 84 */ {248,248},
00555    /* 85 */ {249,249},
00556    /* 86 */ {250,250},
00557    /* 87 */ {251,253},
00558    /* 88 */ {254,254},
00559    /* 89 */ {255,256}
00560   };  // radkyAlgoritmu
00561   
00562   /**
00563    * Pole se začátky a konci bloků algoritmu (pro vypisování)
00564    */
00565   public static final int[][] blokyAlgoritmu = {
00566     /* 0 */ {0,22},  // deklarace proměnných
00567     /* 1 */ {23,124},  // Metoda BMA
00568     /* 2 */ {125,146},  // Metoda pro výpočet delta1
00569     /* 3 */ {147,256},  // Metoda pro výpočet delta2
00570   };
00571   
00572   /** Názvy bloků zdrojového kódu BMA - blok s deklaracemi */
00573   public static final int BLOK_DEKLARACE = 0;
00574   /** Názvy bloků zdrojového kódu BMA - blok s algoritmem hledání řetězce */
00575   public static final int BLOK_BMA = 1;
00576   /** Názvy bloků zdrojového kódu BMA - blok s výpočtem tabulky delta1 */
00577   public static final int BLOK_DELTA1 = 2;
00578   /** Názvy bloků zdrojového kódu BMA - blok s výpočtem tabulky delta2 */
00579   public static final int BLOK_DELTA2 = 3;
00580   
00581   /**
00582    * Konstanta pro reprezentaci řádku mimo algoritmus (pro zvýrazňování)
00583    */
00584   public static final int ZADNY_RADEK = 900;
00585   
00586   /**
00587    * Řetězec pro záhlaví sloupce pro jiné znaky v tabulce delta1
00588    */
00589   public static final String JINE_ZNAKY = "jiné znaky";
00590   
00591   /**
00592    * Konstruktor třídy (třída obsahuje pouze konstanty, konstruktor je tedy 
00593    * prázdný)
00594    */
00595   public Konstanty() {
00596   }
00597   
00598 }  // public class Konstanty
00599 
00600 /*** Konec souboru Konstanty.java ***/

Generováno čt 3. bře 2011 13.55:32 pro projekt Aplet pro demonstraci Boyerova-Mooreova algoritmu - programem  doxygen 1.7.1