4. vaje: CRKE (23.03. - 30.03.)


Črke


Črke in znake lahko narišemo v mreži 8 x 8. V tej predstavitvi ima, na primer, črka O naslednjo grafično predstavitev:

O

Posamezno črko, ki je predstavljena v mreži, lahko zapišemo tudi z enim 64 bitnim številom. Pri tem posamezna vrstica predstavlja 8 bitov tega števila.  Primer: ker posamezne vrstice črke O predstavljajo števila 60 (32+16+8+4), 66 (64 + 2), 129 (128 + 1), 129, 129, 129, 66, 60, lahko črko O zapišemo kot število 

\( 4342175383962075708 = (60 << 56) + (66 << 48) + (129 << 40) + (129 << 32) + (129 << 24) + (129 << 16) + (66 << 8) + 60 \)

Napišite program za izračun in izpis črk, ki so predstavljene v mreži 8x8. Natančneje:

1) Napišite metodo  

public static void izpisi(long crka), 

ki na zaslon izpiše črko, ki je opisana s številom crka.  Metoda naj ob klicu izpisi(71917410474557695l);
na zaslon izpiše črko E:

********
*
*
*****
*
*
********

2) Napišite metodo
 
public static void izpisi(long crke[]), 

ki na zaslon eno za drugo izpiše črke, ki so podane v tabeli crke. Metoda naj bo klicu

izpisi(new long[] {
4821103401091611672l, 0, 144680345680364600l, 1739555224076567106l,
-9114862049243683816l,1739555224076567106l, 0, 4821103401091611672l
});

izpiše naslednje besedilo:

 *    *                   *      **     *      *     **                *    *   
*** *** * * * * * * * *** ***
******** * * * * * * * ********
******** * * * * * * * ********
******** * ****** * * ****** ********
****** * * * * * * * * ******
**** * * * * * * * * ****
** *** * * ** * * **  

3) Napišite še metodo 

public static long getCrko(int [] vrstice), 

ki na podlagi podanih številk (števila predstavljajo vrednost črke v posamezni vrstici) izračuna številko črke. Metoda naj ob klicu 

long crkaO = getCrko(new int[] {60, 66, 129, 129, 129, 129, 66, 60});    
System.out.println(crkaO);

izpiše številko črke O in sicer:

4342175383962075708

4) Izračunajte števila, ki opisujejo črke vašega imena, in ime izpišite na zaslon.