Cím: SZÁMÍTÁSTECHNIKAI ROVAT Lezárult az ,,Iskolások Programozási Versenye"
Szerző(k):  Appel György 
Füzet: 1981/május, 209 - 214. oldal  PDF  |  MathML 

A szöveg csak Firefox böngészőben jelenik meg helyesen. Használja a fenti PDF file-ra mutató link-et a letöltésre.

SZÁMÍTÁSTECHNIKAI ROVAT

 

(Rovatvezető : Ada-Winter Péter)

 

Lezárult az "Iskolások Programozási Versenye''

 

Az 1981 júliusában Lausanne-ban (Svájc) rendezendő 3 Számítástechnikai Oktatási Világkonferencia kezdeményezésére számos országban, köztük hazánkban is pályázatot hirdettek meg iskoláskorúak részére alkalmazási programozási feladatok kidolgozására. A pályázatok benyújtásának határideje 1980. december 31-ével járt le. A versenyre 38 pályamunka érkezett, ebből két dolgozatnak a készítője szerzőpáros volt. Másik három tanuló két-két pályamunkával jelentkezett. A pályázók 14- iskolából kerültek ki, éspedig 8 budapestiből 23 tanuló, 6 vidékiből 14 tanuló.
A pályamunkák értékelése két lépcsőben történt. Az első fordulóban minden dolgozatot legalább két, egymástól független, a pályázó nevét nem ismerő bíráló véleményezte. A bírálók egységes bírálati szempontok érvényesítése érdekében egy részletes, magyarázatokkal kiegészített tesztlapon bírálták a munkákat. Összesen 44 bírálót kértünk fel az ország legkülönfélébb intézményeiből. Arra törekedtünk, hogy a speciális szakmai témák esetében legalább az egyik bíráló az érintett szakterület elismert művelője legyen. Ezt a gyakorlatot követtük pl. a csillagászati, egészségügyi, közlekedési, nyelvészeti stb. tárgyak esetében. Olyan esetekben, amikor az első két bírálat alapján a döntés problematikus lett volna, harmadik bírálat is készült.
Az első fordulóban a bírálók javaslatot tettek arra, hogy mely pályamunka kerüljön a második fordulóba, ill. melyek kapjanak dicséretet. A verseny második fordulójának bíráló bizottságát, zsűrijét a NJSZT Oktatási Szakosztálya kérte fel. A zsüri elnöke Szelezsán János, az NJSZT főtitkár-helyettese, az ÁSZSZ igazgatója volt. Tagjai közt foglalt helyet az MM és a KISZ KB szakmailag is kompetens képviselője. A bíráló bizottság a javaslatok alapján 11 pályamunkát ítélt alkalmasnak a második fordulóban történő megvizsgálásra. A második fordulóban a pályázók nyilvánosan megvédték dolgozataikat, ami abból állt, hogy röviden ismertették a pályamunka tárgyát, majd a zsüri tagjainak ahhoz kapcsolódó szakmai kérdéseire adtak választ. A védések alapján a zsüri az alábbi döntést hozta:
Az első helyre Király Zoltán (Miskolc, Földes F. Gimn., IV. o. t.) "Városi úthálózat szimulációs vizsgálata kiemelt utakon levő zöldhullám szempontjából'' c. dolgozata került. (Tanára Dusza Árpád, szakmai segítői Knuth Előd MTA SZTAKI, Kiss Endre és Ficsór Lajos NME, Miskolc.)
Második helyezést nyert Palasik Sándor (Bonyhád, Petőfi S. Gimn., IV. o. t.) "Insulin secretiós vizsgálat számítógépes értékelése'' c. munkája. (Tanára dr. Jurisits József, segítői Leposa Dezső, Szenczi Márta, Zay István, dr. Bordás István, Toronyi Éva, a szekszárdi Megyei Kórház Rendelőintézetének dolgozói, továbbá dr. Danyi Mária, a tiszafüredi Járási Rendelőintézet orvosa) ; és
Zsuffa Zoltán (Budapest, Piarista Gimn., III. o. t.) "Műfordítások mérhető elemeinek számítógépes összehasonlítása'' c. pályaműve (tanára Kovács Mihály és dr. Jelenits István).
Harmadik helyen végeztek az alábbiak :
Halász Péter (Miskolc, Földes F. Gimn., IV. o. t.) "Naptárnyomtatás'' c. dolgozattal (tanára Dusza Árpád) ;
Kovács Attila (Budapest, Teleki B. Gimn., III. o. t.) "Planet program'' c. pályázatával (tanárai Fedák Gyula és Gémes Imréné, segítői Varga András, MTA SZTAKI és Nagy Sándor, Kozmikus Geodéziai Kutató) és a
Laky Zsolt-Gaál László szerzőpáros (Budapest, Kölcsey F. Gimn., IV. o. t., ill. Radnóti M. Gyak. Gimn. II. o. t.) a "Kifejezés kiértékelő program'' c. munkájával (segítették Frank Lajos és Karafiát László, az SZKI Számítógép Laboratórium munkatársai).
 

A fentieken kívül a döntőbe került és dicséretet kapott Fábry Géza (Budapest, Piarista Gimn., IV. o. t., tanára Kovács Mihály), Fehér Ákos (Budapest, Móricz Zs. Gimn., III. o. t., tanára Némethy Katalin), Fenyvesi Ferenc (Budapest, Hámán K. Közgazd. Szakközépiskola, tanára dr. Szám Lászlóné), Lukács János (Budapest, Piarista Gimn., I. o. t., tanára Kovács Mihály) és Zakar Csaba (Eger, Alpári Gy. Közgazd. Szakközépisk., IV. o. t., tanára Magas László).
 

A verseny első helyezettje jutalmul részt vehet Lausanne-ban a világkonferencián és ott dolgozatát angol nyelven kifüggesztik. A többi helyezett pénzjutalomban részesült és valamennyi nyertes pályamunkáját rövidített formában kifüggesztették az 1981. márciusában Siófokon megrendezett II. Magyar Számítástechnikai Oktatási Konferencián.
 

A nyertes pályamunkák tartalmának rövid ismertetése :
1. Király Zoltán : Városi úthálózat szimulációs vizsgálata kiemelt utakon levő zöldhullám szempontjából.
Adott egy városi közúthálózat, melynek minden csomópontjában közlekedési lámpa van (1. ábra).

Adott továbbá az egyes helyeken az autók érkezési sűrűsége, valamint az egyes utak végén a jobbra, ill. balra kanyarodó autók százalékos aránya. Végül adottak a lámpák működési paraméterei (pl. hogy bizonyos lámpa mennyi ideig piros, ill. zöld színű, a lámpák pillanatnyi állapota az indulási időpontban, melyekkel a lámpák a zöldhullám érdekében egymáshoz hangolhatók).
A programban megfogalmazott feladat a következő :
‐az adott rendszerben szimulálni kell a forgalmat
‐a szimulált forgalom vizsgálata alapján értékelni kell bizonyos kijelölt utakon a zöldhullámot.
A modell több egyszerűsítést is tartalmaz, mint pl. azt, hogy az utak mind kétszer egysávosak.
A rendszer diszkrét időpillanatonként változik, az időléptetés kvantumát 1q=0,36, s időtartam jelenti. A program minden időkvantumban kiszámolja a lámpák pillanatnyi állapotát, továbbá minden autó pillanatnyi helyét, sebességét és gyorsulását. Az autó gyorsulása három kötött érték lehet: -0,5m/q2, vagy 0  m/q2, vagy -0,25m/q2. A karambolokat a rendszer úgy előzi meg, hogy az autók egy követési távolságot tartanak, melynek elméleti értéke 10Vs-5Ve, ahol Vs a saját, Ve az előtte haladó autó sebessége m/q-ban kifejezve (1m/q=10  km/h). A rendszert a következő paraméterek határozzák meg:
‐ az i sorszámú út hossza,
‐ az i sorszámú úton levő útkereszteződések, ill. a végükön levő "ki-, beeresztő helyek'' sorszámai,
‐ a (100+i) sorszámú "beeresztő helyről'' induló út sorszáma,
‐ az i-edik útkereszteződésbe bejövő, valamint kimenő négy-négy út sorszáma,
‐ az utak, útkereszteződések és a "ki-, beeresztő helyek'' száma,
‐ az autók bebocsátási valószínűsége az i-edik "beeresztő helyen'', azaz 1q idő alatt érkező autók száma,
‐ az i-edik útról jobbra, ill. balra kanyarodás valószínűsége.
 

Meg kell adni azokat a kiemelt utakat is, amelyeket a zöldhullám szempontjából figyeltetni akarunk. Az utak tetszőlegesen súlyozhatók is. Minden lámpára nézve adott a piros, ill. zöld világítás teljes időkvantum tartama, továbbá hogy a kezdés időpontjában éppen milyen színű egy-egy lámpa, és hogy hány időkvantum telt el az utolsó színváltás óta.
Mindezek segítségével a forgalom szimulálható. Torlódások esetén az autók elirányíthatók más útra, ill, valamelyik "kieresztő helyen'' le kell léptetni azokat. A program minden időkvantumban megvizsgálja az összes "beeresztő helyet'', és az input paramétereknek megfelelően indít onnan új autókat. A program szervezőjének különösen nagy figyelmet kellett fordítania az induló autók sebességére, hogy az az előző időkvantumban indított autó paramétereivel összhangban legyen, karambolt ne okozzon.
A zöldhullám vizsgálata érdekében a program azt is számolja, hogy a kiemelt utakon az egyes autók hányszor állnak meg. Amikor egy autó valamely kiemelt útról letér, ill. annak végére ér, akkor megállásainak száma, mint a szóban forgó kiemelt út egyik jellemzője, tárolódik. A szimulációs folyamat végén a rendszer a megállásokat hibapontként értékeli, miáltal a kiemelt út maximum 25 hibapontot kaphat(pl. Ha kétszer kell megállni: egy hibapont, ha háromszor, akkor négy hibapont, ha négyszer kell megállni, kilenc hibapont stb. kerül feljegyzésre). A program számítja minden kiemelt útra az átlag hibapontszámot, majd az egész rendszer jellemző hibát, mely az utak hibapontszámának súlyozott átlaga. Ezek az output eredmények.
A programot széleskörűen lehet alkalmazni közúti forgalom és zöldhullám vizsgálatára, de ha megfelelő nyomkövetést iktatunk bele, akkor kimutathatóvá válnak az egyes lámpabeállítások hibái is.
A program jelentősen továbbfejleszthető, pl.
‐ a lámpák paramétereit programozott optimalizációval is számíthatjuk, amivel nagyon kedvező zöldhullámokat is elérhetünk,
‐ a programban ún. detektorok is beépíthetők, melyekkel a lámpák a pillanatnyi forgalom szerint vezérelhetők (ilyen automatikus lámpavezérlés több nagyvárosban működik).
A pályamunkában bemutatott példában a kiemelt utak sorban a következők voltak : a felső K‐Ny-i út, az alsó K‐Ny-i út és a középső É‐D-i út. A program 500 q időtartamon, azaz kb. 3 percen keresztül vizsgálta a rendszert egy elég jó lámpabeállítás mellett.
A FORTRAN nyelven megírt program 15 szegmensből áll, 671 utasítást tartalmaz. Az ICL‐1905/E típusú számítógépen a vázolt példa lefutásának fizikai ideje 41 perc volt.
Példaként bemutatjuk a futtatás utolsó részletének eredményeit, melyben a zérus hibapontok a jó lámpabeállításból és a viszonylag rövid kiemelt utakból adódnak:
‐ az első kiemelt úton megállás nélkül ment végig 84 jármű, egyszer állt meg 6, kétszer állt meg 1, ennél többször 0 jármű állt meg;
‐a második úton megállás nélkül ment végig 49 jármű, egyszer állt meg 8, ennél többször 0 jármű állt meg;
‐a harmadik kiemelt úton 51 jármű ment végig megállás nélkül, egyszer állt meg 6 jármű, ennél többször 0 jármű.
‐ A program 0, ill. 1 megállásért nem adott hibapontot, két megállásért 1 hibapontot, három megállásért 4 hibapontot, négy megállásért 9 hibapontot adott. Így az egyes utak átlaghibapontja 0,011, 0,000 és 0,000 volt. Az egész útrendszer hibapontszáma 0,0055 lett.
 

2. Palasik Sándor : Insulin secretiós vizsgálat számítógépes értékelése,
A munka az emberi szervezet különböző körülmények közötti insulinkiválasztására vonatkozó méréseket értékeli számítógéppel. Az insulin a normális anyagcsere-szabályozásban elsőrendű szerepet játszó hormon. A kiválasztásával kapcsolatos zavarok okozzák az ún. cukorbetegséget. A mérés úgy történik, hogy a szervezetben keringő insulin mennyiségéhez bizonyos mennyiségű, radioaktív izotóppal megjelölt insulint adagolnak. Az ismert mennyiségű és sűrűségű aktív insulin a normális insulinmolekulákkal együtt kötődik a szervezetben. A megkötött aktív insulinmolekulák sugárzásából, ill. a műszereken észlelt beütésszámokból lehet következtetni a kötődés mértékére. A mérés ún. ciklusokban történik, melyek mindegyikében különböző koncentrációjú aktív insulint tartalmazó mintaanyagok kerülnek a szervezetbe. Mérik a szervezet minta nélküli, valamint a jelöletlen mintával vett sugárzását is. A vizsgálatot kiegészítik a más módon mért vércukorérték meghatározásával, amit ugyancsak input adatként használnak fel. A vizsgálatokat ún. "terhelés nélküli'' állapotban és különböző "terhelések alatt'' végzik. A terhelést bizonyos anyagoknak a szervezetbe juttatása jelenti, melyek befolyásolják az insulinkötődés, ill. a vércukorszint értékeit. A program egy input paramétertől függően vagy egy ún. standard görbét vesz fel, vagy mérési eredményeket dolgoz fel. A standard görbét mérési sorozatonként csak egyszer kell felvenni, és ez abból áll, hogy a mért beütési számokból és. a hozzá tartozó koncentrációk értékeiből egy görbe pontjait számítja a program a polinomiális regresszió módszerével. A mérési adatokat feldolgozó programrész a beteg adatainak, a mérési időpontnak, a mérés körülményeinek nyilvántartásával indul, majd a terheletlen, ill. terheléses jellegtől függően különböző módokon jár el. A terheléses esetek sem egyformák, a program vizsgálja a terhelés minőségét jellemző paramétert és a mérési adatok, a standard görbe, valamint a vércukorszint maximum és minimum értékei alapján különböző módon minősíti a vizsgált személy insulin secretiós folyamatát.
Ez a program egy kórházi információrendszer gyógyítási és ápolási alrendszere részének tekinthető.
A program FORTRAN-nyelven készült, EC -1010 típusú számítógépen futtatott GINSTA operációs rendszer alatt. A 64 kbyte-os központi táron a sornyomtatón és a kártyaolvasón kívül 2,5 Mbyte-os mágneslemezt is használ. A 9 szegmens összesen 358 utasításból áll, outputja 3 táblázatot és 4 sornyomtatón kihozott grafikont tartalmaz.
 

3. Zsuffa Zoltán: Műfordítások mérhető elemeinek számítógépes összehasonlítása (alkalmazva a Kalevala első énekére)
A verstan a líra mérhető, objektíven minősíthető elemeivel jellemzi az alkotásokat. Ilyenek pl. a rímképlet, az időmérték, a hangsúlyváltakozások stb. leírásai. A modellt szerzője a következő lépésekből építi fel:
‐ a sorokra és versszakokra tagolt szöveget tovább tagolja hosszú és rövid szótagokra;
‐ jelöli és nyilvántartásba veszi a verslábakat;
‐ ezek alapján a verssor jellegét minősíti (hexameter, pentameter, disztichon);
‐ meghatározza a versformát.
A program készítője ezután a verset rímei, alliterációi és az ún. magánhangzó változatosságai szerint minősíti. A tiszta rímeket megkülönbözteti az asszonáncoktól, vizsgálja az alliterációkat is. A magánhangzók változatosságát a 2. ábrán látható táblázat szerint minősíti.

Itt a belső téglalapban az ajakkerekítés, a külsőben az ajakréses magánhangzók állnak. A három vízszintes vonallal a különböző nyelvállású hangzókat választottuk el (felülről lefelé : felső-, középső- és alsó nyelvállás). A függőleges felezővonaltól balra a mély, jobbra a magas hangok találhatók. A magánhangzóváltás hangulati értékét abból kapjuk, hogy valamely szóban az egyik szótag magánhangzójától a következő szótag magánhangzójáig az ábrán hány határvonalat kell átlépni. Pl. az "ú-gye'' szó hangulati eleme 4, mivel az ú-tól az e-ig 4 vonalat kell átlépni.
A vizsgált versfordítások rím, alliteráció és magánhangzóváltozatosság szerint kerültek összehasonlításra. Ehhez a Kalevala első énekének magyar fonetikával leírt finn szövege, továbbá Vikár Béla, Nagy Kálmán és Rácz István által készített műfordítások szolgáltak alapul.
Az összehasonlítás a nyert paraméterek versszakonkénti átlagolásával történik, figyelembe véve az átlagok eltérésének szignifikanciáját, melyet Student próbával határozunk meg.
A program a RADIO- SHACK gyár TRS‐ 80 típusú gépén futott, BASIC-nyelven készült (két változatban), és mintegy 100 utasításból áll. A gépi eredmények alapján kézzel készített grafikon szemlélteti versszakonként az összehasonlítások eredményét.
 

4. Halász Péter : Naptárnyomtatás
A program tetszőleges évszázadon belül, tetszőleges évre nyomtat minden hónaphoz napokkal és ünnepekkel megjelölt naptárt. Ehhez igényesebb számítást jelent évenként a Húsvét vasárnapjának számítása, melyhez a pályázó Gauss képletét használta fel. A. program FORTRAN-nyelven készült, 3 szegmensből áll és 133 utasítást tartalmaz. A program a miskolci Nehézipari Műszaki Egyetem ODRA‐I304 típusú gépén futott GEORGE ‐ 2 operációs rendszer alatt, 4'35" alatt.
 

5. Kovács Attila : Planet program
A pályamunka a bolygók koordinátáinak kiszámítására, együttállásuk meghatározására és pályájuk kirajzolására szolgáló programot tartalmaz. A program a szóban forgó bolygó 7 pályaelemét használja fel (a felszálló csomó szögét, az ekliptika és a szóban forgó bolygó pályasíkja által bezárt szöget, a perihélium szögét, a pálya excentricitását, a középmozgást, a pericentrum hosszúságát és a közepes pálya menti hosszúságot). A munka a Kepler-egyenlet megoldásával kezdi az elméleti feldolgozást, ezt követően a heliocentrikus, majd az ekvatoriális mozgásokat, végül a horizontális koordinátákat számítja. Felhasználja az időszámítással kapcsolatos képleteket.
A program FORTRAN nyelven készült, 42 szegmensből áll. A futtatáshoz egy CDC ‐ 3300 típusú számítógépet használtak két lemeztárral.
 

6. Laky Zsolt-Gaál László: Kifejezéskiértékelő program
Ez a pályamunka a FOCAL-programnyelven megírt programok szintaktikai kiértékelését végzi bizonyos határok között. A program PASCAL-nyelven készült, ami ‐ az abban rejlő különleges lehetőségeket figyelembe véve ‐ igen jó választás volt. Jól kihasználták annak input-output rendszerét, a pointerek használatában rejlő lehetőségeket és a rekurzivitással járó módszereket. Közelebbről a program a beolvasott FOCAL programok kifejezéseit értékeli különböző szempontok szerint (a teljes karakter hossza, a benne levő változónevek összetétele, a benne levő számkonstansok, kulcsszavak szerepeltetése és egyéb szintaktikai hibák). A program több mint 2200 utasításból áll, SIEMENS ‐ 7755 típusú gépen futott BS2000 operációs rendszer alatt.
Érdemes felsorolni a többi, döntőbe került pályamunka tárgyát is. Ezek:
‐ A Hold és Föld erőterében haladó űrbolygó pályájának számítása,
‐ Patkányok radioaktív izotóppal jelölt táplálékának felszívódására vonatkozó számítógépes vizsgálatok,
‐ Gépkocsik elhelyezése és nyilvántartása egy parkolóházban,
‐ Lakáscsere kereslet és -kínálat összepárosítása,
‐ Hűtőgépek üzemi paramétereinek értékelése.
Említésre méltóak a második fordulóba nem került dolgozatok közül a karburátor bemérésére és beállítására, az iskolai órarend készítésére, a repülőgéppark automatikus karbantartására, a TU-154/B repülőgép mozgásának szimulációjára, a dallamszerkesztésre, az ammóniás hűtőüzem modellezésére, a levegőszennyeződési mérési adatok feldolgozására, az iskolai dolgozatok kiértékelésére és egy meghatározott kompresszortípus alkatrészeinek összeválogatására készült programok.
Az NJSZT vezetősége á verseny színvonalával igen elégedett volt és úgy határozott, hogy erőfeszítéseket tesz annak érdekében, hogy hasonló versenyeket kétévenként rendezzenek hazánkban.