Új Ifjúság, 1986. július-december (34. évfolyam, 26-52. szám)

1986-12-30 / 52. szám

lijlfjiisáji 101 ÖRIÄS TALAJMEGMIINKÄIÖ A Szovjetunió cseljabinszki traktor­gyárában elkészült a 75 tonnás osztály­ba tartozó új ipari traktor, ameiynek erőforrása a szverdlovszki tnrbómotor- gyár 800 lóerős hajtóműve. Az űj gép­óriást a bányaiparban és a távoli észa­kon a földmunkák elvégzésére használ­ják majd fel. A talajlazitóval és tolóle- mezzel felszerelt traktor önsúlya száz tonna. A számítógépes játék segíti a szem gyógyulását Ha egy gyermek az egyik szemével élesen, a másikkal azonban csak elmo­sódottan lát, valószínű, hogy agya „elhanyagolja“ a beteg szemet. A szo­kásos kezelés ilyenkor abban áll, hogy a jó szemet letakarják, s ezzel az agyat rákényszerítik, hogy a gyengén látó sze­met dolgoztassa. Igaz, ezzel az eljárás­sal esetleg csak hónapok múltán követ­kezik be javulás. Angol kutatók a szemből érkező in- 'gerek agyi áramának vizsgálatával azt igyekeztek megállapítani, hogy miféle tárgyak keltenek az agyban erős jele­ket. Az egyik leghatásosabb képnek a sakktábla bizonyult. Ennek mezői sza­bályos időközökben felcserélődnek, a fekete fehérré, a fehér feketévé válik. Ez a váltakozó minta szerepel abban a képernyős számítógépes játékban, a- melyet a kutatók a gyengén látó szem gyakoroltatására ötlöttek ki. A játékban a megjegyzésre szánt betűk a képernyő közepén jelennek meg, véletlenszerű rendben, körülvéve a váltakozó mezejű sakktáblaképpel. A gyermeknek, akinek a jó szeme le van takarva, el kell olvas­nia a betűket, majd amikor egy betű­sorozatnak vége van, az Iskolai számí­tógép billentyűin le kell kopognia azo­kat, amelyeket sikerült megjegyeznie. Ha jól emlékezett rájuk, kap egy jó pontot, s a játék új betűkkel folytató­dik. Tíz pont után jutalom jár. Ezt a Játékot egy klinikán már egy éve hasz­nálják az egyik szeműkkel gyengén lá­tó gyerekek gyógyításában. A gyerekek felének meglepő gyorsasággal javult a szeme világa. I9t tt KX << ítsáK HUSH nn iw 5M «K na VIII. w rfTTTtwr tecucíuf nttnm "utf uu «« KIV se IRRMRflS StSSSS BASIC minltanfolyamunkat az index­elt változók ismertetésével folytatjuk. Eddig olyan változókkal dolgoztunk, a- melyekhez egy adott pillanatban csak egy érték tartozik. Ezek az egyszerű változók. Gyakran van szükség arra is. hogy összetartozó értékekre egyetlen névvel hivatkozzunk. Ez a helyzet ak­kor, amikor vektorokkal vagy mátrix­okkal dolgozunk. Vektoron a továbbiak­ban rendezett szám-n-est értünk, azaz n darab számot, amelyeknek a sorrend­jét rögzítjük. Az egyenes számokat a vektor elemeinek nevezzük. Az elemek­hez sorban a 0, 1, 2,... egész számokat rendeljük, amelyeket indexnek neve­zünk. Ha meg akarjuk nevezni a vektor valamelyik elemét, akkor a vektor ne­vén kívül megadjuk a kérdéses elem indexét is. Az index mindig nemnegatív egész szám. A BASlC-ben a vektorokat a DIM utasítással deklarálhatjuk (ve­zethetjük be). Az utasítás kulcsszava a DIM, az utasítás alakja a következő: . DIM dl, d2, ..., dn ahol a dl, ... dn az ún. deklarátorok. Vektoir esetében a deklarátor egy egy- betűs név, amelyet egy kerek zárójel­be tett kfejezés követ. A kifejezés ér­tékének az egészrésze az index felső határa. Az index alsó határa a PMD e- setében a 0, a Sinclair esetében 1. A DIM utasítás ún. deklaratív, nemvégre­hajtó utasítás, amely azt közli a rend­szerrel, hogy egy (vagy több) vektort akarunk használni a programunkban, és meghatározza a vektorok méretét. A vektort deklaráló DIM utasításnak meg kell előzni a vektor tényleges használa­tát. Egy DIM utasítással több vektort is deklarálhatunk. Nemcsak egydimen­ziós vektorokkal dolgozhatunk, hanem többdimenziós tömbökkel is. Ebben az esetben a deklaráció során annyi kife­jezést adunk meg a kerek zárójelben vesszővel elválasztva, ahány dimenziós tömböt akarunk deklarálni. A vektorok (tömbök) használata so­rán gyakori az olyan algoritmus, amely­ben a vektor minden elemével el kell végezni egy adott műveletet. Ez azt jelenti, hogy a műveletet ismétlődően, ciklikusan kell elvégezni, tehát ciklust kell szervezni a programban. Ezt meg­tehetjük a már ismert feltételes és ug­ró utasításokkal, de van erre a BASIC nyelvben egy speciális utasítás, ame­lyet ciklusképző utasításnak nevezünk. A ciklusképző utasítás tulajdonképpen két utasításból áll. A ciklust a FOR utasítás vezeti be, alakja a következő: FOR <ciklusváltozó>. == <kl>. TO !<k2> STEP <k3> A ciklusváltozó egy egyszerű válto­zó (a Sinclairen csak egybetűs azono­sítója lehet.). A ki, k2, k3 kifejezések. A STEP kulcsszó és az utána álló kife­jezés használata nem kötelező. A cik­lust a NEXT utasítás zárja le, alakja a következő: NEXT <ciklusváltozó> A FOR és NEXT utasltáspár között lévő utasításokat a ciklus magjának nevezzük. Az utasítás a következőkép­pen működik: 1. Kiértékelődnek a ki, k2, k3 kifeje­zések. A ki kifejezés az ún. kezdeti ér­ték, a k2 kifejezés a végérték, a k3 ki­fejezés a lépésköz. 2. Ha a kezdeti érték nagyobb, mint a végérték, akkor a NEXT utasítás után következő utasítással folytatódik vég­rehajtás. 3. Ha a kezdeti érték nem nagyobb, mint a végérték, a ciklusváltozó felve­szi a ki kezdeti értéket. 4. Ezek után a rendszer végrehajtja a ciklus magjában szereplő utasításo­kat. 5. A NEXT utasítás elérésekor a rend­szer a ciklusváltozóhoz hozzáadja a lépésköz értékét. Ha a STEP kulcsszó és az utána következő kifejezés nem szerepel, a lépésköz értéke 1. 6 Ha a ciklusváltozó új értéke na­gyobb, mint a végérték, akkor a NEXT utasítás után következő utasítással folytatódik a végrehajtás (a cikjus ..lejárt“). 7. Ha a ciklusváltozó új értéke nem nagyobb, mint a végérték, akkor foly­tasd a 4. ponttal. A lépésköz lehet negatív szám is, abban az esetben az előző leírás 2., 3., 6. és 7. pontjában a nagyobb szót ki­sebbre kell változtatni. Hosszabb programokban célszerű ún. megjegyzéseket elhelyezni, amelyekkel dokumentáljuk az egyes programrésze­ket. A megjegyzések növelik a program érthetőségét saját magunk és mások számára is. A BASIC nyelvben a meg­jegyzéseket a RÉM (angol remark — megjegyzés) kulcsszó után írhatjuk. Ide bármilyen karakterből álló szöve­get elhelyezhetünk, ezt a rendszer fi­gyelmen kívül hagyja. Lássunk egy példát. A következő program egy N elemű sorozat minimá­lis elemét keresi meg. A sorozatot egy vektorban fogjuk tárolni. A program első részében beolvassuk a sorozatot az A vektorba (10-es — 80-as utasítá­sok). A sorozat legkisebb elemét a kö­vetkező módon keressük meg: sorban megvizsgáljuk a sorozat minden ele­mét. A megvizsgált elemek közül a leg­kisebbet az M változóba, a legkisebb elem indexét az MI változóba tesszük. Ebből következik, hogy ha a sorozat végére érünk, az M változóban a soro­zat legkisebb eleme, az MI változóban pedig a legkisebb elem indexe lesz. Ennek az eljárásnak megfelelően először az A(l) elemet vizsgáljuk meg. Mivel egy elem közül csak saját maga lehet a legkisebb, az M kezdeti értéke A(l) lesz (90-es utasítás), az MI kez­deti értéke 1 lesz — ez az A(l) indexe (100-as utasítás). Ezután egy ciklus következik, amelyben sorra megvizs­gáljuk a többi A(l) elemet, ahol 1 ér­téke 2-től N-Ig változik. A vizsgáljuk meg. Mivel egy elem csak saját maga lehet a legkisebb, az M kezdeti értéke A(l) lesz (90-es utasítás), az MI kez­deti értéke 1 lesz —• ez az A(l) indexe (100-as utasítás). Ezután egy ciklus következik, amelyben sorra megvizs­gáljuk a többi A(l) elemet, ahol 1 ér­téke 2-től N-ig változik, A vizsgálat abból áll, hogy az éppen aktuális A(l)' elemet összehasonlíjuk az eddigi leg­kisebb elemmel, amelynek az értéke az M változóban van (120-as utasítás). Ha az A(l) értéke nem kisebb, akkor nincs semmi változás, ezért folytatjuk' a ciklust (ugrunk a 150-es utasításra). Ha az A(l) értéke kisebb, mint az ed­digi legkisebb érték (a 120-as utasítás­ban nem teljesül a feltétel), akkor mó­dosítanunk kell az M változó értékét (140-es utasítás). A ciklus akkor feje­ződik be, ha az 1 értéke me'ghaladja az N értékét, tehát ha minden elemet megvizsgáltunk. Ezek után az M és MI értékét egy print utasítással kiírjuk a képernyőre. 5 RÉM*** N ELEMŰ SOROZAT LEG­KISEBB ELEMÉNEK MEGKERESÉ- SE*** 10 PRINT „ÍRD BE A SOROZATBAN LEVŐ ELEMEK SZÁMÁT“ 20 INPUT N 30 DIM Á(N) 40 PRINT „ÁDD MEG A SOROZAT ELE­MEIT“ 50 FOR 1 = 1 TO N 60 PRINT „A(„;I;“) = 70 INPUT A(I) 80 NEXT I 90 LET M = A(l) 100 LET MI = 1 110 FOR I = 2 TO N 120 IF A(I) > = M THEN GOTO 150 130 LET M = A(I) 140 LET MI = I 150 NEXT I 160 PRINT „A SOROZAT LEGKISEBB ELEME AZ A („;MI;“) = “;A(MI) Előfordulhat, hogy a programok be­gépelése közben valamit elírtok, vagy saját programok kigondolása közben valamilyen logikai hibát követtek el, aminek a végeredménye egy ún. vég­telen ciklus lesz. A legegyszerűbb vég­telen ciklus a következő: 10 GOTO 10 Első pillantásra látható, hogy ez a program sohasem fejezi be a működé­sét. Az a kérdés, hogy miként állíthat­juk le a végtelen ciklust. A legegysze­rűbb mód a gép ki-, majd bekapcsolá­sa, ez azonban azzal jár, hogy a gép a programot is elfelejti. Célszerűbb ezért az ún. programvégrehajtás meg­szakítását kezdeményezni. Ezt általá­ban bizonyos billentyűk megnyomásá­val érhetjük el. A PMD-n a STOP, a Sinclairen a CAPS SHIFT és SPACE feliratú billentyűk együttes megnyomá­sával. Ezt a rendszer felismeri, meg­szakítja a program végrehajtását, majd egy angol nyelvű üzenettel közli, hogy hányas sorszámú utasításnál szakadt félbe a program. A megszakított prog­ram végrehajtását a CONTINUE (ang. folytasd) parancs begépelésével foly­tathatjuk. Ebben a fejezetben a vektorok és tömbök deklarálásával, a FOR — NEXT ciklusképző utasításpárral, a RÉM uta­sítással és a programvégrehajtás meg­szakításának módjával Ismerkedtünk meg. KÄLOSI ÁKOS (Folytatása a 2. számban) DÜDOLÖ Rejtvényünkben Dénes György fenti című versé­ből idézünk: Szél dudája dúdol, ... ben.- folytatása a rejtvény­VlZSZINTES: 1. Marokkói kikötőváros. B. A vers- folytatás első része. 10. Süveg alakú hajszárító. 11. Bol beűi keverve. 12. Szőrme. 13. Német város a Duna partján. 14. Zománc. 16. Mutatószó. 17. Határozórag. 18. Lámpásos mesealak. 20. Névelő. 21. Jószívű. 22. Norvég, spanyol és osztrák gépko- csijelzés. 23. Kötőszó. 25. Európai nép. 28. Rend­kívül nagy erejű sugárzás. 30. Cirkuszi porondok. 32. Hideg erdélyi szél. 33. Kamionok jelzése. 34. Medence Közép-Azslában de 1200 km hosszú fo­lyó Kínában. 35. Csak fél matúra! 36. Valamely tényt bizonyító, szabályosan kiállított irat. 38. Az ilyen fű köhögés elleni gyógyszer. 46. Befed, lebo­rít.-'^2. Kölcsön biztosítékául a hitelezőnek adott vagyontárgy. 43. A. É. 44. Leo betűi keverve. 46. C. T. 47. Tőszámnév. 49. Aida szerelmese. 52. Gyep. 53. Külföldről behozott tárgyak utáni illeték a határon. 55. Csavar. 56. Az órahang egyik fele. 57. Idős. 59. Az oxigén és az alumínium. 60. Balkezes. 61. Üres tái! FÜGGŐLEGES: 1. A versfolytatás második része. 2. Mértani test. 3. Mar betűi keverve. 4. Orosz igíen- lés. 5. Európai nép (éh.), 6. ... Valii, olasz film­színésznő (éf.). 7. Máté Péter. 8. Országos Ren­dező iroda. 9. Irásmű vagy beszéd tárgya. 11a. Sváj­ci város Zürich közelében. 14. Tova. 15. Ötvenegy római számmal. 18. Kikötőváros a Vörös-tenger bejáratánál. 19. Fordítva: enyém németül. 21. Vi­lágrész. 24. Az ilyen rizlingből finom bor készül. 26. Női név (ét.). 27. A Szovjetunió egyik népe (éh.). 28. Vékony fémlap. 29. A Szerelmi költészet múzsája. 31. Katasztrálls röviden. 32. A nikkel és a foszfor vegyjele. 37, Nem sietős a dolga (éh.). 39. Csehszlovákiai magyar író (Józsaf). 41. Aka­dály miatt hirtelen megáll, nem tud tovább menni. 44. Párizsi színház. 45. A daru is ez. 48. A feleség is ez. 50. Az asztácium vegyjele. 51. Kiejtett betű. 52. Friss, jó erőben lévő. 54. Sportöltözék. 56. Meg­szólítás. 58. Egyik budapesti áruház rövid neve. 60. Tagadószó. Beküldendő a vízszintes 6. és a függőleges 1. számú sorok megfejtése. Az 50. szám rejtvényének helyes megfejtése: Jegenyék alatt, A krazniki csata. Egyszerű embe­rek, Homokos világ. Könyvet nyert Hindi Teréz, Stúrovo.

Next

/
Thumbnails
Contents