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

1986-12-02 / 48. szám

új ifjúság 10 VI. Térjünk vissza az első kis programhoz. Figyeljétek meg, hogy milyen különb­ség van a 20 és 30 . sorban lévő utasí­tások közt! A 20 sorban az utasításban egy numerikus kifejezés szerepel, a 30 sorban pedig egy sztring. Írjatok né­hány PRINT és INPUT utasításból álló programocskákat, figyeljétek meg a vesszők és pontosvesszők hatását a PRINT és az INPUT utasításokban, és hogy miként írja ki a PRINT a változó­kat, kifejezéseket és a sztrlngeket. Ebben a fejezetben tehát megismer­kedtünk a NEW és a RUN parancsok­kal, megtanultuk a parancsok és az uta­sítások közti különbséget, továbbá a programok írásának a módját; megis­merkedtünk a PRINT és az INPUT uta­sításokkal, a változókkal és az azono­sítókkal, és megtanultuk az egyszerű numerikus kifejezések képzését. Tudjuk már, hogy hogyan lehet ezzel az utasítással a program futása alatt a változóknak „kívülről“ értéket adni, tehát 'adatot bevinni a programba. Azon­ban gyakran szükség lehet arra is, hogy a változók értékét a programban „be­lülről“ is meg tudjuk változtatni, tehát hogy a változóknak új értéket tudjunk adni. Erre szolgál az ún. értékadó uta­sítás, amelynek kulcsszava a LET (ang.: legyen). Az utasítás alakja a következő: LET < változó >. = > kifejezés <. A LET kulcsszót egy változó követi, ennek a változónak adunk értéket. A változó után egyenlőségjel következik, amelynek a jobb oldalán egy kifejezés áll. Az egyenlőségjel bal oldalán álló változó az egyenlőségjel jobb oldalán álló kifejezés értékét veszi fel. A Sin- clairen a LET kulcsszót mindig ki kell írni, a PMD-n a LET kulcsszó használata nem kötelező. Tehát a PMD-n a követ­kező két utasítás egyenértékű: 30 LET A1 = 5 * 5* 3.14 30 A1 = 5 * 5 * 3.14 A LET utasításban az egyenlőségjel nem azt jelenti, hogy az egyenlőségjel két oldalán álló kifejezés értéke egyen­lő. Ennek illusztrálására futtassátok le a következő programot: 10 LET A = 5 20 PRINT A 30 LET A = A + 1 40 PRINT A A RUN parancs begépelése után a képernyőn először egy 5, majd egy 6 jelenik meg. Láthatjátok, hogy a 30-as sor nem azt jelenti, hogy A egyenlő A + 1, hanem azt, hogy az A változó új értéke annyi lesz mint az A pillanat­nyi értéke plusz 1. Ennek megfelelően a 20-as sorban álló utasítás az 5-öt nyomtatta ki, mivel Itt az A értéke 5 volt, ellenben a 40-es sorban lévő PRINT a 6-ot nyomtatta ki, mivel Itt az A ér­téke már 6 lett. Említettük, hogy a BASIC rendszer az utasításokat a sorszámuk szerint UU TtTTTITIir hajtja végre. Vannak azonban olyan feladatok is, amikor nem kell minden utasítást végrehajtani, vagy ha bizo­nyos feltétel teljesül, akkor az utasí­tások egyik csoportját kellene elvégez­ni, ha nem teljesül az adott feltétel, akkor egy másik csoportot. Képzeljétek el, hogy programot akarunk írni a má­sodfokú egyenletek megoldására. Beol­vassuk az A, B, C értékeket, és ezekből kiszámíthatjuk a diszkrimináns értékét. Ha ez negatív, akkor az egyenletnek nincs reális megoldása, ebben az eset­ben másként kell folytatni a programot. Ahhoz, hogy ezt meg tudjuk valósítani, szükségünk lesz az ún. feltételes és a feltétlen vezérlésátadó utasításokra. A feltételes vezérlésátadó utasítás (röviden feltételes utasítás] kulcsszava az IF (ang.: ha). Az utasítás alakja a következő: IF < feltétel > THEN < utasítás > Ha a program futása közben az IF kulcsszó mögött álló feltétel Igaz, ak­kor a THEN szó után következő utasí­tást Is végrehajtja a rendszer, ellenke­ző esetben a következő sorral folytat­ja a végrehajtást. A feltétel alakja a következő lehet: < kifejezés 1 > < relációs operátor >i < kifejezés 2 > A < kifejezés 1 >, < kifejezés 2 >' aritmetikai vagy sztring kifejezés lehet (a sztringekről a későbbiekben lesz szó). A relációs operátorok a követke­zők lehetnek: operátor > < = > = .< > jelentése egyenlő kisebb nagyobb kisebb vagy egyenlő nagyobb vagy egyenlő nem egyenlő A feltételekre, úgy tekinthetünk mint a logikai kifejezésekre, mivel az érté­kük igaz (ha a feltétel teljesül] vagy hamis (ha a feltétel nem teljesül) le­het. Ezért a feltételeket összeköthetjük az AND, OR és NOT logikai operáto­rokkal. Az AND logikai és-t, az OR lo­gikai vagy-ot, a NOT logikai tagadást jelent. A feltételes utasítás THEN kulcsszava után gyakran az ún. feltétlen vezérlés­átadó utasítás (röviden ugró utasítás) áll, amelynek az alakja a következő: GOTO < sorszám » Az utasítás kulcsszava a GOTO (ang.: go to — menj oda), utána egy sorszám áll. A GOTO utasítás hatására a BASIC rendszer a program végrehajtását a GOTO után álló sorszámon lévő utasí­tással folytatja. Végül ismerkedjünk meg két nagyon egyszerű, de sokszor használt utasítás­sal. Mind a két utasítás egyetlen kulcs­szóból áll. Az első a képernyő törlésére szolgál. Ennek az utasításnak a kulcs­szava a Spectrum esetében a CLS (az angol clear screen — töröld a képer­nyőt — rövidítése), a PMD-n a GCLEAR. A második utasítás kulcsszava mint a két gépen a STOP (angol „állj“). Ha egy STOP utasítás kerül végrehajtásra, akkor a program futása befejeződik. Most lássunk egy egyszerű példát az eddig ismertetett utasításokra: 5 GCLEAR 10 LET K = INT (1024 • RND (5)) 20 PRINT „KIGONDOLTAM EGY SZA­MOT 0 ÉS 1023 KÖZÖTT, TALÁLD KI1“ 30 LET 1 = 0 40 LET I = I -P 1 50 PRINT I; PRÓBÁLKOZÁS.' 60 PRINT „MI A TIPPED?“ 70 INPUT T 80 IF T = K THEN GOTO lOOÜ 90 IF T < K THEN GOTO 200 100 IF T > K THEN GOTO 500 200 PRINT T; „KISEBB, MINT A KITA­LÁLANDÓ SZÁM“ 210 GOTO 40 500 PRINT T; „NAGYO TALÁLANDÓ SZÁM“ 510 GOTO 40 1000 PRINT I; „PRÓBÁLKOZÁSBÓL KI­TALÁLTAD“ 1010 IF I > 10 THEN GOTO 2000 1020 PRINT „ÜGYES VAGY, GRATULÁ­LOK!“ 1030 STOP 2000 PRINT „MAXIMUM 10 LÉPÉSBŐL KI LEHET TALÁLNI“ Ez egy számtalálósdl játék. A 10-es sorban lévő utasítás hatására a számí­tógép kigenerál egy 0 és 1023 közé eső „véletlen számot“, amelyet a gép ke­zelőjének ki kell találnia. A kigenerált szám a K változóban van. A Sinclairen másképpen működik a „véletlen szám“ — generálás és képernyőtörlés,' ezért az 5-ös és a 10-es sor helyett a követ­kező sorokat kell begépelni: 5 CLS 10 RANDOMIZE: LET K = INT (1024 * RND) Az I változóban számoljuk a találga­tások számát. Mivel a program kezde­tekor még egyszer sem találgattunk, ezért a 30-as sorban kinullázzuk ezt a változót. A 40-es sorban megnöveljük az I értékét, mivel az 1. találgatás kö­vetkezik. Az 50-es sorban kiírjuk a kép­ernyőre, hogy hányadik próbálkozásnál tartunk, majd a 60-es sorban kiírjuk a' felszólítást á kezelőnek, hogy írja be a tippjét. A 70-es sorban beolvassuk a kezelő tippjét a T változóba. A 80-as, 90-es és 100-as sorban szereplő felté­teles utasításokkal eldöntjük, hogy mi­lyen volt a tipp. Például a 90-es sor­ban álló utasítás jelentése a követke­ző: ha a tipp kisebb, mint a kitalálan­dó szám, a program végrehajtását a 200-as sorral folytasd. Ha a tipp nem jó, akkor kiírjuk, hogy nagyobb vagy kisebb-e, mint a kitalálandó szám. Ezek után a 210-es vagy az 510-es sorban lé­vő GOTO utasításokkal visszatérünk a 40-es sorra, és minden kezdődik elöl­ről, egészen addig, míg meg nem kap­juk a helyes tippet. Ebben az esetben az 1000-es sorban folytatjuk a progra­mot. Az 1010-es sorban megvizsgáljuk az I változó értékét, és ennek megfe­lelően az 1020-as vagy a 2000-es sor­ban álló üzenetet írjuk ki a képernyőre. Ezt a programot meg lehet írni ke­vesebb számú utasítással Is, gyakorlat­képpen próbáljátok meg lerövidíteni. Végül egy újabb paranccsal Ismerke­dünk meg, mellyel a gép memóriájában lévő programot a képernyőre írathatjá­tok ki. A parancs alakja a következő: LIST < sorszám > Ha nem adunk meg sorszámot, akkor a programot az aktuális sorszámtól kezdve listázza a képernyőre. A Sin­clairen az aktuális sorszámot egy „>“ jel jelzi, amely a képernyőn a sorszám után áll. Ha a kulcsszót egy sorszám követi, akkor a program listázását az adott sorszámtól kezdődően végzi el. Ebben a fejezetben tehát megismer­kedtünk a LET, IF — THEN, GOTO, STOP és a képernyőtörlő utasításokkal, a LIST paranccsal és a feltételek kép­zésének szabályaival. Kálosi Ákos (P^olytatása az 50. számban) AFORIZMA Rejtvényünkben Konfuciusnak, az ókor neves filozó­fusának szép gondolatát fe]thetitek meg. VÍZSZINTES: 1. Női név. 4. Az afarizma első része. 10. Álha). 12. Idegenszavak előtagjaként kettőst, két­szerest Jelent. 13. Volt portugál gyarmat, ma India része az Arab-tengerben. 14. Már nagyon megelégelő. 15. Rest, tunya. 17. A bőr és a nitrogén vegyjele. 18. Romániai folyó. 19. A mohamedánok második szent vá­rosa, Itt halt meg Mohammed is. 21. A Balaton vizét elvezető csatorna. 22. A megteendő út. 23. Az 1957. no­vember 3-án a Szovjetunióban az űrbe fellőtt kutya ne­ve. 25. Az ozmium vegyjele. 26 A gabonaszemben levő fehérje. 28. Iparvidék Németországban. 29. Sárga színű, gyúlékony, nem fémes elem. 30. Végtag. 32. Kán betűi keverve. 33. Marokkői kikötőváros. 36. Hosszú fafúvós hangszer. 38. Fordítva: szenvedés. 39. Szeretne kapni. 41. Vadász rejtekhelye. 42. Sajtjáról Ismert holland vá­ros. 44. Volt szovjet diplomata. 46. Séma egynemű betűi. 47. Egy magyar filmcím szerint a veréb Is ez. 49. Az erő fizikai mértékegysége. 50. Csak félig szereti 51. Megvalósíthatatlan elgondolás. 53. Fafajta. 54. Részvény- társaság. 56. ... Járó, a fejlődésben, haladásban vezető és irányító szerepű. 57. Magyar író, a modern magyar próza egyéni stílusú mestere (Gyula 1878—1933J. 58. ... muri, Móricz Zslgmond műve. 60. Biztató szó. 61. Egyiptom fővárosába való. 62. Kol betűi keverve. FÜGGŐLEGES: 1. A keserűség Jelképe. 2. Francia ural­kodóház volt. 3. Hitszegő személy (éh.). 4. Hordómér­ték. 5. Kubai és osztrák gépkocsijelzés. 6. Déli étkezés. 7. Semmi latinul (NIHIL). 8. .. ,-mőg, zsörtölődik. 9. Gyulladás. 10. Bőven áraszt. 15. Távollevő személyhez Intézett írásbeli közlés, hír. 16. Végtelen panaszi 19. Kalács töltése lehet. 20. Ilyen virágzatú növény a ma­joránna, a kakukkfű, a zsálya stb. 21. Az aforizma má­sodik része. 22. Tinédzserek. 24. Német idealista filozó­fus (Immanuel 1724—1804). 26. Veszprém patakja. 27. Fakerékre való vasabroncs. 29. Fején legyezőszerű toll- bóbitát viselő papagájféle. 31. Piros színű keszeg. 34. Kecskegyerek. 35. Színes fém. 37. A germánium és a nitrogén vegyjele. 40. Híres francia szobrászművész (Au­guste 1840—1917). 43. Férfinév. 45. Női becenév. 46. Fémtárgyak tisztítására való folyékony szer. 48. Tekercs. 50. Ilyen fegyver a tőr. 52. Latin-amerikai államokban paraszt, mezőgazdasági munkás, spanyol eredetű szóval. 53. ... Lanka,. Ceylon mai neve. 55. Három a zenében, 57. Katasztrálls röviden. 59. .Szovjet repülőgéptípus. 61. Kicsinyítő képző. Beküldendő a vízszintes 4. és a függőleges 21. szá- mű sorok megfejtése. A 46. számban megjelent rejtvény helyes megfejtése: Elzengett az őszi boros ének, / Megfülledt már hűse a pincének. Könyvet nyert Takács Nóra, Galanta.

Next

/
Oldalképek
Tartalom