User Tools

Site Tools


fordprog:while2017

Differences

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

Link to this comparison view

Next revision
Previous revision
fordprog:while2017 [2017/02/27 09:34]
deva created
fordprog:while2017 [2017/03/08 17:38] (current)
deva
Line 11: Line 11:
 <​code>​ <​code>​
 program oszto program oszto
-  ​integer ​a; +  ​natural ​a; 
-  ​integer ​i; +  ​natural ​i; 
-  ​integer ​oszto;+  ​natural ​oszto;
   boolean vanoszto;   boolean vanoszto;
 begin begin
Line 42: Line 42:
   * az angol abc kis és nagybetűi   * az angol abc kis és nagybetűi
   * számjegyek (0-9)   * számjegyek (0-9)
-  * ''​():​+-*<>​=_;#''​+  * ''​():​+-*<>​=_;​.#''​
   * szóköz, tab, sorvége   * szóköz, tab, sorvége
   * megjegyzések belsejében pedig tetszőleges karakterek állhatnak   * megjegyzések belsejében pedig tetszőleges karakterek állhatnak
Line 50: Line 50:
 === Kulcsszavak === === Kulcsszavak ===
  
-A nyelv kulcsszavai a következők:​ ''​program'',​ ''​begin'',​ ''​end'',​ ''​integer'',​ ''​boolean'',​ ''​true'',​ ''​false'',​ ''​div'',​ ''​mod'',​ ''​and'',​ ''​or'',​ ''​not'',​ ''​skip'',​ ''​if'',​ ''​then'',​ ''​else'',​ ''​endif'',​ ''​while'',​ ''​do'',​ ''​done'',​ ''​read'',​ ''​write''​+A nyelv kulcsszavai a következők:​ ''​program'',​ ''​begin'',​ ''​end'',​ ''​natural'',​ ''​boolean'',​ ''​true'',​ ''​false'',​ ''​div'',​ ''​mod'',​ ''​and'',​ ''​or'',​ ''​not'',​ ''​skip'',​ ''​if'',​ ''​then'',​ ''​else'',​ ''​endif'',​ ''​while'',​ ''​for'',​ ''​in'',​ ''​do'',​ ''​done'',​ ''​read'',​ ''​write''​
  
 === Azonosítók === === Azonosítók ===
Line 59: Line 59:
  
   * ''​natural'':​ négy bájtos, előjel nélküli egészként kell megvalósítani;​ konstansai számjegyekből állnak és nincs előttük előjel   * ''​natural'':​ négy bájtos, előjel nélküli egészként kell megvalósítani;​ konstansai számjegyekből állnak és nincs előttük előjel
-  * ''​bool'':​ egy bájton kell ábrázolni;​ értékei: ''​false'',​ ''​true''​+  * ''​boolean'':​ egy bájton kell ábrázolni;​ értékei: ''​false'',​ ''​true''​
  
 === Megjegyzések === === Megjegyzések ===
Line 76: Line 76:
  
   * ''​natural''​ típusú kifejezések:​ számkonstansok,​ natural típusú változók és az ezekből a ''​+''​ (összedás),​ ''​-''​ (kivonás), ''​*''​ (szorzás), ''​div''​ (egészosztás),​ ''​mod''​ (maradékképzés) infix operátorokkal és zárójelekkel felépített kifejezések.   * ''​natural''​ típusú kifejezések:​ számkonstansok,​ natural típusú változók és az ezekből a ''​+''​ (összedás),​ ''​-''​ (kivonás), ''​*''​ (szorzás), ''​div''​ (egészosztás),​ ''​mod''​ (maradékképzés) infix operátorokkal és zárójelekkel felépített kifejezések.
-  * ''​bool''​ típusú kifejezések:​ ''​true''​ és ''​false'',​ ''​bool''​ típusú változók, és két ''​natural''​ típusú kifejezésből az ''​=''​ (egyenlőség),​ ''<''​ (kisebb), ''>''​ (nagyobb) infix operátorral,​ valamint a bool típusú kifejezésekből az ''​&&''​ (konjunkció),​ ''​||''​ (diszjunkció),​ ''​=''​ (egyenlőség) infix és a ''​not''​ (negáció) prefix operátorral és zárójelekkel felépített kifejezések.+  * ''​boolean''​ típusú kifejezések:​ ''​true''​ és ''​false'',​ ''​boolean''​ típusú változók, és két ''​natural''​ típusú kifejezésből az ''​=''​ (egyenlőség),​ ''<''​ (kisebb), ''>''​ (nagyobb) infix operátorral,​ valamint a boolean ​típusú kifejezésekből az ''​and''​ (konjunkció),​ ''​or''​ (diszjunkció),​ ''​=''​ (egyenlőség) 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 infix operátorok mind balasszociatívak és a precedenciájuk növevő sorrendben a következő:​
     * ''​and''​ ''​or''​     * ''​and''​ ''​or''​
Line 82: Line 82:
     * ''<''​ ''>''​     * ''<''​ ''>''​
     * ''​+''​ ''​-''​     * ''​+''​ ''​-''​
-    * ''​div''​ ''​mod''​+    * ''​*'' ​''​div''​ ''​mod''​
  
 == Utasítások == == Utasítások ==
Line 90: Line 90:
   * Olvasás: A ''​read(''​ //​változó//​ ''​);''​ utasítás a megadott változóba olvas be egy megfelelő típusú értéket a konzolról. (Megvalósítása:​ meg kell hívni a ''​be_egesz''​ (vagy a ''​be_logikai''​) eljárást, amit a 4. beadandó leírásához mellékelt C fájl tartalmaz. A beolvasott érték natural típus esetén az ''​eax'',​ logikai típus esetén az ''​al''​ regiszterben lesz.)   * Olvasás: A ''​read(''​ //​változó//​ ''​);''​ utasítás a megadott változóba olvas be egy megfelelő típusú értéket a konzolról. (Megvalósítása:​ meg kell hívni a ''​be_egesz''​ (vagy a ''​be_logikai''​) eljárást, amit a 4. beadandó leírásához mellékelt C fájl tartalmaz. A beolvasott érték natural típus esetén az ''​eax'',​ logikai típus esetén az ''​al''​ regiszterben lesz.)
   * Írás: A ''​write(''​ //​kifejezés//​ ''​);''​ 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 a ''​ki_logikai''​) eljárást, amit a 4. beadandó leírásá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.) ​   * Írás: A ''​write(''​ //​kifejezés//​ ''​);''​ 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 a ''​ki_logikai''​) eljárást, amit a 4. beadandó leírásá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.) ​
-  * Ciklus: ''​while''​ //​feltétel//​ ''​do''​ //​utasítások//​ ''​done''​ A feltétel logikai kifejezés, a ciklusmag legalább egy utasítást tartalmaz. A megszokott módon, elöltesztelős ciklusként működik.+  * While ciklus: ''​while''​ //​feltétel//​ ''​do''​ //​utasítások//​ ''​done''​ A feltétel logikai kifejezés, a ciklusmag legalább egy utasítást tartalmaz. A megszokott módon, elöltesztelős ciklusként működik
 +  * For ciklus: ''​for''​ //​változó//​ ''​in''​ //​kifejezés//​ ''​..''​ //​kifejezés//​ ''​do''​ //​utasítások//​ ''​done''​ A változónak a deklarációs részben deklarált, natural típusú változónak kell lennie, az intervallum határait jelző kifejezések szintén natural típusúak. Az intervallum határai a ciklus első iterációja előtt kiértékelésre kerülnek, és az értékük akkor sem változik meg, ha a kifejezésekben szereplő változók módosulnak. A ciklus változója az első iteráció előtt megkapja az intervallum alsó határának értékét, minden iteráció végén eggyel nő, az utolsó iterációban a felső határral egyezik meg. Ha az alsó határ nagyobb a felsőnél, a ciklus egyszer sem fut le.
   * Elágazás: ''​if''​ //​feltétel//​ ''​then''​ //​utasítások//​ ''​endif''​ vagy ''​if''​ //​feltétel//​ ''​then''​ //​utasítások//​ ''​else''​ //​utasítások//​ ''​endif''​ A feltétel logikai kifejezés, az ágak legalább egy utasítást tartalmaznak. Az elágazások a megszokott módon működnek.   * Elágazás: ''​if''​ //​feltétel//​ ''​then''​ //​utasítások//​ ''​endif''​ vagy ''​if''​ //​feltétel//​ ''​then''​ //​utasítások//​ ''​else''​ //​utasítások//​ ''​endif''​ A feltétel logikai kifejezés, az ágak legalább egy utasítást tartalmaznak. Az elágazások a megszokott módon működnek.
fordprog/while2017.1488184464.txt.gz · Last modified: 2017/02/27 09:34 by deva