javax_slr (javax_slr) wrote,
javax_slr
javax_slr

Упражнение

Для того, чтобы Ярону давать примеры на сложение и вычитание в столбик, написал скрипт на Groovy, который генерирует LaTeX с примерами.

Раньше на латехе ничего не писал, но что это и зачем нужен знал из Универа.
Часа два трахался с тем, как на LaTeX сделать нужный вид столбика.
Для работы с LaTeX поставил соответствующие пакеты из CygWin.








numbers.groovy





 
//////////////////////////////////////////////////// 
int n = 30 
def f1 = new File("d:\\temp\\ex.tex") 
def f2 = new File("d:\\temp\\sol.tex") 
///////////////////////////////////////////////////// 
 
def r = new Random(System.currentTimeMillis()) 
 
f1.delete(); 
f2.delete(); 
 
def header = """ 
\\documentclass[a4paper,12pt,twocolumn]{article} 
\\begin{document} \n""" 
 
f1<< header 
f2<< header 
 
n.times { 
 
  int a = r.nextInt(10000) 
  int b =  r.nextInt(10000) 
  boolean plus = r.nextBoolean() 
  if (a<b) { def t =a; a= b; b = t} 
  int c = plus?a+b:a-b 
 
  def sign = plus?"+":"-" 
 
  f1<< """\$\$ \\frac{$sign  \\begin{array}{rcc} 
           $a \\\\ 
           $b 
        \\end{array}}{}  \$\$\n""" 
 
  f2<<  """\$\$ \\frac{$sign  \\begin{array}{rcc} 
           $a \\\\ 
           $b 
        \\end{array}}{$c}  \$\$\n"""  
  } 
 
def footer =  """ 
\\end{document} \n""" 
 
f1<<footer 
f2<<footer 
 

Tags: programming
Subscribe

  • Post a new comment

    Error

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

    When you submit the form an invisible reCAPTCHA check will be performed.
    You must follow the Privacy Policy and Google Terms of use.
  • 21 comments