Új Ifjúság, 1987 (35. évfolyam, 1-52. szám)
1987-01-28 / 4. szám
új ifjúság 10 Hogyan „keltettek életre“ a Challenger-katasztrófa áldozatainak utolsó szavait? A Challenger mágnesszalagjai, amelyek az űrhajósoknak az Indulás utáni szavalt rögzítették, mintegy hat hétig hevertek 30 méteres tengermélységben, s már csak mint habos, összeragadt masszát tudták őket a felszínre hozni. A szalagok megmentésére Irányuló első kísérletek nem sikerültek. A hideg desztillált vízben való öblítés és a rákövetkező szárítás ellenére újabb vas-oxid-réte- gek töredeztek le Ezután az IBM egyik arizonai laboratóriuma kapott megbízást rá, hogy fejlesszen ki egy „életkeltésl“ eljárást. E célra eleinte csupán egy néhány centiméteres szalagdarabot bocsátottak a rendelkezésére. Majd a- mikor a cég kutatói úgy vélték, hogy járható utat találtak, a további kísérletek céljára a Challengernek egy teljes szalagját megkapták. Azt tisztítás végett először néhány napig felváltva salétromsavat, illetőleg desztillált vizet tartalmazó fürdőbe merítették. Ezeket a folyadékokat nyomás alatt a szalag rétegei közé is bepréselték. Ezáltal lassan eltávolították a magnézlum-hidroxidot. Majd a szalagot fél napig víztelenített metanol (metilalkohol) hatásának tették ki, végül még egyszer friss metanollal öblítették. Miután a vizet teljesen eltávolították, a szalagot megszárították. Ezután a mágnesszalagon metil-szilikonnal megerősítették a hanghordozó réteget, s óvatosan megkezdték le- tekercselnl a 100 méter hosszúságú szalagot. Ez több mint tizenkét óráig tartott. Amikor a szalagot újra föltekercselték, s első ízben lehallgatták, megállapíthatták, hogy az űrutasok a robbanást legalább hat, sőt esetleg tizenöt másodpercig ts túlélték A hangszalagról világosan hallható volt Michael J. Smith űrhajós utolsó sóhajtása: „Uh-oh-“ Az már nem állapítható meg pontosan, hogy az űrhajósok mikor veszítették el az eszméletüket, illetve mikor haltak meg. (filet és Tudomány) ICC *K KK ** JtKÍKKtC CKKXXK « « KK KK a KK oo ©a KK KK MR«t ítKH* »nun MRUC MM MM AM MN MR MM fP JUU üti timwff «meneti »*««*«» nimmt k»íuui »mm* _ m int tu no w rr uu utf ír UUUUUUUUJU TT «uuuuuutuu» XT RtRttiim •ftRRRRftft «R R* H M UlHI Ui útin un Ct Ült 'Hurt amit 1 ** Hmm * vuutiüüouua tumult tmtf U Mtuttl «WUWAItfUUil UtULUU.,Uti;t X. Az utolsó fejezetben a sztrlngekkel ismerkedtünk. Lássunk most két példát a sztringekre. Az első program a számítógépetek ASCII karakterkészletét írja ki a képernyőre: 10 FOR 1=32 TO 127 STEP 16 20 FOR J =0 15 30 PRINT CHR$(I+J); 40 NEXT J 50 PRINT 60 NEXT I Ez a program két egymásba ágyazott ciklusból áll, amelyeknek a magjában egy PRINT utasítást tartalmaz. A karaktereket a CHR$ függvény segítségével állítjuk elő. A kinyomtatott karakterek kódjai a<32,127> intervallumban vannak. A 32 a helyköz (szí.: me- dzera, ang. space) karakter kódja. Azok a karakterek, amelyeknek a kódja kisebb, mint 32, ún. vezérlő karakterek. Ezek bizonyos vezérlő funkcióval rendelkeznek (pl. a hely őr (kurzor) mozgatása a képernyőn, lapdobás, soremelés a nyomtatón stb.), ezért nem nyomtatható karakterek (nincs grafikai képük). Azok a karakterek, amelyeknek a kódja nagyobb, mint 127, nem standard ASCII karakterek. Az ezekhez a kódokhoz tartozó karakterek az egyes számítógépeknél eltérőek lehetnek. A Sinclair esetében ezekhez a kódokhoz különböző grafikai karakterek és az egyes BASIC kulcsszavak tartoznak. A következő program sztringek ábécérendbe szedését végzi. Az ábécérenden itt az ASCII kódrendszer által definiált sorrendet kell érteni. 10 DiM N$(30] 20 LET 1=0 30 INPUT A$ 40 IF A$<>" " THEN LET 1=1+1: LET N$(I)=A$: GOTO 30 100 FOR j=l TO I—1 110 FOR K = j+l TO I 120 IF N$(J) =N$(K] THEN GOTO 160 130 LET A$=N$(J) 140 LET N$(J) =N$(K) 150 LET N$(K) =A$ 160 NEXT K 170 NEXT J 200 FOR K=1 TO I 210 PRINT N$(K) 220 NEXT K gezzük. Az I változóban beolvasott sztringek számát tároljuk. A rendezést a 100-as — 170-es utasítások végzik. A rendezés menete a következő: Vesszük az első sztringet és sorban összehasonlítjuk az utána következő sztringekkel. Ha valamelyik sztring kisebb az elsőnél, akkor a két sztringet kicseréljük. Nyilvánvaló, hogy így a legkisebb sztring kerül az első helyre. Ezt az eljárást a 110-es — 160-as utasítások végzik. Ha ezt az eljárást megismételjük a második, harmadik ... i-Mk sztringre is, akkor a sztringek sorba rendeződnek. Ezt úgy valósítjuk meg, hogy az eljárást egy ciklusba tesszük (a 100-as és 170-es utasítások közé). A 200-as—220-as —utasításokkal kiírjuk a sorba rendezett tömböt. Az előző fejezetekből Ismerjük már az ún. standard függvényeket Is. Ezek bizonyos gyakran használt matematikai, illetve sztring függvények. A BASIC ezen kívül lehetővé teszi saját függvények definiálását. A függvények definiálását először a Sinclair ZX Spectru- mon ismertetjük: DEF FN fnév («formális paraméter lista>) = kifejezés». A DEF FN kulcsszó, a define function angol szavak rövidítése. Ezt a függvény neve követi, amely egy betűből áll, ha aritmetikai függvényt definiálunk, vagy egy betűből és egy dollárjelből áll, ha sztring függvényt definiálunk. A függvény nevét két zárójel közötti ún. formális paraméter lista követi. A formális paraméterek változók, amelyek a függvény argumentumát képviselik. A formális paraméterek listája lehet üres Is, de a zárójeleket akkor Is ki kell tenni. Ha több formális paraméter van, vesszővel választjuk el őket egymástól. Ezután egy egyenlőség- jel következik, amelyet egy numerikus vagy sztring kifejezés követ, aszerint, hogy numerikus vagy sztring függvényt definiálunk. Pl.: 10 DEF FN A(X] = X*X*X Ez a definíció egy „A“ nevű függvényt definiál, amelynek egy paramétere van, ezt az X változóval jelöljük. A függvény értéke a paraméter köbe. A függvény használatakor a formális paraméter helyébe egy kifejezést helyettesíthetünk, ezt aktuális paraméternek nevezzük. PL: a A 10-es sorban egy N$ nevű tömböt deklarálunk. Ha több mint 30 sztringet akarunk rendezni, akkor ezt a deklarációt megfelelőképpen módosítani kell. A Sinclairen a tömböt kétdimenziósnak kell deklarálni, a második dimenzió a sztringek hosszát jelenti. Pl. a 10 DIM N$(30, 20) esetében 30 darab 20 karakter hosszú sztringekkel dolgozhatunk. A 30-as és 40-es utasítások egy ciklust alkotnak, amellyel a sztringek beolvasását vé20 PRINT FN A(2*0.5+2) utasítás 27-et ír ki a képernyőre. A függvények használatánál (ún. hívásánál) az FN kulcsszót kell a függvény neve elé írni, mivel enélkül a rendszer azt hinné, hogy az A tömb 3. elemével akarunk dolgozni. A függvényhíváskor a rendszer először kiszámítja az aktuális paraméter értékét, ezt az értéket behelyettesíti a formális paraméterbe, és végül kiszámítja a függvény értékét. Tehát az történik, mintha az előző 20-as utasítást a következő utasításokra cserélnénk ki: 20 LET X = 2*0.5 + 2 21 LET A = X*X*X 22 PRINT A Saját függvénydefiníciókkal helyettesíthetjük a Sinclairen nem implementált LEFT$, RIGHTS, MID$ standard sztringfüggvényeket: A LEFTS függvény: 10 DEF FN L$(X$, I) =X$ (TÓI) A RIGHTS függvény: 10 DEF FN R$ (X$, I) = X$ (LEN (X$) — I + 1TO) A MID$ függvény: 10 DEF FN M$ (X$. I, K) = X$ (I TO I + K — 1) Ez megkönnyíti a programok átvitelét a PMD-ről a Sinclair ZX Spectrum- ra, mivel csak az egyes függvényhívásokat kell kijavítani. A PMD-n a függvénydefiníció a következő alakú: DEF FNC fnév («formális parameter») = «kifejezés» A PMD-n szűkebb lehetőségek vannak a függvények definiálására, mint a Sinclairen. Minden függvénynek kötelezően egy paramétere lehet. Sztring- függvények definiálására nincs lehetőség. A formális paraméter nem lehet sztringváltozó. A Sinclair BASTC-ben van még egy standard sztringfüggvény, amelyikről eddig nem esett szó. Ez az INKEYS függvény. Ennek a függvénynek nincs paramétere. Az INKEYS függvény megvizsgálja, hogy a hívás pillanatában van-e lenyomva valamilyen billentyű. Ha nincs lenyomott billentyű, a függvény értéke egy üres sztring lesz. Ha le van nyomva valamelyik billentyű, akkor a függvény értéke a lenyomott billentyűhöz tartozó karakterből álló sztring. Próbáljátok ki a következő programot, hogy jobban megértsétek a függvény működését. 10 LET A$ = INKEYS 20 CLS 30 PRINT AT 1,1; AS, CODE(A$) 40 FOR 1=1 TO 50 : NEXT I 50 GOTO 10 A PMD-n is van hasonló függvény. Ez az INKEY. Ez nem sztringfüggvény, ezért nincs dollárjel a függvény neve után. Az INKEY függvény csak a PMD billentyűzet legfelső sorúban lévő KO ... K10, ún. key billentyűkre használható (a Kll billentyűre nem). Ha a hívás pillanatában nincs lenyomva egy billentyű sem, akkor a függvény értéke 255. Ha valamelyik billentyű le van nyomva a hívás pillanatában, akkor a függvény értéke a billentyűn lévő sorszám (0...10). Ezek a függvények nem úgy működnek, rtiint az INPUT utasítás. Az Input utasítás vár a bemenetre, és csak akkor folytatódik a program, ha lenyomtuk az ENTER, illetve az EOL billentyűt. Az INKEYS, illetve az INKEY függvények csak megvizsgálják a billentyűzet állapotát, és a program rögtön folytatódik tovább. Ezeket a függvényeket jól fel lehet használni a játék- programok írása során. kAlosi Ákos (Folytatása a 6. számban) ALKALMAS Péter meséli a barátjának: — Képzeld, az orvos azt mondta nekem, hogy kiválóan alkalmas vagyok a síelésre. — És miből állapította ezt meg? A választ megtaláljátok a rejtvényben. VÍZSZINTES: 1. Határozórag. 3. A válasz első része. 10. Vízgőz. 12. Nehézkesen ír. 13. Angol szó, fejlődési irányzatot jelent. 14. Női hangnem. 15. Munka zsargonban. 17. Női becenév. 18. Határozórag. 19. Kolln egynemű betűi. 20. Idegen olaj. 22. Allga közepe! 23a. Abba az irányba. 24. Vörös angolul. 20. Osztrák és olasz gépkocsijelzés. 27. Elfogödottan szerény, ártatlan. 30. Taszít. 32. Nőstény öz vagy szarvas. 33. Egy kis csevegés. 36. A baszk ellenállási szervezet rövid neve. 37. Kisebb ritkás erdő. 38. A vese orvosi neve. 39. Képzelet, képzelőerő, ábrándkép. 41. A teázás idejéig. 42. Kamionok Jelzése. 43. Értékes tulajdonság, készség (éh.). 44. Részvénytársaság röviden. 46. Bátorkodik. 48. Ravasz ötlet. 49. Női becenév. 51. A Balaton vizét vezeti el. 53. Csendes tag! 54. Diplomások neve előtti rövidítés. 55 japán város, a hajdani császári székhely. 57. Női becenév. 59. A leggyakrabban használt fém. 80. Két szám mennyiségi viszonyát kifejező hányados. 82. Latin kettős betű. 83. Indiai nagyváros, a Tadzs- Mahal városa. 64. Szovjet repülőgéptípus. FÜGGŐLEGES: 1. A népgazdaság egyik ága. 2. Est és ruha jelzője lehet. 3. Feltételes kötőszó. 4. Idegen hármas. 5. Hullámtörő gát. 8. Hangtalan ratal 7. Három szlovákul. 8. Testrész. 9. Ázsiai nagy ország. 11. Lásd a vízszintes 44. sortl 15. ... megvénülünk, Jókai regényének címe. 18. Ilyen Írás az ogam. 19. Juhtejből készült sajtszerű termék. 21. Ásatás eredménye lehet. 23. A válasz második része. 23a. A központi hatalmak elleh létrehozott szövetség az első világháborúban. 25. Szarvával öklel. 28. Az európium és a tantál vegyjele. 29. Támogat. 31. Mellébeszél, köntörfalaz. 33. Tőszámnév. 34. ... Szilvia, a mondabeli Romulus és Rémus anyja. 35. Tiszta németül (REIN). 37. A régi római mitológiában a családi tűzhely védelmezői. 40. Föld és só is van Ilyen. 41. Idős. 43. Mese és hírlap jelzője. 45. Hármaskorona. 47, ... de Janeiro. 50. Kirekesztő szerkezet névelővel. 52. Zsiradékféle. 54. Gríz. 58. Szlovák igenlés. 58. Az őgörög mitolögiában a Föld istennője. 59. Hangtalanul vágl 61. Fordított kettős betű. 63. Az americium vegyjelee. Beküldendő a vízszintes 3. és a függőleges 23. számú sorok megfejtése. A 2. szám rejtvényének helyes megfejtése: A ravaszság olyan, mint as aprópénz, nem lehet sokat venni rajta. Könyvet nyert Adám Ida, Nová Baäta. i