#!/usr/bin/env ruby
include Enumerable, Math

# составили список чисел от -PI до PI с шагом PI/12
a = (-12 .. 12).map {|i| i.to_s + "*PI/12"}
# печать заголовка
print "Угол\t    Синус\t  Косинус\t  Тангенс\t Котангенс\n" 
for i in a.reverse  # для печати в убывающем порядке
  x = eval i
  printf "%4s\t%9.4f\t%9.4f\t",
    eval(i + "*(15*12/PI)").round, # радианы -&gt; градусы
    sin(x), cos(x)

  if cos(x).abs < 0.0001 then print "  не сущ.\t"
  else  printf "%9.4f\t", tan(x)
  end

  if sin(x).abs < 0.0001 then print  "  не сущ.\n"
  else printf "%9.4f\n", cos(x)/sin(x)
  end
end
