Advertisement
Paul_

JS.Vm

Nov 24th, 2014
197
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. WScript.Echo("Привет!");
  2. if (WScript.Arguments.Length==0) //если пустая строка
  3.     WScript.Echo("Введите имя программы и имя файла. Также Вы можете ввести /? для вызова справки.");
  4. else
  5. {
  6.     var obj = new ActiveXObject("Scripting.FileSystemObject");
  7.     var fso = obj.OpenTextFile(WSH.Arguments(0));
  8.     var array = new Array();
  9.     var num = /^-?[0-9]+$/;
  10.     var ssilka;
  11.     while (!fso.AtEndOfStream)
  12.     {
  13.         var text = fso.ReadLine();
  14.         array=array.concat(text.split(' '));
  15.     }
  16.  
  17.  
  18.     var ip=0;
  19.     while (true)
  20.     {
  21.         switch (array[ip])
  22.         {
  23.  
  24.             case 'input' :
  25.             array[array[ip+1]]=WScript.StdIn.ReadLine();
  26.             if (num.test(array[array[ip+1]])==0)
  27.             {
  28.                 WScript.Echo('Не является числом или число не является целым');
  29.                 WScript.Quit();
  30.             }
  31.             else
  32.                 array[array[ip+1]]=parseInt(array[array[ip+1]]);
  33.             ip++;
  34.             break
  35.  
  36.  
  37.             case 'output' :
  38.             WScript.Echo(array[array[ip+1]]);
  39.             ip++;
  40.             break
  41.  
  42.             case 'sum' :
  43.             array[array[ip+3]]=parseInt(array[array[ip+1]])+parseInt(array[array[ip+2]]);
  44.             ip+=3;
  45.             break
  46.  
  47.             case 'rasnost' :
  48.             array[array[ip+3]]=parseInt(array[array[ip+1]])-parseInt(array[array[ip+2]]);
  49.             ip+=3;
  50.             break
  51.  
  52.             case 'proizvedenie' :
  53.             array[array[ip+3]]=parseInt(array[array[ip+1]])*parseInt(array[array[ip+2]]);
  54.             ip+=3;
  55.             break
  56.  
  57.             case 'chastnoe' :
  58.             array[array[ip+3]]=parseInt(array[array[ip+1]])/parseInt(array[array[ip+2]]);
  59.             ip+=3;
  60.             break
  61.  
  62.  
  63.             case 'goto' :
  64.             ssilka=array[ip+1];
  65.             ip=0;
  66.             while ((array[ip+1]!="ssilka") || (array[ip+2]!=ssilka))
  67.                 ip++;
  68.             ip+=2;
  69.             break
  70.  
  71.  
  72.             case 'exit' :
  73.             WScript.Quit();
  74.             break
  75.  
  76.  
  77.             case 'equ' :
  78.             if (array[array[ip+1]]==array[array[ip+2]])
  79.             {
  80.                 ssilka=array[ip+3];
  81.                 ip=0;
  82.                 while ((array[ip+1]!="ssilka") || (array[ip+2]!=ssilka))
  83.                     ip++;
  84.                 ip+=2;
  85.             }
  86.             else
  87.                 ip+=3;
  88.             break
  89.  
  90.  
  91.             case 'more' :
  92.             if (array[array[ip+1]]>array[array[ip+2]])
  93.             {
  94.                 ssilka=array[ip+3];
  95.                 ip=0;
  96.                 while ((array[ip+1]!="ssilka") || (array[ip+2]!=ssilka))
  97.                     ip++;
  98.                 ip+=2;
  99.             }
  100.             else
  101.                 ip+=3;
  102.             break
  103.  
  104.  
  105.             case 'less' :
  106.             if (array[array[ip+1]]<array[array[ip+2]])
  107.             {
  108.                 ssilka=array[ip+3];
  109.                 ip=0;
  110.                 while ((array[ip+1]!="ssilka") || (array[ip+2]!=ssilka))
  111.                     ip++;
  112.                 ip+=2;
  113.             }
  114.             else
  115.                 ip+=3;
  116.             break
  117.  
  118.  
  119.             case 'modul' :
  120.             array[array[ip+2]]=Math.abs(array[array[ip+1]]);
  121.             ip+=2;
  122.             break
  123.         }
  124.         if (ip-array.length==1)
  125.             ip=0;
  126.         else
  127.             ip++;
  128.     }
  129. }
  130.  
  131.  
  132. ТЕКСТОВЫЙ ДОКУМЕНТ NOD
  133. 0 0 1 0 Ошибка НетНОД ВведитеЧисло ВведитеЧисло
  134. output 6
  135. input 0
  136. output 7
  137. input 1
  138. modul 0 0
  139. modul 1 1
  140. equ 0 3 10
  141. equ 1 3 11
  142. ssilka 1
  143. equ 0 1 13
  144. less 0 1 2
  145. rasnost 0 1 0
  146. goto 1
  147. ssilka 2
  148. rasnost 1 0 1
  149. goto 1
  150. ssilka 13
  151. output 0
  152. exit
  153. ssilka 10
  154. equ 1 3 12
  155. output 1
  156. exit
  157. ssilka 12
  158. output 5
  159. exit
  160. ssilka 11
  161. equ 0 3 12
  162. output 0
  163. exit
  164.  
  165. ТЕКСТОВЫЙ ФАКТОРИАЛ
  166. 0 0 1 0 1 НеСуществует 170 СлишкомБольшоеЧисло ВведитеЧисло
  167. output 8
  168. input 0
  169. less 0 3 1
  170. less 6 0 5
  171. equ 0 3 2
  172. ssilka 3
  173. sum 4 1 1
  174. proizvedenie 2 1 2
  175. less 1 0 3
  176. output 2
  177. exit
  178. ssilka 1
  179. output 5
  180. exit
  181. ssilka 2
  182. output 2
  183. exit
  184. ssilka 5
  185. output 7
  186. exit
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement