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. Megkezdjük számítástechnikai példáink, feladataink közlését. Mint azt már az előző számunkban jeleztük, a FORTRAN programozási nyelvet fogjuk használni. Olvasóinknak a programozási nyelv megismeréséhez a következő két könyvet ajánljuk: Obádovics- Szelezsán: Bevezetés a programozásba (Tankönyvkiadó, ára 12 Ft). Lőcs ‐ Vigassy: FORTRAN programozási nyelv (Műszaki Könyvkiadó, ára 26 Ft). Az első könyv, (amelyet a továbbiakban OSZ rövidítéssel jelölünk), kezdőknek való, nem tartalmaz minden szükséges ismeretet. A második könyv, (melyet a továbbiakban LV rövidítéssel jelölünk) a részünkre szükségesnél sokkal többet tartalmaz, nehezen áttekinthető, ezért azok részére, akik ezt a könyvet kívánják használni, közvetlen kapcsolatfelvétel esetén megadjuk, mely részeket, milyen sorrendben olvassanak el. A Számítástechnikai Rovatot a Munkaügyi Minisztérium Számítástechnikai Intézet KISZ kollektívája készíti dr. Ada-Winter Péter irányítása mellett. A számítástechnikai tárgyú feladatmegoldásokat, kérdéseket, kéréseket az alábbi címre kérjük küldeni : MÜM Számítástechnikai Intézet Gergely János 1089 Budapest Reguly Antal u. 578212;59. Minden megküldött programra választ adunk, hibás programok hibáit megjelölve visszaküldjük, szükség esetén magyarázattal. Jó programok megküldése esetén a feladatmegoldók nevét közöljük, vagy írósban értesítjük őket. Egyes kiváló feladatmegoldások esetén a beküldött programot számítógépen futtatjuk és a kinyomtatott lapot (outputot) a készítőjének megküldjük. 1. A programkészítés formai szabályai Programjainkat, utasításainkat programlapra kell írnunk. A programlap-nyomtatványok pénzért is beszerezhetők, de egvszerűbb és olcsóbb, ha magatok készítitek el. Vegyetek egy ,,franciakockás8221; papírt (szükség esetén a négyzethálós is megteszi), húzzatok rá keretvonalat és a kereten belül osszátok be az 1. ábrán látható módon. (Négyzethálós papír esetében a hosszabb oldal mentén húzzátok meg a fejlécet.)
1. ábra A program minden utasítása a lapon levő tégla- vagy négyzetháló külön sorába írandó. Egy-egy sorban a háló által meghatározott területeket karakterpozíciónak nevezzük. Az első öt karakterpozíció alkotja a cimkemezőt. A hatodik karakterpozíciót nem fogjuk használni. A hetediktől kezdődő pozíciók alkotják az ún. utasításmezőt, amely legfeljebb 68 pozícióból állhat. (A nyomtatott programlapokon ugvan 74 pozíció áll, de az utolsó 6-ra már nem írható utasítás.) A programlapokon 8212; a fejléctől eltekintve 8212; csakis a FORTRAN nyelvben megengedett jelek szerepelhetnek (OSZ: 105. old. , LV: 15. Kérjük az alábbi szabályok figyelembevételét : ‐Minden betű, szám, írásjel (közös névvel: karakter) külön karakterpozícióba kerüljön. ‐A programlapokon a betűket csakis nagybetűkkel szabad írni. ‐Az 0-betíínek a zérus számtól való megkülönböztetése érdekében a programlapokon a zérus szám egy ferde vonallal áthúzandó, így : . Nem szabad a papírlap mindkét oldalát használni. Ha a program egy lapon nem fér el, új lapot kell nyitni és számozni kell a lapokat. Végül kérjük, hogy a programba comment sorokat ne írjatok (OSZ: 198. old. , LV: 14. old.), mert ezzel sok többletmunkát okoztok a társadalmi munkában dolgozó kártyalyukasztó lányoknak. 2. Programjaink szerkezetéről Először csak egészen egyszerű programokat fogunk készíteni. Az ilyen programok szerkezete az alábbi (a két függőleges vonal a 6, üresen hagyandó karakterpozíciót zárja közre):
Minden program az ún. MASTER utasítással kezdődik, amiből egy programban csak egy lehet. A MASTER szó utón egy szóközt hagyva írhatjuk az általunk kitalált programnevet. A programnévnek betűvel kell kezdődnie, számjegyen és betűn kívül mást nem tartalmazhat, és legfeljebb hat karakterból állhat. A program utolsó utasítása az END utasítás. E két utasítás között helyezkednek el a program többi utasításai. Megjegvezzük, hogy a program futását a számítógépen a STOP utasítás állítja meg (OSZ: 106. old., LV: 90. old.), melyből a programban legalább egynek kell szerepelnie, ég amely a programon belül bárhol elhelyezkedhet. 3. A kiíratás utasításai A program végrehajtása során az ún. változók, más néven azonosítók, számértékeket vchctnck fcl (OSZ: 109. old. , LV: 16. old.). Ezek egy részét mi eredménynek tekintjük, ezért ki akarjuk íratni a számítógép sornyomtatóján (OSZ: 57. old.). A FORTRAN nyelv nyomtató utasítására vonatkozó legfontosabb ismereteket itt kell elmondanunk, mert azok az OSZ könyvben túlságosan leegyszerűsítettek, az LV könyvben viszont a mi számunkra túlrészletezett. A nyomtatás tulajdonképpen két utasításból áll. Ezek a WRITE és a FORMAT, melyek közül az első azt adja meg, hogy a végrehajtás során mikor és mit kell kinyomtatni, míg a második azt írja eló, hogy hogyan, milyen formában történjen a nyomtatás. A WRITE utasítás alakja a programlapon:
ahol u és f természetes számok. Jelentésük : ‐ u neve logikai perifériaszám, feladata meghatározni, hogv melyik periferiális egységen (OSZ: 41. és 15. old.) történjen a kiíratás. A mi számítóközpontunkban az általunk használandó sornyomtató perifériaszáma 3, ezért feladatainkban u helyére mindig 3-at kell írni. ‐ f egy ún. címke (OSZ: 127‐128. old. , LV: 14. old.) , amely azt mutatja meg, hogy melyik az a FORMAT utasítás, amelyik ehhez a WRITE utasításhoz tartozik. (Minden WRITE-hoz pontosan egy FORMAT tartozik, de fordítva nem ; egy FORMAT tartozhat több WRITE utasításhoz is.) ‐ bemutatott példánkban a zárójel után négv olyan azonosító áll, amelyek értékét kiíratjuk. Az azonosítóknak itt elhelyezkedó sorát közös névvel output listának nevezzük. A FORMAT utasítás előtt mindig áll egy címke, amely azt egy vagy több WRITE utasításhoz rendeli. A FORMAT alapszó után két gömbölyű zárójel között állnak az ún. specifikációk. Egy specifikációval egy számadatot vagy szöveget jelentő karaktercsoport helyezhető el a nyomtatási sor egy intervallumába, az u. n. mezőbe. A mező hosszát mezőszélességnek mondjuk, jelölésére a w betűt használjuk. (w a mezőn elhelyezked6 karakterpozíciók száma.) A következőkben részletesebben megismertetjük az általunk használni kívánt specifikációkat. 3.1. Az I specifikáció egész típusú (integer) számok kiíratásíra szolgál. A FORMAT-on belül Iw alakban szerepel, ahol w jelenti azon karakterpozíciók számát, amelyeken egy kiírandó egész számot nyomtatni kívánunk. Például a következő programrészlet IND =128WRITE(3,8)END 8FORMAT(I5) hatására a mezőben kiírt karakterek és betűköz (▽ a betűköz, más néven space jele, ami természetesen nem jelenik mecr a nvomtatón: Ha IND értékéül 1289-et adtunk volna, akkor a mezőben lett volna. Szabály, hogy w értéke a nyomtatandó szám számjegyeinek számánál nem lehet kisebb. Ha negatív számot írunk ki, akkor annál legalább eggvel nagyobbnak kell lennie, az előjel helvének biztosítása érdekében. Tömbazonosító használatánál (OSZ: 193. old. , LV: 101. old.) célszerű a specifikáció elé ismétlési tényezőt írni. Ezzel például az I5,I5,I5 specifikációsorozatot 3I5 formńjúvń rövidíthetjük. Ha n az ismétlési tényező, akkor a FORMAT(nIw) specifikációval egv sorba n darab, egyenként w mezőszélességen elhelyezkedő egészet nyomtathatunk. Ügyeljünk arra, hogy a sornyomtató szélessége 128 karakter, így hosszabb sorokat nem tudunk nvomtatni. Példaként egv teljes programot mutatunk be, amely 3 első hat többszörögét nyomtatja . (A programban használt DO utasításról OSZ a 146., az LV 69. oldalon tájékoztat.) MASTER KUTYADIMENSION K(6)DO 10I=1,6 10K(I)=I⋆3 2WRITE(3,20)K 20FORMAT(6I5)STOPEND A program outputján a mez6k elhelyezkedése, tartalma a következő : | ▽▽▽▽3▽▽▽▽6▽▽▽▽9▽▽▽12▽▽▽15▽▽▽18 |
A futást könnyen el tudjuk képzelni, ha egy ún. folyamatábrát (blokkdiagramot) készítünk róla. Ezt láthatjuk a 2. ábrán. A folyamatábra startblokkja után a DO utasítás az I ciklusváltozónak az 1 számértéket adja. A következő blokkban a K tömb I-edik komponense kapja I háromszorosának értékét. Egy újabb blokkban a DO utasítás megvizsgálja az I értékét, és ha I<6, 1-gyel növeli, és újra kezdi a ciklust; ha I=6, a DO utasítás befejeződik és újabb utasítással kiíratjuk a tömböt, majd a program futását megállítjuk. A specifikációk leírását következő számunkban folytatjuk.
2. ábra Feladat: Készítsünk olyan programot, amely a lap egyetlen , 128 pozíciószélességű sorában 1-től növekvő rendben kinyomtatja a természetes számokat úgy, hogy két szám között mindig csak egy space legyen:
| ▽1▽2▽3▽4▽5▽6▽7▽8▽9▽10▽11▽12▽13▽... |
|