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
fordprog:basic2016 [2016/02/17 10:12]
deva
fordprog:basic2016 [2016/03/25 11:09]
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övekvő 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