Przedstawione tabelki reprezentują działanie modulo 5, z tą różnicą, że jest ono wykonywane na symbolach.

Działanie "+"

e 	a 	b 	c 	d

e e a b c d
a a d e b c
b b e c d a
c c b d a e
d d c a e b

Działanie "*"

e 	a 	b 	c 	d

e e e e e e
a e d c a b
b e c d b a
c e a b c d
d e b a d c

Tak wygląda to co zrobilem do tej pory:

enum Symbol {a,b,c,d,e};

Symbol TabliczkaDodawania[5][5]={{e,a,b,c,d},{a,d,e,b,c},{b,e,c,d,a},{c,b,d,a,e},{d,c,a,e,b}};

Symbol TabliczkaMnozenia[5][5]={{e,e,e,e,e},{e,d,c,a,b},{e,c,d,b,a},{e,a,b,c,d},{e,b,a,d,c}};

Symbol Dodaj(Symbol x, Symbol y)
{
        return TabliczkaDodawania[x][y];     
}  

Symbol Mnoz(Symbol x, Symbol y)
{
        return TabliczkaMnozenia[x][y];     
} 

Teraz chcę zdefiniować operację odejmowania jako operację dodawania pierwszego argumentu i wartości odwrotnej do drugiego argumenty. Wiem, że wartości odwrotne można wyznaczyć na podstawie wcześniej podanej tabelki dodawania. Analogicznie można postąpić z implementacją operacji dzielenia. Mógłby ktoś podać przykładową implementację?