Primjer projektiranja logičkoga sklopa
Vesna Skočir X. gimnazija "Ivan Supek", Zagreb
Sažetak - Veliki napredak koji iz godine u godinu bilježi
računalna znanost teško je pratiti. Računala su sve brža,
preciznija, njihovo je sučelje bliže i pristupačnije čovjeku.
Pa ipak, logika koja je u njihovoj pozadini ista je kao i kod
prvih računala ranih pedesetih godina prošloga stoljeća.
Računalni stoj je zapravo logički stroj. Njegova je binarna
logika opisana pomoću Booleove algebre. Istu je logiku
moguće primijeniti i na druge probleme čije se rješenje da
zapisati u obliku odgovora DA ili NE. Upravo je ova
činjenica iskorištena kako bi se projektiranjem
jednostavnijih sklopova učenicima približila apstraktna
logika računala. U radu je pokazano na koji se način
poznate igre: papir-škare-dijamant i par-nepar mogu
ostvariti kao logički sklopovi. Pored sklopovske pokazana je
i softverska realizacija danih igara.
I. UVOD
Svjedoci smo velikih promjena u računalstvu; napretka koji je iz godine u godinu toliko velik da je gotovo nemoguće pratiti ga. Računala su moćni strojevi, primjenjivi u začudno puno područja ljudske djelatnosti. Još uvijek fasciniraju svojom brzinom i tehničkom preciznošću. Pa ipak, logika koja je u njihovoj pozadini ista je kao i kod prvih računala ranih pedesetih godina prošloga stoljeća.
To svakako treba imati na umu kad definiramo znanja i vještine koje odreĎuju informatički pismenog srednjoškolca. Činjenica jest da srednjoškolsko gradivo obrazovnih sustava mnogih zemalja, pa tako i naše, uključuje graĎu i načela funkcioniranja računala. IzmeĎu ostalog kaže se da je matematička osnova računala Booleova algebra, te da se njezinom primjenom dolazi do logičkih sklopova - dijelova računala. Izučavaju se osnovni pojmovi i teoremi ove matematičke discipline, a nastoji se pokazati i na koji se način ona može primijeniti na logiku računala.
Budući da se radi o apstraktnim logičkim idejama, ova zadaća nije jednostavna. Rezultat je najčešće taj da dobrohotan učenik čak i vjeruje da to jest važno, ali najčešće uspije "uhvatiti" samo fragmente ovih ideja. Primjerice, nauči logički izraz predočiti tablicom istinitosti i obratno, napisati logički izraz ako je poznata tablica istinitosti, minimizirati jednostavnu logičku funkciju, nacrtati logički sklop ako je dana logička funkcija i slično. U nekim udžbenicima susrećemo primjer poluzbrajala kako bi se pokazalo čemu sve to zaista služi. Taj je primjer u svakom slučaju dobar, no za učenike koji su tek naučili binarno zbrajati, pretežak. Ako je primjer težak ili nije dovoljno blizak, vjerojatno će veći dio učenika odustati od pokušaja da razumije "komplicirano" računalo.
Računalni stroj je zapravo logički stroj. Osnovni je cilj ovoga rada približiti učeniku pravo značenje ove tvrdnje. U radu je pokazano kako slijedeći binarnu logiku računala projektirati logički sklop koji nešto radi. Naime, binarna je logika računala opisana pomoću Booleove algebre. Simbolički prikaz izjava te algebarska pravila kojima se meĎu izjavama ostvaruju logičke veze mogu se primijeniti na različite probleme čije se rješenje da zapisati u obliku odgovora DA ili NE (odnosno 1 ili 0). Fizičko ostvarenje logičkih operacija su logički sklopovi.
Kao primjer problemske situacije odabrane su poznate igre papir-škare-dijamant i par-nepar. Prednost je igre ta što je neopterećena i neobavezna, zanimljiva, lakše ju je razumjeti, lakše se u nju uključiti. I mada igra učenika udaljuje od stvarnog problema, ona mu u ovom slučaju pomaže da stvarni problem potpunije shvati.
1
U igrama učestvuju dva igrača. Ulazi su izbori igrača, donošenje odluke o pobjedniku preuzima logički sklop, a izlaz naznačuje koji je od igrača pobijedio. Pokazane su sve faze kroz koje prolazimo pri projektiranju sklopa. Nakon specifikacije problema (u ovome slučaju detaljnog opisa igre), slijedi razrada. Cilj je razrade doći do tablice stanja danoga sklopa, koja se, ukoliko je to moguće, minimizira, nakon čega slijedi crtanje sheme kao podloge za izradu samoga sklopa. Diskutiraju se različiti pristupi problemu.
Računalo je spoj hardvera i softvera. Posao na računalu moguće je napraviti ako postoji hardver te softver koji se na njemu može izvoditi. Svaka funkcija računala može se ostvariti pomoću hardvera, ali i pomoću softvera. Stoga je pored sklopovske pokazana i softverska realizacija danih igara.
II. PAPIR-ŠKARE-DIJAMANT
Papir-škare-dijamant je igra za dva (ili više) igrača. U
različitim se varijantama igra širom svijeta, a često se umjesto novčića koristi kao metoda selekcije.
Slijedi opis igre (problema) koji će služiti kao podloga za projektiranje sklopa.
A. Specifikacija problema
Dva igrača istovremeno podižu ruku i dlanom pokazuju jedan od tri znaka: znak za papir, za škare ili za
1 U ovom je slučaju stvarni problem dokučiti na koji način realizirati
Von Neumannov model računala ukoliko na raspolaganju imamo dovoljan broj osnovnih gradivnih elemenata, a to su sklopovi koji
ostvaruju logičke funkcije I, ILI i NE.
1614 MIPRO 2012/CE
Sl. 1. Geste koje susrećemo u igri papir-škare-dijamant
dijamant. Ukoliko pokažu isti element, primjerice znak za škare, rezultat je neriješen. U ostalim se slučajevima pobjednik odreĎuje na sljedeći način2:
ako je izabran par: papir i škare, pobjeĎuje igrač koji je pokazao škare;
ako je izabran par: papir i dijamant , pobjeĎuje igrač koji je pokazao papir;
ako je izabran par: škare i dijamant, pobjeĎuje igrač koji je pokazao dijamant.
Naravno, svaki igrač mora pokazati neki od navedenih elemenata.
B. Razrada
Prikažimo ovu igru tablično (Sl.2). Kad je igra
definirana na ovaj način iz nje se na prirodan način dobije tablica stanja (Sl.3).
Igra ima šest ulaza: prvi igrač pokazuje papir (oznaka - P1), prvi igrač pokazuje škare (Š1), prvi igrač pokazuje dijamant (D1), te analogno oznake P2, Š2 i D2, ukoliko drugi igrač pokazuje papir, škare ili dijamant. Ulaz P1 ima vrijednost 1 ukoliko je igrač 1 pokazao papir, u ostalim slučajevima ima vrijednost 0.
Prvi igrač Drugi igrač
Rezultat P Š D P Š D
da Da Neriješeno
da da Pobjeda 2.igrač
da da Pobjeda 1.igrač
Da Da Pobjeda 1.igrač
Da da Neriješeno
Da da Pobjeda 2.igrač
da Da Pobjeda 2.igrač
da da Pobjeda 1.igrač
da da Neriješeno
Sl. 2. Igra papir-škare-dijamant: pravila igre dana odgovorima da/ne (upisano je "da" ukoliko je igrač pokazao odgovarajući element)
2 škare režu papir, dijamant razbija škare, papir obavija dijamant
P1 Š1 D1 P2 Š2 D2 I1 I2
0 0 1 0 1 0 1 0
0 0 1 1 0 0 0 1
0 1 0 0 0 1 0 1
0 1 0 1 0 0 1 0
1 0 0 0 0 1 1 0
1 0 0 0 1 0 0 1
Sl. 3. Djelomični prikaz tablice stanja kojom je definirana igra papir-
škare-dijamant (Prikazane su samo one strategije koje rezultiraju
pobjedom jednoga od igrača)
Analogno su definirane vrijednosti ostalih ulaza.
Dva su izlaza: izlaz I1 odgovara prvom igraču. Vrijednost 1 naznačuje pobjedu igrača I1, u svim ostalim slučajevima (poraz prvog igrača, neriješeno, neregularna kombinacija) vrijednost I1 je 0. Analogno se definira izlaz I2 koji pripada drugom igraču. Tablica stanja danoga sklopa ima 26 =64 mogućih vrijednosti ulaznih varijabli.
Algebarski:
Sklop koji ostvaruje dobivene funkcije prikazan je shemom na slici (Sl.4).
Sl. 4. Logički sklop igre papir-škare-dijamant
III. PAR-NEPAR
Poput igre papir-škare-dijamant i ova igra služi da na
slučajan način odaberemo neki ishod, primjerice odabir strane, dodjelu lopte u nogometu i slično.
A. Specifikacija problema
igrači se unaprijed dogovore koji će od njih biti
PAR, a koji NEPAR;
istovremeno podižu šaku s nekoliko ispruženih
prstiju;
ukoliko je broj ispruženih prstiju paran pobjeĎuje
igrač koji je odreĎen kao PAR, u protivnom
pobjeĎuje igrač NEPAR. U slučaju da oba igrača
MIPRO 2012/CE 1615
nisu podigla niti jedan prst, po dogovoru
pobjeĎuje igrač PAR.
B. Razrada
Primijetimo da ova igra ima 10 ulaza (svaki igrač može pokazati jedan od pet prstiju). Dakle, ukupno je 210=1024 kombinacija i za njih treba naznačiti izlaz. Primijetimo da u ovoj igri nema neregularnih ulaza; jedan od igrača uvijek pobjeĎuje (Sl.5).
Budući da je broj ulaza zaista velik, pokušajmo najprije problem riješiti u posebnom slučaju kad svaki igrač može ispružiti samo dva prsta, primjerice palac i kažiprst. Tada je broj mogućih kombinacija je 16 i tablica stanja može se relativno brzo sastaviti. Igru definira sljedeća tablica na slici 6.
U tablici stanja ulazi A,B,C,D imaju vrijednost 1 ukoliko je odgovarajući igrač podigao odreĎeni prst, 0 inače. Izlaz IP Ima vrijednost 1 ukoliko je igrač PAR pobijedio u igri, vrijednost 0 ukoliko je izgubio. Slično , vrijednost logičke varijable IN naznačuje pobjedu (poraz) igrača NEPAR. Algebarski:
Igrač PAR Igrač NEPAR
PobjeĎuje
igrač
Pal
ac
Kaž
iprs
t
Sre
dnji
prs
t
Prs
tenja
k
Mal
i p
rst
Pal
ac
Kaž
iprs
t
Sre
dnji
prs
t
Prs
tenja
k
Mal
i p
rst
PAR
da NEPAR
da NEPAR
da NEPAR
da NEPAR
da NEPAR
da NEPAR
da da PAR
da da PAR
………………………………………………………………..
Sl. 5. Igra par-nepar: pravila igre dana odgovorima da/ne; prikazan je samo dio pravila (upisano je "da" ukoliko je igrač pokazao
odgovarajući prst)
Igrač –PAR Igrač-NEPAR PobjeĎuje
igrač
Tablica stanja
Palac Kažiprst Palac Kažiprst A B C D IP IN
PAR 0 0 0 0 1 0
da NEPAR 0 0 0 1 0 1
da NEPAR 0 0 1 0 0 1
da da PAR 0 0 1 1 1 0
da NEPAR 0 1 0 0 0 1
da da PAR 0 1 0 1 1 0
da da PAR 0 1 1 0 1 0
da da da NEPAR 0 1 1 1 0 1
da NEPAR 1 0 0 0 0 1
da da PAR 1 0 0 1 1 0
da da PAR 1 0 1 0 1 0
da da da NEPAR 1 0 1 1 0 1
da da NEPAR 1 1 0 0 1 0
da da da PAR 1 1 0 1 0 1
da da da PAR 1 1 1 0 0 1
da da da da NEPAR 1 1 1 1 1 0
Sl.6. Pravila reducirane igre par-nepar definirana "da/ne" tablicom
(upisano je "da" ukoliko je igrač pokazao odgovarajući prst) i odgovarajuća tablica stanja
Uvijek je dobro vidjeti može li se problemu "prići" i na drugi način i možda dobiti jednostavnije rješenje i/ili skratiti postupak da se do rješenja doĎe. Najbolja3 rješenja obično su i ona najjednostavnija.
Budući da svaki igrač može pokazati samo paran ili neparan broj prstiju, to on ima na raspolaganju svega dvije različite mogućnosti. U tom smislu nije bitno pokaže li igrač jedan, tri ili svih pet prstiju, a isto je tako svejedno je li igrač pokazao dva, četiri prsta ili nijedan. Stoga najprije za jednoga igrača odredimo je li podigao paran ili neparan broj prstiju. Nakon toga jednostavno je odrediti pobjednika jer je zbroj dva parna broja, kao i zbroj dva neparna broja paran broj, a zbroj parnog i neparnog broja uvijek je neparan.
U verziji igre u kojoj svaki od igrača može podići najviše dva prsta, Igru definiraju tablice na slici 7.
3 Najbolje rješenje u smislu optimalnog ne postoji ukoliko ima više
kriterija kojima to rješenje vrednujemo. U svakom slučaju zanimaju nas
rješenja s manjim brojem sklopova i jednostavnijim vezama.
1616 MIPRO 2012/CE
P
alac
Kaž
iprs
t PAR/
NEPAR
Igrač
PAR
Igrač
NEPAR
PobjeĎuje
igrač
ne ne PAR NEPAR NEPAR PAR
ne da NEPAR NEPAR PAR NEPAR
da ne NEPAR PAR NEPAR NEPAR
da da PAR PAR PAR PAR
P K R I'
P I'N IP IN
0 0 0 0 0 1 0
0 1 1 0 1 0 1
1 0 1 1 0 0 1
1 1 0 1 1 1 0
Sl.7. Pravila reducirane igre par-nepar definirana "da/ne" tablicom koja uključuju pretpostavku da svaki igrač ima dvije bitno različite strategije;
i njima odgovarajuće tablice stanja
Algebarski:
Shema na slici 8 prikazuje odgovarajući logički sklop.
Primijetimo da se ovakvim pristupom jednostavno može riješiti i polazna igra u kojoj svaki igrač može podići svih pet prstiju. Naime, ako se broj prstiju poveća treba samo promijeniti sklop koji odreĎuje strategiju igrača, a ta je, podiže li on paran ili neparan broj prstiju (v. sliku 9.).
Sl. 8. Logički sklop pojednostavljene igre par-nepar (uz pretpostavku da svaki igrač ima dvije bitno različite strategije)
Pal
ac
Kaž
iprs
t
Sre
dnji
prs
t
Prs
tenja
k
Mal
i p
rst
PAR/
NEPAR A B C D E R
PAR 0 0 0 0 0 0
da NEPAR 0 0 0 0 1 1
da NEPAR 0 0 0 1 0 1
da da PAR 0 0 0 1 1 0
da
NEPAR 0 0 1 0 0 1
da da PAR 0 0 1 0 1 0
da da PAR 0 0 1 1 0 0
da da da NEPAR 0 0 1 1 1 1
da NEPAR 0 1 0 0 0 1
da da PAR 0 1 0 0 1 0
da da PAR 0 1 0 1 0 0
da da da NEPAR 0 1 0 1 1 1
da da PAR 0 1 1 0 0 0
da da da NEPAR 0 1 1 0 1 1
da da da NEPAR 0 1 1 1 0 1
da da da da PAR 0 1 1 1 1 0
da
NEPAR 1 0 0 0 0 1
da
da PAR 1 0 0 0 1 0
da
da PAR 1 0 0 1 0 0
da
da da NEPAR 1 0 0 1 1 1
da
da PAR 1 0 1 0 0 0
da
da da NEPAR 1 0 1 0 1 1
da
da da NEPAR 1 0 1 1 0 1
da
da da da PAR 1 0 1 1 1 0
da da PAR 1 1 0 0 0 0
da da da NEPAR 1 1 0 0 1 1
da da da NEPAR 1 1 0 1 0 1
da da da da PAR 1 1 0 1 1 0
da da da NEPAR 1 1 1 0 0 1
da da da da PAR
1 1 1 0 1 0
da da da da PAR 1 1 1 1 0 0
da da da da da NEPAR 1 1 1 1 1 1
Sl. 9. Pravila kojima je definirana strategija igrača uz pretpostavku da
on može podići svih pet prstiju, prikazana "da/ne" tablicom te njoj
odgovarajućom tablicom stanja
Odgovarajući logički izraz glasi:
(1)
MIPRO 2012/CE 1617
Logički izraz uvijek nastojimo pojednostaviti, to jest zamijeniti ga ekvivalentnim logičkim izrazom koji je jednostavniji od polaznog: ima manje operanada i/ili operatora. Iako se u ovom slučaju algebarski postupak minimizacije čini odveć kompliciran, slutimo da bi on ipak mogao biti moguć. Naime, podizanje 0,2 ili 4 prsta ima isti ishod. Isto tako, ishod se neće promijeniti podigne li igrač 1,3, ili 5 prstiju.
No mi već imamo riješen zadatak u kojem svaki igrač podiže dva prsta. Označimo li ulaze simbolima A i B (svaki naznačuje je li prst podignut ili nije), tada je, kako smo vidjeli, rezultat dan formulom
.
Ovo rješenje možemo upotrijebiti pri rješavanju općenitijeg u kojem igrač može podići svih pet prstiju. Rezultat podizanja prvog para prstiju označimo s
,a rezultat podizanja drugog para prstiju označimo s R2, odgovarajuća formula je
.
Preostao je još peti prst E i njegovu oznaku ne mijenjamo. No sada ulaze A i B možemo zamijeniti ulazom R1, a ulaze C i D ulazom R2 pa dobijemo sljedeću tablicu stanja (Sl.10).
R1 R2 E R
0 0 0 0
0 0 1 1
0 1 0 1
0 1 1 0
1 0 0 1
1 0 1 0
1 1 0 0
1 1 1 1
Sl. 10. Tablica stanja kojom je definirana strategija igrača uz
pretpostavku da on može podići svih pet prstiju
Odgovarajuća formula je:
Odnosno:
(2)
Lako je provjeriti da se tablice istinitosti izraza (1) i (2) podudaraju u vrijednosti rezultata. To znači da smo korištenjem pomoćnih zadataka uspjeli pojednostaviti logički izraz (1).
Shemom na slici 11 prikazan je odgovarajući logički sklop. Pri projektiranju korišten je podsklop koji realizira igru par-nepar u kojoj svaki igrač može podići najviše dva prsta.
Sl. 11. Logički podsklop igre par-nepar (svaki igrač može podići pet
prstiju)
IV. PROGRAMSKO RJEŠENJE
Do rješenja problemske situacije može se doći i
pomoću računala implementiranjem odgovarajućeg programa. Ovdje su navedeni primjeri procedura realiziranih u jeziku Pascal koje bi se mogle upotrijebiti za "proglašavanje" pobjednika u opisanim igrama.
Slijedi programsko rješenje igre PAPIR-ŠKARE-DIJAMANT. Primijetimo da se dojavljuje i neriješeni rezultat, što je u sklopovskom rješenju izostavljeno.
TYPE IZBOR = (PAPIR, SKARE, DIJAMANT);
MOGUCI_ISHOD = (IGRAC_1, IGRAC_2, NERIJESENO);
PROCEDURE PAPIR_SKARE_DIJAMANT (VAR
IZBOR_IGRAC_1, IZBOR_IGRAC_2 ; IZBOR; VAR POBJEDNIK: MOGUCI_ISHOD);
BEGIN
IF IZBOR_IGRAC_1 <> IZBOR_IGRAC_2 THEN IF (IZBOR_IGRAC_1 = DIJAMANT) AND
(IZBOR_IGRAC_2 = SKARE) OR
(IZBOR_IGRAC_1 = SKARE) AND (IZBOR_IGRAC_2 = PAPIR) OR
(IZBOR_IGRAC_1 = PAPIR) AND
(IZBOR_IGRAC_2 = DIJAMANT) THEN POBJEDNIK := IGRAC_1
ELSE POBJEDNIK := IGRAC_2
ELSE
POBJEDNIK := NERIJESENO END;
Programsko rješenje igre PAR-NEPAR ilustrira
istoimena procedura:
1618 MIPRO 2012/CE
TYPE PRSTI = (PALAC, KAZIPRST,SREDNJI_PRST,
PRSTENJAK, MALI_PRST);
IZBOR = ARRAY [PALAC..MALI_PRST] OF
BOOLEAN; MOGUCI_ISHOD = (PAR, NEPAR);
PROCEDURE PAR_NEPAR (VAR IZBOR_IGRAC_PAR, IZBOR_IGRAC_NEPAR : IZBOR;
VAR POBJEDNIK : MOGUCI ISHOD);
VAR ZBROJ_PRSTIJU : INTEGER;
I _ PRSTI;
BEGIN
ZBROJ_PRSTIJU := 0;
FOR I := PALAC TO MALI_PRST DO BEGIN IF IZBOR_IGRAC_PAR[I] = TRUE THEN
ZBROJ_PRSTIJU := ZBROJ_PRSTIJU+1;
IF IZBOR_IGRAC_NEPAR[I] = TRUE THEN ZBROJ_PRSTIJU := ZBROJ_PRSTIJU+1;
END;
IF (ZBROJ_PRSTIJU MOD 2) = 0 THEN POBJEDNIK := PAR
ELSE
POBJEDNIK := NEPAR END;
V. ZAKLJUČAK
U radu je prezentirano projektiranje logičkih sklopova na nastavi informatike. Kao primjer odabrane su poznate igre: papir-škare-dijamant i par-nepar. Za svaku je napisana detaljna specifikacija koja služi kao podloga za dalju razradu. Rezultat razrade je tablica stanja i
odgovarajuća logička funkcija koja se, ukoliko je to moguće minimizira, nakon čega slijedi crtanje sheme kao podloge za izradu sklopa. Na primjeru igre par-nepar pokazano je koliko je kod projektiranja logičkih sklopova važna pronicljivost i snalažljivost projektanta. U ovom je slučaju drukčijim pristupom dobiveno još jedno rješenje koje je jednostavnije i bolje. Budući da svaka funkcija može biti ostvarena alternativno: pomoću hardvera ili softverski, predložene su i procedure kojima se ostvaruje programsko rješenje danih igara.
Ovakvi primjeri omogućuju učenicima uvid u činjenicu da je računalni stroj zapravo logički stroj. Naime, na sličan se način primjenom Booleove algebre grade i složeniji sklopovi – dijelovi računala.
UvoĎenje ovakvih i sličnih problemskih zadataka u nastavu informatike ima i druge prednosti:
dobro odabranim zadacima postiže se da veći broj učenika učestvuje u rješavanju problema;
uče se strategije rješavanja problema, razvija logičko mišljenje i potiče kreativnost.
LITERATURA
[1] Polya, George, Kako ću riješiti matematički
zadatak, 2. izdanje, Školska knjiga, Zagreb, 1966
[2]Skočir, Vesna, Informatika za maturu, koncepti
računala, tehnologije i aplikacija, priručnik za
pripremu državne mature, Element, Zagreb, 2010
MIPRO 2012/CE 1619
Top Related