UL&TC 3


pokój EA 540,
wpr@eti.pg.gda.pl
Układy Logiczne
i
Technika Cyfrowa
Część III  minimalizacja funkcji logicznych
Dr in\. Paweł Raczyński
2008-03-07 P. R. KSA WETI PG 1
Reguły sklejania (1)
W poprzedniej części spotkaliśmy się z zagadnieniem upraszczania
funkcji logicznych. Obecnie zaprezentujemy dwie, spośród wielu
algorytmicznych metod minimalizacji funkcji logicznych.
Minimalizacja funkcji logicznych polega na wielokrotnym
stosowaniu do upraszczania funkcji reguł sklejania (19) i (20).
Ax +Ax = A  reguła dla postaci sumacyjnej
(A + x)*(A + x) = A  reguła dla postaci iloczynowej
Zauwa\my, \e w wyniku sklejania redukcji ulega jedna ze
zmiennych, ta która występuje w obu składnikach/czynnikach w
postaci prostej i zanegowanej.
2008-03-07 P. R. KSA WETI PG 2
Reguły sklejania (2)
Aby wyeliminować dwie zmienne z postaci funkcji nale\y zastosować
reguły sklejania w poni\szej postaci:
Ax y +Axy + Axy + Axy = A
(A+x+y)*(A+x+y)*(A+x+y)*(A+x+y) = A
Jak widać, zmienne, które zamierzamy wyeliminować na mocy
reguły sklejania muszą występować w składnikach/czynnikach we
wszystkich mo\liwych wariacjach poło\enia negacji.
Istotnym spostrze\eniem jest, \e składniki/czynniki podlegające
sklejaniu ró\nią się poło\eniem negacji nad jedną ze zmiennych, a
więc są sąsiednie w sensie Hamminga.
2008-03-07 P. R. KSA WETI PG 3
Reguły sklejania  przykład zastosowania
Zminimalizować funkcję:
f (x1,x2,x3) = x1x2x3 + x1x2x3 + x1x2x3 + x1x2x3 + x1x2x3 = Ł
Ł (2,3,4,5,7)
Ł
Ł
Je\eli skleimy składniki o numerach 2 i 3 oraz 5 i 7 otrzymamy:
f (x1,x2,x3) = x1x2 + x1x3 + x1x2x3
W której to postaci nie mo\na dokonać dalszych sklejeń. Nie nale\y
tak\e wykonywać wszystkich mo\liwych sklejeń tzn. składników o
numerach 2i 3, 3 i 7, 4 i 5 oraz 5 i 7 bo otrzymamy:
f (x1,x2,x3) = x1x2 + x2x3 + x1x2 + x1x3
Nale\y skleić składniki o numerach 2 i 3, 4 i 6 oraz 5 i 7 otrzymując:
f (x1,x2,x3) = x1x2 + x1x2 + x1x3
Co jest postacią minimalną.
2008-03-07 P. R. KSA WETI PG 4
Reguły sklejania  wnioski
Analiza powy\szego przykładu prowadzi do następujących
wniosków:
" pierwszym problemem jest znalezienie wszystkich
składników/czynników, które są sąsiednie w sensie
Hamminga i mogą potencjalnie wziąć udział w operacji
sklejania;
" drugim problemem jest wybór składników/czynników
sklejanych w celu osiągnięcia postaci minimalnej.
Algorytmiczna metoda minimalizacji powinna określić
efektywne metody rozwiązania obydwu problemów oraz
zapewnić gwarancję osiągnięcia postaci minimalnej w
określonym sensie.
2008-03-07 P. R. KSA WETI PG 5
Metoda tablic Karnaugha (1)
Metoda polega na wykorzystaniu tablic funkcji zapisanych w
odpowiednio skomponowanej tablicy zamieniającej sąsiedniość w sensie
Hamminga składników/czynników na sąsiedztwo w sensie
geometrycznym  zawdzięczamy to właściwości kodu Gray a.
cd bc
ab 00 01 11 10 a 00 01 11 10
0 1 3 2 0 1 3 2
00 0
4 5 7 6 4 5 7 6
01 1
12 13 15 14
11
8 9 11 10
10
cde
ab 000 001 011 010 110 111 101 100
b
0 1 3 2 6 7 5 4
00
a 0 1
8 9 11 10 12 13 15 14
01
0 1
0
24 25 27 26 30 31 29 38
11
2 3
1
16 17 19 18 22 23 21 20
10
Linią przerywaną zaznaczono osie symetrii tablic.
2008-03-07 P. R. KSA WETI PG 6
Metoda tablic Karnaugha (2)
f (x1,x2,x3) = x1x2x3 + x1x2x3 + x1x2x3 + x1x2x3 = Ł
Ł (2,3,4,7)
Ł
Ł
a b c f(a,b,c)
0 0 0 0
0 0 1 0
bc
0 1 0 1
a 00 01 11 10
0 1 1 1
0
0 0 1 1
1 0 0 1
1
1 0 1 0
1 0 1 0
1 1 0 0
1 1 1 1
2008-03-07 P. R. KSA WETI PG 7
Metoda tablic Karnaugha (3)
W tablicy Karnaugh poszukujemy elementów sąsiednich tego
samego typu: 0  czynników zera funkcji, 1  składników jedności
funkcji.
Elementami sąsiednimi są
cd
0 i 2 (0000 i 0010) z uwagi
na poło\enie symetryczne
ab 00 01 11 10
względem osi symetrii
00 1 0 0 1
tablicy
01 0 0 0 0
11 0 1 0 0
Elementami sąsiednimi są
10 0 1 0 0
9 i 13 (1001 i 1101) z
uwagi na poło\enie w
sąsiadujących polach
tablicy tablicy
2008-03-07 P. R. KSA WETI PG 8
Metoda tablic Karnaugha (4)
Z reguł sklejania
Ax y +Axy + Axy + Axy = A
(A+x+y)*(A+x+y)*(A+x+y)*(A+x+y) = A
wynika, \e dla minimalizacji funkcji nale\y poszukiwać grup
składników/czynników o liczebności 2, 4, 8 itd. Ogólnie o liczebności 28 elementów
sąsiednich.
Ka\da jedynka i ka\de zero mogą brać dowolną ilość razy w sklejaniu,
co wynika z x+x=x (11).
Ka\da utworzona grupa
jedynek/zer reprezentuje
bc
jeden iloczyn/sumę
zmiennych w postaci
a 00 01 11 10
minimalnej funkcji. Stąd,
0
0 0 1 1
aby zachować wartość
logiczną funkcji konieczne
1
1 0 1 0
jest, aby tworzenie grup
objęło wszystkie
jedynki/zera funkcji.
2008-03-07 P. R. KSA WETI PG 9
Metoda tablic Karnaugha (5)
Algorytm:
" wychodząc z postaci ZNPS lub ZNPI zapisujemy wartości funkcji (0 i 1)
w tablicy Karnaugha;
" dokonujemy sklejeń elementów sąsiednich (1 dla postaci sumacyjnej, 0
dla postaci iloczynowej) tworząc mo\liwie jak największe grupy
pamiętając \e: sąsiednie są elementy zajmujące sąsiednie pola tablicy lub
poło\one symetrycznie względem jej osi symetrii,liczebność grup musi
być równa 2n  patrz reguły sklejania;
" staramy się utworzyć jak najmniejszą liczbę jak największych grup przy
zachowaniu zasady pokrycia wszystkich 1(0) funkcji;
" utworzone grupy reprezentują iloczyny (dla 1) lub sumy (dla 0) których
suma (dla 2) lub iloczyn (dla 0) tworzą minimalną postać funkcji.
Metoda tablic Karnaugha prowadzi do minimalnej (wyra\onej przy
pomocy najmniejszej ilości zmiennych i wykonanych na nich operacji)
postaci sumacyjnej (NPS) dla minimalizacji wg 1 lub postaci iloczynowej
(NPI) dla minimalizacji wg 0. Nie jest to jednak\e postać minimalna
globalnie, to znaczy spośród wszystkich mo\liwych reprezentacji!
2008-03-07 P. R. KSA WETI PG 10
Metoda tablic Karnaugha  minimalna NPS
Pojedyncza 1 reprezentuje pełny iloczyn zmiennych funkcji,
jego postać odczytujemy analizując współrzędne pola
a b c f(a,b,c)
tablicy a=0, b=0, c=0. Pamiętając przyporządkowanie
0 0 0 1 przyjęte dla
0 0 1 0
postaci sumacyjnej xk <-> 1, xk <-> 0
0 1 0 0
otrzymujemy iloczyn a b c
0 1 1 0
bc
1 0 0 0
1 0 1 1
a 00 01 11 10
1 1 0 0
0
1 0 0 0
1 1 1 1
1
0 1 1 0
Para 1 reprezentuje iloczyn zmiennych funkcji, w którym
wyeliminowano jedną zmienną na mocy operacji sklejania.
Postać iloczynu odczytujemy analizując współrzędne pól
tablicy a=1, b  opis w obrębie grupy zmienia się, zmienna
wyeliminowana, c=1. Pamiętając przyporządkowanie
przyjęte dla
postaci sumacyjnej xk <-> 1, xk <-> 0
f(a,b,c)mins= a b c + ac
otrzymujemy iloczyn a c
2008-03-07 P. R. KSA WETI PG 11
Metoda tablic Karnaugha  minimalna NPI
Pojedyncze 0 reprezentuje pełną sumę zmiennych funkcji,
a b c f(a,b,c)
jego postać odczytujemy analizując współrzędne pola
tablicy, pamiętając przyporządkowanie przyjęte dla
0 0 0 1
0 0 1 0 postaci iloczynowej xk <-> 1, xk <-> 0
0 1 0 0
0 1 1 0
bc
1 0 0 0
1 0 1 1
a 00 01 11 10
1 1 0 0
0
1 0 0 0
1 1 1 1
1
0 1 1 0
Para 0 reprezentuje sumę zmiennych funkcji, w której
wyeliminowano jedną zmienną na mocy operacji sklejania.
Postać sumy odczytujemy analizując współrzędne pól
tablicy a=1, b  opis w obrębie grupy zmienia się, zmienna
wyeliminowana, c=0. Pamiętając przyporządkowanie
przyjęte dla
postaci sumacyjnej xk <-> 1, xk <-> 0
f(a,b,c)mini= (a+c)(a+c)(a+b)
otrzymujemy iloczyn a + c
2008-03-07 P. R. KSA WETI PG 12
Więcej ni\ jedna postać minimalna
Porównajmy przedstawione dwie wersje minimalizacji przykładowej funkcji
bc
a 00 01 11 10
0
1 0 0 0
f(a,b,c)mini= (a+c)(a+c)(a+b)
1
0 1 1 0
bc
a 00 01 11 10
0
1 0 0 0
f(a,b,c)mini= (a+c)(a+c)(b+c)
1
0 1 1 0
Obie postacie są równowa\ne: 3 zmienne, 3 sumy, 2 iloczyny, 3
negacje. Świadczy to o tym, \e funkcja mo\e mieć więcej ni\ jedną
postać minimalną.
2008-03-07 P. R. KSA WETI PG 13
Minimalizacja  przykłady (1)
bc
a 00 01 11 10
0
0 0 1 1
1
1 1 1 0
f(a,b,c)min1= ab + ab + ac
f(a,b,c)min2= ab + ab + bc
Dwie postacie minimalne funkcji. W praktyce do realizacji
wybiera się dowolnie jedną z równowa\nych postaci minimalnych.
2008-03-07 P. R. KSA WETI PG 14
Minimalizacja  przykłady (2)
cd
ab 00 01 11 10
00 1 1 1 1
01 0 0 0 1
11 0 1 0 1
f(a,b,c,d)min=b + cd + acd
10 1 1 1 1
cd
ab 00 01 11 10
00 1 1 0 1
01 0 1 1 0
11 0 0 1 0
f(a,b,c,d)min= bc + abd + abd + bcd 10 1
1 0 0
2008-03-07 P. R. KSA WETI PG 15
Minimalizacja  przykłady (3)
cd
ab 00 01 11 10
00 1 0 0 1
01 0 1 1 0
11 0 1 1 0
f(a,b,c,d)min=bd + bd
10 1 0 0 1
Grupa 4 jedynek w środku
tablicy jest nadmiarowa.Cztery
cd
konieczne do sklejenia pary
ab 00 01 11 10
pokrywają wszystkie jedynki
00 0 0 1 0
funkcji.
01 1 1 1 0
11 0 1 1 1
f(a,b,c,d)min= abc + acd + abc + acd + bd
10 0 1 0 0
2008-03-07 P. R. KSA WETI PG 16
Minimalizacja  przykłady (4)
cde
ab 000 001 011 010 110 111 101 100
00
0 1 1 1 1 0 0 0
01
1 1 1 1 1 0 0 1
11
0 1 1 0 0 1 1 0
10
0 1 1 0 0 1 1 0
f(a,b,c,d,e)min= ce + ae + ade + abe
2008-03-07 P. R. KSA WETI PG 17
Minimalizacja  przykłady (5)
bc
a 00 01 11 10
0
1 1 0 1
f(a,b,c)min= (a+c)(a+b)(b+c)
1
1 0 0 0
bc
a 00 01 11 10
0
0 1 0 0
f(a,b,c)min= c(a+b)
1
0 1 1 0
2008-03-07 P. R. KSA WETI PG 18
Minimalizacja  przykłady (6)
cd
ab 00 01 11 10
00 0 0 1 1
01 0 1 1 0
11 0 1 1 0
f(a,b,c,d)min=(b+d)(a+d)(a+b+c)
10 0 1 1 0
cd
ab 00 01 11 10
00 0 0 1 1
01 1 0 0 1
11 1 1 0 0
f(a,b,c,d )min=
10 0 1 1 0
= (a+b+c)(a+b+d)(a+b+c)(a+b+d)
2008-03-07 P. R. KSA WETI PG 19
Funkcje nie w pełni określone
a b c f(a,b,c)
0 0 0 1
W tablicy obok przedstawiono przykład
0 0 1 0
funkcji nie w pełni określonej. X w
0 1 0 x
kolumnie wartości funkcji oznacza, \e
0 1 1 0
funkcja mo\e w tym punkcie przyjąć
1 0 0 x
wartość dowolną ze swojej
1 0 1 x
przeciwdziedziny, a więc wartość albo 1.
1 1 0 0
1 1 1 1
Istnienie punktów nieokreśloności funkcji rozszerza
mo\liwości jej minimalizacji,pozwalając na przyjęcie w
punktach x wartości 0 albo1 w zale\ności od tego, która
wersja umo\liwia uzyskanie prostszej postaci funkcji.
2008-03-07 P. R. KSA WETI PG 20
Minimalizacja funkcji nie w pełni określonych
Przyjmując, \e funkcja w bc
a 00 01 11 10
punktach nieokreśloności 2 i 3
0 0 1 0 0
przyjmuje wartość 0
1 0 1 0 0
bc
uzyskujemy prostszą postać
funkcji
a 00 01 11 10
0
0 1 x x
f(a,b,c)min= bc
1
0 1 0 0
bc
a 00 01 11 10
0 0 1 1 0
bc
1 0 1 1 0
a 00 01 11 10
0
0 1 x 0
f(a,b,c)min= c
1
0 x 1 0
Uwaga: ka\da funkcja nie w pełni określona po minimalizacji
staje się w pełni określona.
2008-03-07 P. R. KSA WETI PG 21
Implikant i implikant prosty
Implikant funkcji f to taka funkcja g, \e je\eli f = 1, to w tym samym
punkcie f = 1. Implikant zatem pokrywa jedną lub więcej jedynek
funkcji.
Implikant prosty funkcji f to taki iloczyn zmiennych, który jest
implikantem i który zmniejszony o dowolną zmienną przestaje być
implikantem.
x1x2x3 x1x3+x1x2 x2x3 x2 x3
Sprawdz czy iloczyn x2x3 jest
implikantem prostym funkcji
000 0 0 0 0
f = x1x3 +x1x2
001 1 0 0 1
010 0 0 1 0
Jest implikantem, co wynika z
definicji i tabeli obok  patrz
011 1 1 1 1
czerwone strzałki. Jest implikantem
100 0 0 0 0
prostym, bo po zmniejszeniu o
101 0 0 0 1
dowolną zmienną przestaje być
110 1 0 1 0
implikantem  patrz niebieskie
strzałki.
111 1 1 1 1
2008-03-07 P. R. KSA WETI PG 22
Implicent i implicent prosty
Implicent funkcji f to taka funkcja h, \e je\eli f = 0, to w tym samym
punkcie f = 0. Implicent zatem pokrywa jedno lub więcej zer funkcji.
Implicent prosty funkcji f to taka suma zmiennych, która jest
implicentem i która zmniejszona o dowolną zmienną przestaje być
implicentem.
Oczywiste jest (ale mo\e być udowodnione) twierdzenie, \e ka\da
funkcja mo\e być przedstawiona w postaci wszystkich jej implikantów
prostych  postać NPS.
Podobnie mo\na wykazać, \e ka\da funkcja mo\e być przedstawiona w
postaci iloczynu wszystkich jej implicentów prostych.
n m
f = Ł gi =  hi
i=1 i=1
2008-03-07 P. R. KSA WETI PG 23
Funkcja w postaci sumy implikantów prostych
Dokonując wszystkich mo\liwych sklejeń w wyra\eniu
f = x1x2x3 + x1x2x3 + x1x2x3 + x1x2x3 + x1x2x3
Otrzymujemy zestaw wszystkich implikantów prostych funkcji f
f = x1x2 + x2x3+x1x2+ x1x3
Z tablicy obok widać, \e do
pokrycia wszystkich
x1x2x3 x1x2x3 x1x2x3 x1x2x3 x1x2x3
jedynek funkcji nie
x1x2
X X X
potrzeba wszystkich
x2x3
X X X
implikntów, w wystarczy
x1x2
X X X
pewien ich podzbiór 
x1x3
X X
zwany zbiorem
X X X X X implikantów zasadniczych.
2008-03-07 P. R. KSA WETI PG 24
Metoda Quine a  McCluskey a
Przedstawione wy\ej rozumowanie stanowi podstawę
algorytmicznej metody minimalizacji zwanej metodą Quine a
 McCluskey a.
Metoda ta jest dwuetapowa:
" w pierwszym etapie znajduje się zbiór wszystkich
implikantów prostych lub implicentów prostych
funkcji w zale\ności od tego czy poszukujemy minimalnej
postaci odpowiednio NPS czy NPI;
" w drugim etapie spośród zbioru wszystkich implikantów
lub implicentów prostych wybiera się zbiór implikantów
lub implicentów zasadniczych, czyli minimalny zestaw
implikantów / implicentów prostych pokrywających
wszystkie jedynki/ zera funkcji.
2008-03-07 P. R. KSA WETI PG 25
Metoda Quine a  McCluskey a  procedura (1)
1. Wszystkie składniki ZNPS(czynniki ZNPI) wypisuje się w postaci
kolumny liczb binarnych pisząc 0(1) zamiast xi oraz1(0) zamiast xi.
2. Porządkuje się otrzymaną kolumnę liczb binarnych według rosnącej
liczby jedynek.
3. W uporządkowanej kolumnie wydziela się grupy liczb o liczbie jedynek
równej 0, 1, 2, 3 itd.
4. Tworzy się następną kolumnę liczb binarnych, która jest rezultatem
sklejeń liczb w kolumnie poprzedniej, przy czym:
" skleja się tylko liczby nale\ące do sąsiednich grup;
" sklejane liczby mogą ró\nić się tylko na jednej pozycji;
" wynik sklejania jest liczbą, w której w miejsce ró\niących je cyfr
wstawiono symbol  - ;
" liczby biorące udział w sklejaniu oznacza się np. symbolem  v ;
" ka\da liczba mo\e brać udział w sklejaniu dowolną ilość razy;
" nale\y wyczerpać wszystkie mo\liwości sklejeń;
" Wynikisklejeń pomiędzy poszczególnymi grupami tworzą nowe grupy;
" Wyników powtarzających się nie wpisujemy.
2008-03-07 P. R. KSA WETI PG 26
Metoda Quine a  McCluskey a  procedura (2)
5. Ka\dą następną kolumnę tworzymy z poprzedniej według tych samych
zasad uwzględniając dodatkowo, \e warunkiem dalszych sklejeń jest
wystąpienie symbolu  - na tych samych pozycjach.
6. Proces sklejania kończy się, gdy w ostatnio otrzymanej kolumnie nie
mo\na ju\ przeprowadzić dalszych sklejeń.
7. Liczbami (ze wszystkich kolumn), które nie podległy sklejeniom,
opisujemy wiersze tablicy implikantów (implicentów), gdy\
odpowiadają one implikantom (implicentom) prostym. Liczbami
odpowiadającymi składnikom ZNPS (czynnikom ZNPI) opisujemy
kolumny tej tablicy.
8. Przy pomocy tak opisanej tablicy eliminujemy zbędne implikanty
(implicenty), a pozostałe przekształcamy do jawnej postaci na mocy
odpowiedniego przyporządkowania.
Punkty 1-6 procedury opisują przebieg poszukiwania zbioru
wszystkich implikantów (implicentów) prostych
funkcji.Punkty7 i 8 opisują metodę znajdowania zbioru
implikantów (implicentów) zasadniczych.
2008-03-07 P. R. KSA WETI PG 27
Metoda Quine a  McCluskey a  przykład (1)
y = abcd + abcd + abcd + abcd + abcd + abcd + abcd + abcd
0011 0100 v 010- -1-1
0100 0011 v 0-11
0101 0101 v 01-1 v
0111 1001 v -101 v
1001 0111 v 1-01
1101 1101 v -111 v
1110 1110 v 11-1 v
1111 1111 v 111-
Zaznaczone czerwoną czcionką liczby tworzą zbiór wszystkich
implikantów prostych naszej funkcji.
2008-03-07 P. R. KSA WETI PG 28
Metoda Quine a  McCluskey a  przykład (2)
abcd 0011 0100 0101 0111 1001 1101 1110 1111
010-
X X X
0-11
X X X
1-01
X X X
111-
X X X
-1-1
X X X X X X X X
Jak widać z tabeli implikant -1-1 jest nadmiarowy.
Minimalna postać funkcji: f = abc + acd + acd + abc
2008-03-07 P. R. KSA WETI PG 29
Metoda Quine a  McCluskey a  przykład (3)
Jak widać z tabeli implikant -1-1 (bd) jest nadmiarowy.
Minimalna postać funkcji: f = abc + acd + acd + abc
Porównajmy osiągnięty wynik z poprzednio analizowanym
przykładem zastosowania metody tablicy Karnaugha.
Grupa 4 jedynek w środku
tablicy jest nadmiarowa.Cztery
cd
konieczne do sklejenia pary
ab 00 01 11 10
pokrywają wszystkie jedynki
00 0 0 1 0
funkcji.
01 1 1 1 0
11 0 1 1 1
f(a,b,c,d)min= abc + acd + abc + acd + bd
10 0 1 0 0
2008-03-07 P. R. KSA WETI PG 30
Metoda Quine a  McCluskey a  przykład (4)
0011 3 0100 v 4 v 010- 4,5(1) -1-1 3,5,7,13(2,8)
0100 4 0011 v 3 v 0-11 3,7(4)
0101 5 0101 v 5 v 01-1 v 3,5(2) v
0111 7 1001 v 9 v -101 v 5,13(8) v
1001 9 0111 v 7 v 1-01 9,13(4)
1101 13 1101 v 13 v -111 v 7,15(8) v
1110 14 1110 v 14 v 11-1 v 13,15(2) v
1111 15 1111 v 15 v 111- 14,15(1)
f = Ł(3,4,5,7,9,13,14,15)  implikanty proste mo\na znalezć znacznie
szybciej przeprowadzając sklejenia wprost na dziesiątkowym zapisie
numerów składników jedności. Ró\nicy składników na jednej pozycji
odpowiada ró\nica ich numerów o 2n. Sklejane są numery składników
jedności np. 4,5. Numer w nawiasie wskazuje wagę pozycji, na której w
składniku jedności występuje symbol  - .
2008-03-07 P. R. KSA WETI PG 31
Obszary zastosowań metod minimalizacji
Metoda tablic Karnaugha jest przyjazna dla u\ytkownika
posługującego się kartką papieru i ołówkiem. Jednak\e jej wadą jest to,
\e reguły sąsiedztwa w tablicy Karnaugha komplikują się ze wzrostem
liczby zmiennych. Wią\e się to ze wzrostem liczby osi symetrii tablicy.
Utrudnia to implementację.metody w postaci programu komputerowego.
W praktyce metoda jest ograniczona do minimalizacji funkcji o 5-6
zmiennych.
Metoda Quine a  McCluskey a jest niezbyt przyjazna dla
u\ytkownika posługującego się kartką papieru i ołówkiem. Jednak\e jej
zaletą jest stałość reguł niezale\nie od liczby zmiennych
minimalizowanych funkcji. Metoda doskonale nadaje się do
implementacji w postaci programu komputerowego.
2008-03-07 P. R. KSA WETI PG 32


Wyszukiwarka