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 /4. Harmadik felvonás

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

4. Harmadik felvonás

amelyben kiderül, hogy Lóti és Co. tanulékony,

és hogy éppen ez a fő erőssége.

(Függöny föl!)

Ahelyett, hogy folytatnánk az eddigi probléma részleteinek további boncolgatását inkább álmodozzunk! Milyen jó volna megtanítani valahogy Lótit magát nyelvünk megértésére, de legalábbis közelíteni az ő „nyelvét” az emberi nyelvhez! Vagy ez reménytelen? Nem! Hogy mi is lenne jó, mit is várnánk el legszerényebb álmaink szerint tőle? Lássuk nagystílű terveinket! Az általunk elképzelt „gusztusos” ukáz-sorozatot Lóti és Társai beolvassa, közben „megemészti”, ha tudja. Az „emésztés eredményét”, azt az ukáz-sorozatot, amely számára közvetlenül is érthető, egy másik fióktartományba helyezi el. Ezt fogja később végrehajtani.

A rendező

Példa

Utasításnév

Utasítás

Olvasd

Olvasd be az adatot!

Tégy

Tégy ... noteszbe ...-t!

Szorozd

Szorozd a ... noteszen lévőt a ... noteszen levővel!

...

...

Példa

Folytasd OTT

...

OTT: Tégy A,'I'

Példa

Olvasd

Eltedd A,XOP

...

Állj

XOP:

YOP:

ZOP:

Figyelem: utóbb kimondatlanul feltételeztük, hogy „egységnyi” (azaz egy fióknyi) méret tartozik mindhárom munkaváltozónkhoz! Lehet, hogy időnként szükség lesz még további két információ lejegyzésére:

Egy ilyen „barátságosabb” nyelven a fenti ukáz-sorozat valahogy így nézne ki:

Olvasd

Eltedd A,XOP

Olvasd

Eltedd A,YOP

Olvasd

Eltedd A,ZOP

Visszatedd A,XOP

Visszatedd B,XOP

Szorozd A,B

Eltedd A,XX

...

Folytasd nn,OTT

OTT: Tégy A,'N'

Írd

Tégy A,'E'

Írd

Tégy A,'M'

Írd

Állj

... és ahova „kijön” a fióksorszám, ott legyenek a néven nevezett adatfiókok! Ezt az alábbiakkal hoznám tudomására a szavaimat értelmező Lóti számára:

XOP:

YOP:

ZOP:

XX:

Vegyük észre, hogy ez a kis „szívesség” Lótitól, ez az automatizmus mekkora haszonnal jár számunkra: nem véthetjük el a fióksorszám kiszámítását, sőt az utasításkódolás veszélyes elírásától is megmenekülhetünk! Mit kell tennünk ahhoz, hogy ilyen kényelmesen fogalmazhassunk Lótinak? Válaszunk: tanítsuk meg arra, hogy

Ezeket az ismereteket akár táblázatokba is tömöríthetjük. Az „ukáztábla”:

Ukáz

Lóti kód

Hossz

Olvasd

0

1

Eltedd

1

3

Visszatedd

2

3

...

...

...

... és a „notesztábla”:

Notesz

Lóti kód

A

0

B

1

C

2

...

...

Ezután Lóti először mondanivalónkat „végigrágcsálja” (esetleg többször is), majd elhelyezi fiókjaiba a saját maga által saját maga számára „lefordított” kódot, hogy azután végrehajt. Minderre tehát először nekünk kell megtanítani, de ha ezt egyszer megtesszük, meg lesz a jutalma.

Álmainkat szövögessük tovább! Mi lenne ha ..., ha „bonyolultabb” dolgokat is mondhatnánk Futinak? Például egy matematikus szeretne mindenféle képlettel dolgozni:

négyzetgyök(X^2+Y^2-Z^2);

vagy a korábbi feladat megoldását akár így is elképzelhetjük:

Utasítás

Megjegyzés

X, Y, Z: Egész

Be: X,Y,Z

Ha X*X+Y*Y-Z*Z=0 akkor

Ki: "IGAZ"

különben

Ki: "HAMIS"

Elágazás vége

⇐ a változók ábrázolása (fiókszáma)

⇐ beolvasás, és konverzió karakteresből egész ábrázolásúba

⇐ formula-kiértékelés, feltételvizsgálat, és a folytatás megszervezése

⇐kiírás

.

⇐kiírás

.

Ehhez megtanítanánk őt először is megérteni nyelvünket, majd arra is, hogyan hajtsa végre óhajainkat. Úgy hiszem: senkinek sem tűnik ez reménytelennek! Ahogy az előbb is Lótinak a tudást néhány táblázatba sűrítettük, most is megpróbálkozhatunk ezzel. Itt persze érezhetően nehezebb dologról van szó, és aligha várható el, hogy csupán egy-két táblázattal megoldhatjuk a gondot. Ami nem tűnik nehéznek, a fenti példából rekonstruálható nyelvünk szabályait rögzítő ismeret táblázatolása. Tessék észrevenni, hogy akárcsak egy természetes – mondjuk – angol nyelvű mondat szavainak a rekonstruálásához ismerni kell a nyelv mondattanát: tipikus kijelentő, tagadó, kérdő stb. mondat szerkezetét, amelyeket gyakorta „szó útjelző táblák” (pl. „do”/„did”/„can” stb.) egyértelműsítenek. Ezeknek a szerepébe lép itt a nyelvünk kulcsszavai: „Be:”/„Ha”/„akkor” stb., és a műveleti jelek („*”/„+”/„=”/ stb.). A képletek megfejtéséhez elegendőnek látszik, ha ismeri Lóti az egyes műveletek „sorrendiségét” (ezt egy újabb táblázattal megadhatjuk). Ami a végrehajtást illeti: arra két ötletünk is adódik.

A mélyebb részleteket most ne firtassuk!

Vissza a tartalomjegyzékhez

Szünet

Nos, ébredjünk mély álmunkból! A szünet és a „száraz” újrafogalmazás következik.

A gép „túlnőhet önmagán”, mert rendelkezik a tanulás képességével.

Az elkövetkező felvonások mottója az lesz (eltérve az eddigi három felvonás banális problémájától), hogy miképpen küzdték (küzdjük) le e tanulási képesség felhőtlen kibontakozásának útjába került időleges korlátokat. A problémák minőségileg nagyobbak lesznek, így nemigen nyílik módunk részletes forgatókönyv írására, megelégszünk a problémák vázlatos megoldásával, annak végiggondolásával: hogyan küzdhető le (elvileg) az akadály.

Feladat

1. Adjuk meg a magyar nyelvbeli egyszerű mondat leírását! A leíráshoz használjuk föl az ún. BNF metanyelvet! A BNF-ről a következőket kell tudnunk:

  • A BNF elemei:
  • szabályok = a nyelvet alkotó elemek képzésének formális szabályai,
  • nyelvi elemek = alapelemek (terminálisok),
  • nemterminálisok = amik összekapcsolják a nyelv alapelemeit,
  • metaszimbólumok =
  • ::= – szabályhozzárendelés,
  • | – vagylagosság,
  • <...> – nemterminálisokat kiemelő, határoló zárójelek.
  • A BNF-beli szabály alakja:

nemterminális ::= nyelvi egységek (terminálisok, nemterminálisok) BNF-kifejezése

Példa

<egyszerű mondat> ::= <alanyi rész> <állítmányi rész>

<alanyi rész> ::= <névelő> <jelző> <alany>

<állítmányi rész> ::= <határozó> <állítmány>

<alany> ::= Bodri | körte | ...

<állítmány> ::= áll | ül | lóg | kukacoskodik | érik | ...

<jelző> ::= érett | pajkos | ...

<névelő> ::= a | egy

<határozó> ::= nyugodtan | zamatosan | tétován | ...

Mondjunk néhány példát, amely a fentieknek megfelel!

Miért nem jó, s hogyan kellene a szabályokat módosítani, hogy helyesek (szabályosak) legyenek a következő mondatok:

„Nyugodtan ül a pajkos Bodri” (rossz az alanyi és állítmányi rész sorrendje)

„A körte érik” (nincs jelző és határozó)

A szabályoknak megfelel-e az alábbi példamondat?

„A érett Bodri tétován kukacoskodik” (igen, de magyarul „az” a névelő, továbbá paradox a tartalma = szemantika!)

Feladat

2. Gyakorlásként tanítsuk meg magyarul a LOGO teknőcöt!

  • Az alábbi utasításokkal vezérelhető:
  • menj = menj az orrod után 1 egységnyit
  • vissza = menj az orrod ellenében 1 egységnyit
  • balra = fordítsd az orrodat 30 fokkal balra
  • jobbra = fordítsd az orrodat 30 fokkal jobbra
  • Problémák:
  • (A) Egy teknőcvezérlő programnak olyannak kell lennie, hogy a végére visszakerüljön a kezdőpontba, ezért (ezt a szemantikai elvárást szintaktikai szinten csak úgy tudjuk garantálni, hogy) minden mozgást visszafelé is megcsinálunk. Mi a szintaxisa a teknőcvezérlő programnak?
  • (B) Tegyünk a teknőcvezérlő nyelvbe 'ismétlés' utasítást, de eltekinthetünk a kezdőpontba való visszatérés feltételétől!

Megoldás:

<program> ::= <programnév> <programtörzs> <programvég>

<programnév> ::= <név> :

<programvég> ::= vége.

<programtörzs> ::=

menj <programtörzs> vissza |

vissza <programtörzs> menj |

balra <programtörzs> jobbra |

jobbra <programtörzs> balra |

<semmi>

...

Ha paraméterezzük az utasításokat (menj 10, balra 90 ...), akkor hogyan módosítandó a szabályzat, ha lehetséges?

(Nem lehetséges! Ui. nem garantálható, hogy menj 10 párjaként vissza 10 szerepeljen! A nyelvtani szabályokba nem építhető be „emlékezet”, amely felidézné külön-külön az egyes paramétereket.

... menj <szám> <...> vissza <szám> ...

<szám> ::= 0 | 1 | 2 | 3 | ...

(Nem egy-esélyes a szabály; nyelvtanilag elválik a paramétert reprezentáló <szám> az előtte álló, tartalmilag hozzátartozó kulcs-szótól; ismét a szemantika!)

(B)

házi feladat!

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