Vissza az előzőleg látogatott oldalra (nem elérhető funkció)Vissza a tananyag kezdőlapjára (P)Ugrás a tananyag előző oldalára (E)Ugrás a tananyag következő oldalára (V)Fogalom megjelenítés (nem elérhető funkció)Fogalmak listája (nem elérhető funkció)Oldal nyomtatása (nem elérhető funkció)Oldaltérkép megtekintése (D)Keresés az oldalon (nem elérhető funkció)Súgó megtekintése (S)

Informatika oktatása / Egy számítógép modell – A számítógépről népszerűsítő stílusban /2. Első felvonás

Egy számítógép modell – A számítógépről népszerűsítő stílusban

2. Első felvonás

amelyben megismerjük az alapszituációt,

és – természetesen – a szereplőket

Bemutatkozás gyanánt: e drámának – mint mindegyiknek – szereplői is vannak. Legfontosabb szereplője, amolyan főszereplője Lóti Futi. Mellék-, bár semmi esetre sem nélkülözhető szereplői: Össze Ady, K. I. Vony, Össze Szorzy, ... Sejthető, hogy a főszereplő egy rendkívül agilis, temperamentumos, környezetében meghatározó jellemű egyéniség. A többiekről talán csak annyit, precíz, ámbár kissé tesze-tosza, vagy szelídebben fogalmazva béketűrő, befolyásolható személyiségek.

Néhány szót kell még szólni a helyszínről, ahol a történések zajlanak majd. Egy szoba két ablakkal, igen szerény bútorzattal: egy fiókos szekrény, egy asztal rajta néhány notesszal, s körülötte székek.

Rendkívüli az előadás, ez abból is látszik, hogy nem „poéngyilkosság” a mondanivalót előre ismerni, ugyanis a történés maga lesz oly váratlan fordulatokkal tűzdelt, hogy a műélvezetet ez maga megteremti. Kezdődjék hát! Íme:

A látvány: a puritánul berendezett szobában Lóti Futi a jobboldali ablaknál áll, míg a többiek az asztal körül egy-egy széken ülnek. (Függöny föl!)

A felvonásban a szereplőknek a következő konfliktussal kell megbirkózniuk – persze a mi segítségünkkel –; ugyanis elfelejtettem említeni, hogy a dráma fordulatossága nem kis részben rajtunk fog múlni: mi töltjük be a Rendező hálátlan szerepét; nekünk kell a történet fonalát úgy gombolyítani, hogy a végső mondanivaló kigombolyodjék, akarom mondani: kigömbölyödjék, egyszóval kidomborodjon.)

Tehát a kulcsprobléma: E gyülekezet adjon választ a világot oly régóta foglalkoztató súlyos kérdésre: igaz-e, hogy

X²+Y²=Z²!

Így szól a rendező

Az alapszituáció: Lóti Futi, mint egy karmester, a székeken lustálkodó szereplőket – hogy el ne bóbiskoljanak – felváltva, hol egyiket, hol másikat mozgósítja, testre szabott munkával látja el. Azt, hogy mi az éppen megoldandó részfeladat, ő is a szekrény egyes fiókjaiban található papírokról tudja meg. Ezek a papírok tartalmazzák tehát az események menetét olyan apró utasítások formájában, amelyeket az egyes szereplők végre képesek hajtani. Ennek megfelelően Futi többnyire a szekrény és az asztal között cikázik ukázokat és adatokat adva a megfelelő alárendeltnek. Amazok az adatokat valamelyik noteszre írva kapják, és munkájuk gyümölcsét (az eredményt) szintén valamely noteszre „tálalják”. Meg kell jegyeznünk, hogy akár a fiókban lévő papírról, akár a noteszbeliről csak az utoljára ráírt adatot lehet leolvasni (de azt persze akárhányszor). (Mintha a ráírás előtt leradíroznák.) A feladat tehát ennek koreografálása, vagyis az ukáz-sorozatnak a kigondolása, elhelyezése a fiókokban. Első dolog nyilván meggondolni, hogyan válaszolható meg elvileg a kérdés. Számoljuk ki és írjuk ki az X²+Y²-Z² eredményét! Ha valaki 0-t lát, akkor tudja a választ, hogy igaz, különben pedig, hogy hamis. Most már jöhet e nagystílűen elintézett megoldás aprópénzre váltása, vagyis maga a részletes utasítássorozat.

Ki kell találnunk olyan elemi utasításokat, amelyeket várhatólag a szereplők végre tudnak hajtani. Az elsőt mindjárt Futi kapja: szerezze be a szükséges adatokat, persze egyenként, először az X értékét, majd a Y-ét, végül a Z-ét! Ezt jegyezzük le, mondjuk így: Olvasd be az adatot! Igenám, de honnan és hová tegye (nem káptalan az ő feje sem, nem beszélve társairól)? Honnan: a jobboldali ablakon át. Hová: valamelyik, pl. az A jelű noteszbe. (Hogy mindig tudjuk, hogy melyik noteszről van szó, címkézzük meg őket az ABC betűivel!) Ezután az Olvasd be az adatot utasítás mindig azt jelenti, hogy Futi rohanjon a jobboldali ablakhoz, várja meg míg valamit kap, és azt írja az A notesz lapjára. Most folytathatjuk a második adat beolvasásával; illetve mégsem. Hiszen az A notesz lapja már „foglalt”, csak egy dolog írható rá. Pontosabban az utolsó ráírt adat olvasható el csupán. A konfliktus feloldása: a már beolvasott adatot tegyük el egy biztos helyre! Mi lehet biztonságosabb, mint a szekrény valamelyik fiókja? Hogy a sok fiók között ne keveredjünk el, sorszámozzuk meg őket alulról felfelé 0-val kezdve. Továbbá Lóti Futi alapjellemvonásaként tételezzük föl azt, hogy mindig a legalsó fióknál kezdi az ukázok kivételét, és sorban halad ebben a tevékenységben; s azt, hogy éppen hol (mely sorszámúnál) tart a fiókrángatásban egy speciális – csak ő általa használt – jegyzettömbbe írja föl.

A következő adat beolvasása előtt Futinak adjuk azt a parancsot, hogy Tedd el az A noteszbelit ... a 15. fiókba! Megvan már a 0. és az 1. fiók tartalma:

Fióktartalom

Megjegyzés

0: Olvasd be az adatot

1: Tedd el az A noteszbelit a 15. fiókba

15⇐X

A folytatás már könnyen megy:

Fióktartalom

Megjegyzés

2: Olvasd be az adatot

3: Tedd el az A noteszbelit a 16. fiókba

16⇐Y

4: Olvasd be az adatot

5: Tedd el az A noteszbelit a 17. fiókba

17⇐Z

Most következik az „érdemi” munka: a számolás. Lóti Futi az utasításból látja, hogy ő maga meg tudja-e csinálni, illetve, hogy kit kell felbiztatni a tennivalók elvégzésére. Ilyenkor persze megvárja, amíg az illető végez a munkájával. (Erről még kicsit később szólunk.) Nincs sajnos olyan segéderő, aki négyzetre tudna emelni, így azután erre Össze Szorzyt próbáljuk rávenni. Először is házhoz kell szállítani a szükséges adatot (az X-et); hiszen – mint tudjuk – a mellékszereplők meglehetősen helyhez (pontosabban: székhez) kötöttek. Ezért ki kell adnunk két olyan parancsot, amely révén a fiókból a noteszre kerül a szorzás mindkét adata (az X-érték két noteszre is rá kell, hogy kerüljön): Tedd vissza a 15. fiókbelit az A noteszra, majd a Tedd vissza a 15. fiókbelit a B noteszra! Ezt követően már a szorzásnak nincs akadálya.

Fióktartalom

Megjegyzés

6: Tedd vissza a 15. fiókbelit az A noteszra

7: Tedd vissza a 15. fiókbelit a B noteszra

8: Szorozd az A noteszen lévőt a B-n levővel

(az eredmény az A noteszben)

X*X

9: Tedd el az A noteszbelit a 18. fiókba

10: Tedd vissza a 16. fiókbelit az A noteszra

11: Tedd vissza a 16. fiókbelit a B noteszra

12: Szorozd az A noteszen lévőt a B-n levővel

(az eredmény az A noteszben)

Y*Y

13: Tedd vissza a 18. fiókbelit az B noteszra

14: Add hozzá az A noteszbelihez a B-n levőt

15: Tedd el az A noteszbelit a 19. fiókba

19⇐X*X+Y*Y

16: Tedd vissza a 17. fiókbelit az A noteszra

17: Tedd vissza a 17. fiókbelit a B noteszra

18: Szorozd az A noteszen lévőt a B-n levővel

(az eredmény az A noteszben)

Z*Z

19: Tedd vissza a 19. fiókbelit a B noteszra

20: Vond ki az A noteszbeliből a B-n levőt

Z*Z-X*X-Y*Y

Nem marad más hátra, mint az eredmény közlése, vagyis a másik ablakhoz szállítása:

Fióktartalom

Megjegyzés

21: Írd ki az adatot

Hej, de hisz nem jó így a rendezői utasítás: már a 15. fiókot (és az azt követő néhányat) adatok tárolására szántuk, most meg parancsokat terveznénk oda?!? Megoldás: javítsuk át az utasításokban a fiók-sorszámokat 10-zel nagyobbra, s akkor megszűnik ez a konkurencia. Persze a dolog még nincs egészen ekkor sem rendben, hisz Futi rángatja tovább a fiókokat, és hajtaná (hajtatná) végre az ukázokat a 22., 23., 24. … fiók tartalma alapján, ami – mondani sem kell – furcsa eredményre vezethetne. Befejezésként Lóti Futit utasítani kell arra, hogy nincs tovább:

Fióktartalom

Megjegyzés

22: Állj

Ezzel megvolnánk; csakhogy hogyan értessük meg magunkat Lótival, mert hogy ilyen hosszadalmasan nem lenne jó, az biztos, sőt e fogalmazványszerű programstílus egyértelműsége sem biztos. Az ötlet (neumanni): feleltessünk meg minden utasításnak valamilyen számkódot, és azt írjuk be az egyes fiókokba. (Így az adat- és utasítástárolás egyöntetűsége is megvalósul, ami a tárolás „szekrénytani” [ti. műszaki] szempontjából nagy előnyt jelent.) Vegyük sorba a fenti utasításokat, és hozzárendelünk egy-egy számot, mint kódot, így kódoljuk újra a fenti programot!

utasítás

kód

Olvasd be …

Tedd el …

Tedd vissza …

Szorozd meg …

Add hozzá …

Vond ki …

Írd ki …

Állj

0

1

2

3

4

5

6

7

Így a program a következőképpen alakul:

Fióksorszám

Fióktartalom

0:

0

A következő utasítás kódolásánál azt kell észrevennünk, hogy az, amit eddig egyetlen utasításként jegyeztünk le, és egyetlen fiókba helyeztünk el, 3 dolgot is magába foglalt; nevezetesen: melyik utasításról van szó, mely noteszre és mely fiókra vonatkozik (az utóbbi kettőt az utasítás operandusainak mondják, és az „operálandókat” jelentik). Mivel egy fiókba csak egyféle dolgot tehetünk, ehhez az utasításhoz 3 fiókra van szükségünk. Mindez alaposan bonyolítja a mi helyzetünket is, de Lóti Futiét pláne. Tegyük föl, hogy Lóti Futi nem jön ettől zavarba! Folytassuk tehát a kódolást ennek reményében! Persze föltéve egy elég természetes notesz↔kód egymáshoz rendelést:

notesz

kód

A

B

C

1

2

3

Fióksorszám

Fióktartalom

Fióksorszám

Fióktartalom

1:

4:

5:

8:

9:

10:

13:

16:

19:

22:

25:

1 1 25

0

1 1 26

0

1 1 27

2 25 1

2 25 2

3 1 2

1 1 28

2 26 1

2 26 2

28:

31:

34:

37:

40:

43:

46:

49:

52:

55:

56:

3 1 2

2 26 2

4 1 2

1 1 29

2 27 1

2 27 2

3 1 2

2 29 2

5 1 2

6

7

Mint látható a keletkezett programkód fiók-sorszámai alaposan elcsúsztak, s emiatt az utasításbeli fióksorszámokat újból javítanunk kell, – mondjuk – 50-nel megnöveljük. De ezeket a változtatásokat most már csak „fejben” végezzük el! Ja, ... és még egy dolog látszik – az tudniillik –, hogy nem látszik a fióktartalmakon: mi utasítás, mi adat, csak attól függ, hogyan kezeljük! (Csak a könnyebb áttekinthetőség kedvéért írtuk utasításnyi „csoportonként”.)

Egy aprócska észrevételt kell tennünk még! Nevezetesen, nem számoltunk azzal az elég természetes körülménnyel, hogy – bár rettentő sebességgel tudnak dolgozni szereplőink – nem egyforma ideig tart egy összeadás, egy szorzás. Így elképzelhető lenne az a szerencsétlen helyzet, hogy Lóti a saját türelmetlen tempójában idejekorán kitépi Szorzy keze közül a félig kész eredményt. Ez elkerülendő az asztalon elhelyezünk egy metronómot, amelyet – mondjuk – a leglassúbb szereplőhöz igazítunk, és Lótinak meghagyjuk, hogy ennek ütemében osztogassa ukázait.

Vissza a tartalomjegyzékhez

Szünet

A felvonás szünetében beszéljük meg a tapasztalatokat; fogalmazzuk meg „számítástechnikaiul” a fontos gondolatokat!

Fogalom

Mesebeli megfelelő

központi (vezérlő) egység
Central Processor Unit

Lóti Futi

(operatív) tár
operatív memória

fiókos szekrény

aritmetikai/logikai egység
Arithmetical Logical Unit

mellékszereplők

be-/kimeneti egység
Input-Output (Unit)

ablakok

Az ábra a Neumann elvű számítógép blokksémáját ábrázolja.A Neumann elvű számítógép

Fogalom

Mesebeli megfelelő

óra(jel-generátor)

metronóm

bájt (=8 bit)

fiók: egyként kezelhető információ, amely 8 bitből

(azaz 8 kettes számrendszerbeli számjegyből) álló szám

belső regiszterek

noteszek, az átmeneti tárolói a számításnak

programszámláló
(Program Counter)

Lóti saját notesze, ami azt mutatja meg, hogy

hol (melyik fiók feldolgozásánál) tart éppen

cím

fióksorszám

gépi utasítások

Tedd el/vissza, Add hozzá, Vond ki, Olvasd be, Írd ki, Állj

gépi kód

utasításokhoz rendelt számok

gépi kódú utasítás

operációs (műveleti) kód + operandusok (címei)

Feladat

Gondolkozz el a következő „misztikusan hangzó” kérdésen: a kitalált programunk, hogy kerül be a szekrény fiókjaiba? (Az „első lökés” kérdése.)

Válaszlehetőségek:

  • A fiókos szekrénybe eleve elhelyezzük (⇒ mint pl. az egykori home computerek).
  • Második lehetőség: egy állandóan „bent tartózkodó” betöltő program segítségével, amit a szakzsargon 'boot strap' (másutt Initial Program Loader-nek) programnak hív, és igen szemléletesen „csizmahúzót” jelentve fejezi ki azt, hogy az ő segítségével válik a gép indulásra késszé (⇒).

Mindkét esetben a valamilyen alapintelligenciának eleve a memóriában kell lennie, ebből következik, hogy a memóriának legalább kétfélének kell lennie:

  • írható és olvasható memória (RAM=Random Access Memory),
  • csak olvasható memória (ROM=Read Only Memory).

Vissza a tartalomjegyzékhez

Új Széchenyi terv
A projekt az Európai Unió támogatásával, az Európai Szociális Alap társfinanszirozásával valósul meg.

A tananyag az ELTESCORM keretrendszerrel készült