User Tools

Site Tools


fordprog:basic2016

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
Last revision Both sides next revision
fordprog:basic2016 [2016/02/17 10:12]
deva
fordprog:basic2016 [2016/03/25 11:08]
deva
Line 5: Line 5:
 A nyelv a [[http://​en.wikipedia.org/​wiki/​BASIC_programming_language|Basic]] egyszerűsített változata. Az alábbi példaprogram a bemeneten kapott nemnegatív egész szám legkisebb valódi osztóját számolja ki. A nyelv a [[http://​en.wikipedia.org/​wiki/​BASIC_programming_language|Basic]] egyszerűsített változata. Az alábbi példaprogram a bemeneten kapott nemnegatív egész szám legkisebb valódi osztóját számolja ki.
  
-Tesztfájlok [[http://​deva.web.elte.hu/​fordprog/​abap2015-tesztfajlok.zip|letölthetőek]]!+Tesztfájlok [[http://​deva.web.elte.hu/​fordprog/​basic2016-tesztfajlok.zip|letölthetőek]]!
  
 <​code>​ <​code>​
Line 35: Line 35:
  
 A nyelv kulcsszavai a következők:​ A nyelv kulcsszavai a következők:​
-''​INPUT'',​ ''​PRINT'',​ ''​LET'',​ ''​IF'',​ ''​THEN'',​ ''​ELSE'',​ ''​ENDIF'',​ ''​WHILE'',​ ''​WEND'',​ ''​REM'',​ ''​END''​+''​INPUT'',​ ''​PRINT'',​ ''​LET'',​ ''​IF'',​ ''​THEN'',​ ''​ELSE'',​ ''​ENDIF'',​ ''​WHILE'',​ ''​WEND'',​ ''​REM'',​ ''​END'',​ ''​NOT''​
  
 === Változók === === Változók ===
Line 59: Line 59:
  
   * Egész szám típusú kifejezések:​ számliterálok,​ változók és az ezekből a ''​+''​ (összedás),​ ''​-''​ (kivonás), ''​*''​ (szorzás), ''​\''​ (egészosztás),​ ''​MOD''​ (maradékképzés) infix operátorokkal és zárójelekkel felépített kifejezések.   * Egész szám típusú kifejezések:​ számliterálok,​ változók és az ezekből a ''​+''​ (összedás),​ ''​-''​ (kivonás), ''​*''​ (szorzás), ''​\''​ (egészosztás),​ ''​MOD''​ (maradékképzés) infix operátorokkal és zárójelekkel felépített kifejezések.
-  * Logikai típusú kifejezések:​ az ''​=''​ (egyenlőség),​ ''<''​ (kisebb), ''>''​ (nagyobb), ''​AND''​ (konjunkció),​ ''​OR''​ (diszjunkció) infix és a ''​NOT''​ (negáció) prefix operátorral és zárójelekkel felépített kifejezések. +  * Logikai típusú kifejezések:​ az ''​=''​ (egyenlőség),​ ''<''​ (kisebb), ''>''​ (nagyobb), ''<''''​=''​ (kisebb egyenlő), ''>​=''​ (nagyobb egyenlő), ''​AND''​ (konjunkció),​ ''​OR''​ (diszjunkció) infix és a ''​NOT''​ (negáció) prefix operátorral és zárójelekkel felépített kifejezések. 
-  * Az infix operátorok mind balasszociatívak és a precedenciájuk növevő sorrendben a következő:​+  * Az operátorok mind balasszociatívak és a precedenciájuk növevő sorrendben a következő:​
     * ''​OR''​     * ''​OR''​
     * ''​AND''​     * ''​AND''​
 +    * ''​NOT''​
     * ''​=''​     * ''​=''​
-    * ''<''​ ''>''​+    * ''<''​ ''>​''​ ''<''''​=''​ ''>​=''​
     * ''​+''​ ''​-''​     * ''​+''​ ''​-''​
-    * ''​\''​ ''​MOD'' ​+    * ''​*'' ​''​\''​ ''​MOD''​ 
 +  * A kifejezések a szokásos módon zárójelezhetők.
  
 == Utasítások == == Utasítások ==
    
-  * Értékadás:​ ''​MOVE'' ​kifejezés ​''​TO''​ változó ​''​.''​ alakú. A változó ​és a kifejezés ​típusa csak azonos lehet+  * Értékadás: ​''​LET'' ​kulcsszó után, az ''​='' ​operátorral. A bal oldalon egy változójobb oldalon egy egész típusú ​kifejezés ​állhat
-  * Olvasás: A ''​READ TO''​ változó ''​.''​ utasítás a megadott változóba olvas be egy megfelelő típusú ​értéket a standard bemenetről. (Megvalósítása:​ meg kell hívni a be eljárást, amit a 4. beadandó feladathoz ​mellékelt C fájl tartalmaz. A beolvasott érték az eax (logikai típus esetén az al) regiszterben lesz.) +  * Az ''​INPUT''​ utasítás a megadott változóba olvas be egy értéket a standard bemenetről. (Megvalósítása:​ meg kell hívni a ''​be_egesz'' ​eljárást, amit a 4. beadandóhoz ​mellékelt C fájl tartalmaz. A beolvasott érték az ''​eax'' ​regiszterben lesz.) 
-  * Írás: ​A ''​WRITE''​ utasítás ​''​.'' ​a megadott kifejezés értékét a képernyőre írja (és egy sortöréssel fejezi be). (Megvalósítása:​ meg kell hívni a ki eljárást, amit a 4. beadandó feladathoz ​mellékelt C fájl tartalmaz. Paraméterként a kiírandó értéket (mindkét esetben 4 bájtot) kell a verembe tenni.) +  * A ''​PRINT''​ utasítás a megadott kifejezés értékét a képernyőre írja (és egy sortöréssel fejezi be). (Megvalósítása:​ meg kell hívni a ''​ki_egesz''​ vagy ''​ki_logikai'' ​eljárást, amit a 4. beadandóhoz ​mellékelt C fájl tartalmaz. Paraméterként a kiírandó értéket (mindkét esetben 4 bájtot) kell a verembe tenni.) 
-  * Aritmetika+  * Ciklus
-    * ''​ADD''​ kifejezés ''​TO''​ változó ''​.''​ +    * ''​WHILE''​ feltétel utasítások ''​WEND''​
-    * ''​SUBTRACT''​ kifejezés ''​FROM''​ változó ''​.''​ +
-    * ''​MULTIPLY''​ változó ''​BY''​ kifejezés ''​.''​ +
-    * ''​DIVIDE''​ változó ''​BY''​ kifejezés ''​.''​ +
-    * ''​MOD''​ változó ''​BY''​ kifejezés ''​TO''​ változó ''​.''​  +
-  * Ciklus: ​''​WHILE''​ feltétel ​''​.'' ​utasítások ''​ENDWHILE''​ ''​.''​+
     * A feltétel logikai kifejezés, és a ciklus belsejében legalább egy utasításnak kell lennie. A megszokott módon, elöltesztelős ciklusként működik.     * A feltétel logikai kifejezés, és a ciklus belsejében legalább egy utasításnak kell lennie. A megszokott módon, elöltesztelős ciklusként működik.
   * Elágazás:   * Elágazás:
-    * ''​IF''​ feltétel ''​.''​ utasítások ''​ENDIF''​ ''​.''​ +    * ''​IF''​ feltétel ''​THEN''​ utasítások ''​ENDIF''​ 
-    * ''​IF''​ feltétel ''​.''​ utasítások ''​ELSE''​ ''​.''​ utasitasok ''​ENDIF''​ ''​.''​+    * ''​IF''​ feltétel ''​THEN''​ utasítások ''​ELSE''​ utasitasok ''​ENDIF''​
     * A feltétel logikai kifejezés, és az egyes ágakban legalább egy-egy utasítás van. A megszokott módon működik.     * A feltétel logikai kifejezés, és az egyes ágakban legalább egy-egy utasítás van. A megszokott módon működik.
 +  * Az ''​END''​ utasítás terminálja a programot. (A program akkor is véget ér, ha nincs több végrehajtandó utasítás: nem kötelező, hogy a program utolsó utasítása ''​END''​ legyen.)
 +
fordprog/basic2016.txt · Last modified: 2016/03/25 11:09 by deva