Békés Megyei Hírlap, 1993. június (48. évfolyam, 125-150. szám)
1993-06-02 / 126. szám
Előszó gyanánt! Sokatmondó cím, de vajon mit takarhat?! Páran úgy gondoltuk, hogy az ország ezen sarka sem maradhat meg sokáig sötétségben, már ami a számítástechnikát illeti. Ezért úgy döntöttünk, hogy megpróbálkozunk egy számítástechnikai újság létrehozásával, amely a megye embereinek érdeklődési körével kapcsolatos. Tekintve azonban egy újság előállítási költségeit keresnünk kellett egy partnert, aki a működő újságjában egy kis helyet szentel ennek a témának. A keresgélés végeredményét a kezükben tarthatják tisztelt olvasóink. Reméljük megnyeri tetszésüket szerény kis mellékletünk és állandó olvasói lesznek a lapnak. Kérjük Önöket, hogy írják meg véleményüket, problémáikat szerkesztőségünk címére: OKT-OPUS Bt. „Tiszta forrás” 5600 Békéscsaba, Derkovits sor 2. Tisztelettel: a Szerkesztőség » A számítástechnika nem boszorkányság! ,,Azokat az információhordozó anyagokat és eszközöket, amelyek erőteljesen formálják gondolkodásmódunkat, a lehető legkorábban meg kell ismertetni a gyermekekkel. ” Alan C. Kay Számítástechnika — informatika — kommunikáció Egy kis Pascal! Az elmúlt évben az OKT-OPUS programozási versenyére beérkezett programok közül közlünk egyet. Az egyik feladat a jól ismert 4x4-es tili-toli játék számítógépes megvalósítása volt. A számos érdekes megoldás közül most egy olyat mutatunk meg, amelyik egyszerű kezelhetőségével és mégis pontos megoldásával tűnt ki. A program készítője Argyelán Nándor, a Széchenyi István közgazdasági szakközépiskola tanulója, aki később a verseny döntőjében a második díjat nyerte el. A szerző által választott programozási nyelv a Turbo Pascal 6.0, a forrásnyelvű szöveg jól tagolt, bár megjegyzéseket nemigen tartalmaz. Ennek ellenére kommentár nélkül tesszük közzé, mert így is tanulságos és sok szép megoldást fedezhet fel benne az erre fogékony olvasó. Ha olvasóink közül van olyan, aki az általa írt programot szívesen közreadná, esetleg néhány megjegyzéssel együtt mi megjelentetjük. Várjuk véleményüket az itt közölt programmal kapcsolatban is. Nagy Attila Az első használható számítógépek bátortalan színrelépése óta már mintegy 50 év telt el. Ez idő alatt tömérdek kijelentés, találgatás és jóslat látott napvilágot a számítógépek eljövendő világáról. A számítógépek olyan hatalmas fejlődésnek indultak, és ma már a költségeket tekintve olyan hatékonyak, hogy gyakorlatilag mindenütt és minden szerepkörben megtalálhatók, s a róluk alkotott sztereotípiák szertefoszlottak. A munkahelyeken, az iskolákban és az otthonokban körülbelül harminc- millió személyi számítógép (PC—Personal Computer) seA számítógép szerepében végbement változások külön- külön hullámokban („paradigmaváltás”) jelentkeztek (2. számú táblázat). Az eredendő számítógépes paradigma a ’40-es években született meg: akkor tűnt fel a programozható számológép, mint a tervezés gíti az ember munkáját több ezer programcsomag-változat közreműködésével. A mezőgazdaság kora az ekékre és az ekéket húzó állapotokra épült, az iparosodás kora a gépekre és a gépeket hajtó üzemanyagokra, az informatika kora a számítógépek és a számítógépeket egymással összekötő hálózatokra épült. Az informatika korának azonban árnyoldalai is vannak: elmélyíti a szakadékot a szegények és a gazdagok között (az információfeldolgozás a ^szegényebb országok számára csekélyebb értékekeszköze, az ’50-es években pedig már kereskedelmi forgalomba is került. Az első váltás a ’60-as évek körül következett be: a nagyvállalatok a számítógépet adatfeldolgozó készülékként kezdték alkalmazni. A második váltásra a ’70-es években került sor, kel bír; a gazdagabb nemzeteknek viszont arra kell vigyázniuk, nehogy elvakítsa őket az informatika kora, nehogy közben elhanyagolják az elsődleges emberi szükségleteket — élelem, egészség, emberi kapcsolatok —, mert ezáltal könnyen rájuk dőlhet az információs kolosszus), eláraszthat bennünket az információs „bóvli”, amely általában önző érdeket szolgál. A számítógépes kommunikációs rendszer, mint elvi struktúra egy hierarchiát jelent (1. számú táblázat). Lentről felfelé haladva az egyes szinteket fizikai, kapcsolati, hálózati, átviteli, egyeztető, megjelenítési és alkalmazási szinteknek nevezhetjük. Az összes szintet átfogja az alkalmazási szint, mert az alkalmazás a szervezés minden mozzanatát áthatja, a legalacsonyabbtól a legmagasabb szintig. amikor lehetőség nyílott rá, hogy számítógépes szolgáltatások bevezetésre kerülhessenek. A ’80-as években következett be a harmadik korszakváltás: a számítógép ekkor már „bárki” asztalán ott állhatott. A negyedik változásnak éppen napjainkban lehetünk tanúi. Program Kirakó; Uses Crt, Graph; Const MenuT : Array[1..4] of String = ( 'Kever', ’ Játék', 'Automata', 'Kilépés' ) ; Keveres = 50; Var Lépés : Array [1. .1000]„ of Byte; LepM : Word; I, J: Integer; Gd,Gm : Integer; Tabla : Array [1..4,1..4] of Byte; X, Y : Byte; M : Integer; P : Pointer; Procedure ToltTabla; Begin For J:=l To 4 Do For I:=1 To 4 Do Tabla[I,J]: = (J-l)*4+1 ; Tabla[4,4]:=0; End; Procedure Kitabla; Var S : String; Begin SetTextJustify(0,2); SetFillStyle(1,0); Bar(100,100,300,300); SetColor(15); For I : =1 to 5 Do Begin Line(1*50+50,100,1*50+50,300); Line(100,1*50+50,300,1*50+50); End; SetTextStyle(1,0,4); SetFillStyle(1,Green); SetColor(Yellow); For J:=l To 4 Do For I:=1 To 4 Do If Tabla [I, J] >0 Then Begin Str(Tabla[I,J]:2,S) ; FloodFill(1*50+57, J*50+55,15) ; OutTextXY(1*50+57, J*50+55,S); End; End; Procedure Help(S:String;M,N: Byte); Begin SetFillStyle(1,Red); Bar(0,400,640,480); SettextStyle(M,0,N); SetTextJustify(1,1); SetColor(Black); OutTextXY(320, 440, S) ; End; Procedure Kiemel (I : Integer) ; Begin SetFillStyle(1,15); Bar (410,105+1*30,490,115+1*30); SetColor(0) ; OutTextXY(450,110+I*30,MenuT[I]) ; End; Procedure Visszaal (I : integer) ; Begin SetFillStyle(1,Red); Bar(410,105+1*30,490,115+1*30); SetColor(Yellow); OutTextXY(450,110+1*30,MenuT[I]); End; Function Menu:Integer; Var C:Char; Begin Help('Válassza ki a megfelelő menüpontot a Fel/Le gombokkal, majd nyomjon ENTER-1 .',2,5); SetTextStyle(0,0,1); SetFillStyle(1,red); Bar(400,100,500,250); SetTextJustify(1,1); SetColor(Yellow); OutTextXY(450,110,'Menü'); For I :=1 To 4 Do OutTextXY(450,110+I*30,MenuT[I]); I : =1 ; Repeat Kiemel(I); C:=Readkey; Visszaal(I); If C=#0 Then Begin C:=Readkey; If (C=#80) And (I<4) Then Inc(I) Else If (C=#72) And (I>1) Then Dec(I) End Until C In [#13,#27,' ']; Menu :=1; End; Procedure Keres (Var X, Y : Byte) ; Begin Y:=0; Repeat X:=0; Inc(Y); Repeat Inc(X); Until (Tabla[X,Y]=0) Or (X=4); . Until Tabla[X, Y] =0; End; Function Vizsgd : Integer): Boolean; Begin Keres(X,Y); Vizsg:=True; Case I Of 0 : If Y=1 Then Vizsg:=False; 1 : If Y=4 Then Vizsg:=false; 2 : If X=4 Then Vizsg:=False; 3 : If X=1 Then Vizsg:=False; End; End; Procedure Torol (X, Y : Byte) ; Begin Inc(X); Inc(Y); * SetFillStyle(1,0); Bar(X*50+49,Y*50+49,X*50+l,Y*50+l); End; Procedure Kiir(X,Y : Byte); Var S: String; Begin Inc(X); Inc(Y); SetTextJustify(0,2); SetTextStyle(1,0,4); SetFillStyle(1,Green); SetColor(Yellow); . Bar(X*50+4 9,Y*50+49,X*50+l,Y*50+l); Str(Tabla[X-l,Y-l]:2,S) ; OutTextXY((X-l)*50+57,(Y- 1)*50+55,S); End; Procedure Fel; Begin Inc(LepM); Lépés[LepM]:=0; Keres(X,Y); Tabla[X,Y]:=Tabla[X,Y-l]; Tabla[X,Y-l]:=0; Torol(X,Y-l); End; Procedure Le; Begin Inc(LepM); Lépés[LepM]:=1; Keres(X,Y); Tabla[X,Y]:=Tabla[X,Y+l]; Tabla[X,Y+l]:=0; Torol(X,Y+l); End; Procedure Jobb; Begin Inc(LepM); Lépés[LepM]:=2; Keres(X,Y); Tabla[X,Y]:=Tabla[X+l,Y]; Tabla[X+l,Y]:=0; Torol(X+l,Y); End; Procedure Bal; Begin Inc(LepM); Lepes[LepM]:=3; •Keres(X,Y); Tabla[X, Y]:=Tabla[X-l,Y]; Tabla[X-l,Y]:=0; Torol(X-l,Y); End; Procedure LepesV( J: Integer) ; Begin Case J Of 0 : Fel; 1 : Le; 2 : Jobb; 3 : Bal; End; Kiir(X,Y) End; Procedure LepesV2 (J: Integer) ; Begin Case J Of 1 : Fel; 0 : Le; 3 : Jobb; 2 : Bad- End; Kiir(X,Y); End; Procedure Kever; Var I: Integer; C: Char; Begin ToltTabla; LepM:=0; Help( 'Nyomjon egy gombot ha eléggé megkevertem. ',1,3); Repeat Repeat Repeat J:=Random(4); Until ((J=0) And (Lepes[LepM]<>1)) Or ((J=l) And (Lepes[LepM]<>0)) Or ( ( J=2) And (Lepes[LepM]<>3)) Or ((J=3) And (Lepes[LepM]<>2)); Until Vizsg(J); LepesV(J); Until ((LepM>Keveres) And KeyPressed) Or (LepM=800); . If KeyPressed Then C:=Readkey; End; Procedure Jatek; Var C: Char; H: Boolean; Begin Help ( 'A mezőket a nyilakkal tudja mozgatni. Ha a vissza akar térni a menübe akkor nyomjon ENTER-t.',2,4); Repeat Repeat C:=Readkey; Until C in [#13,#27,#32, #0] ; If C=#0 Then Begin C:=Readkey; Case C of #80 : Î : =0; #72 : I :=1; #75 : I : =2; #77 : I:=3; End; IfVizsg(I) Then LepesV (Id- End; H:=True; For J:=l To 4 Do For I : =1 To 4 Do If (Tabla[I,J]=(J-l)*4+1) Or ( (Tabla[I, J]=0) And ( (J- 1)*4+1=16)) Then Else H:=False; Until (C in [#13,#27,#32]) Or (H=True); If H=True Then Begin Help ('Gratulálok sikerült kiraknod.',1,4); C:=Readkey; LepM:=0; End; End; Procedure Automata; Var C: Char; J: Integer; Begin If LepM>1000 Then Begin Help( 'A kirakás nem lehetséges !',1,4) ; C:=Readkey; End Else Begin Help ( 'Nyomj meg egy gombot, ha vissza akarsz térni a menübe.',1,2); If LepM>0 Then Begin Repeat LepesV2(Lepes[LepM]); Delay(200); Dec(LepM,2); Until KeyPressed or (LepM=0); If KeyPressed Then C:=Readkey; End; End; End; Begin Gd:=Detect; InitGraph(Gd,Gm,'C:\TP\BGI' ) ; LepM:=0; SetFillStyle(l,LightGray); Bar(l,1,128,80) ; SetColor(White); Line(127,0,0,0) ; Line(0,0,0,79) ; SetColor(Brown); Line(127,0,127,79); Line(127,79,0,79); SetTextStyle(1,0,4); OutTextXY(15,20,'Kirakó'); GetMem(P,ImageSize(0,0,127,79)); GetImage(0,0,127,79,PA); For I : =0 To 6 Do For J:=0 To 8 Do Putimage(128*1,80*J,PA,NormalPut); ToltTabla; KiTabla; Repeat M:=Menu; Case M Of 1 : Kever; 2 : Jatek; 3 : Automata; End; Until M=4; End. 2. számú táblázat A számítástechnika négy paradigmája Tételes adatfeldolgozás Osztott idejű üzemmód Asztali Hálózat évtized ’60-as évek ’70-es évek ’80-as évek ’90-es évek technológia közepes szintű integráció magas szintű integráció igen magas szintű integráció rendkívül magas szintű integráció hely számítógépterem terminálszoba íróasztal mozgatható felhasználó szakértő szakember bárki csoportok helyzete alárendeltség függőség függetlenség teljes szabadság adatok alfanumerikus szöveg, vektor fontok, gráfok írás, szó cél számítás elérhetőség megjelenítés kommunikáció művelet eljárás szerkesztés megjelenítés irányítás kapcsolat perifériák terminálok asztali gép tenyérben hordozható alkalmazás alkalmazott standard általános kész feladatok programnyelvek Cobol, Fortran PL/1, Basic Pascal, C célorientált (Folytatás a 9, oldalon) 1. számú táblázat A számítógépes kommunikáció szintjei alkalmazási részletes információ a kicserélendő adatokról megjelenítési szabályok az adatok megjelenítésére egyeztető a programok közötti kapcsolatok kezelése átviteli az adat- és programcsomagok leszállítása (bizalmas vagy egyéb formában) hálózati az egyes adatcsomagok formátuma kapcsolati a közvetítő eszközhöz való csatlakozás és annak ellenőrzése fizikai közvetítő eszköz (elektronikus, optikai vagy egyéb)