]]> ]]>

Web2c 2009

Версия реализации Web2c языка программирования TeX

Версия Web2c, входящая в состав дистрибутива TeX Live 2009.

Примеры:

Квадратное уравнение - TeX (292):

Данный пример использует TeX-пакет для арифметики с фиксированный запятой fp и макрос этого пакета для решения квадратных уравнений \FPqsolve. Данный макрос может находить только вещественные корни уравнения, и завершается с ошибкой “FP error: Quadratic equation does not have a solution” если корни комплексные (т.е. вещественных корней нет).

\input fp.tex

\message{A = }
\read -1 to \a
\message{B = }
\read -1 to \b
\message{C = }
\read -1 to \c

\FPqsolve{\xone}{\xtwo}{\number\a}{\number\b}{\number\c}

$\a x^2+\b x+\c=0$

$x_1=\xone$

$x_2=\xtwo$
\bye

Квадратное уравнение: документ, сгенерированный TeX-программой
Квадратное уравнение: документ, сгенерированный TeX-программой

Факториал - TeX (293):

Данный пример использует итеративное определение факториала.

В макросе \factorial используются двойные фигурные скобки, т.к. в макросе присутствует цикл, который вызывается внутри другого цикла.

Рассчитываются только факториалы чисел до 12 включительно. Для больших чисел выполнение завершается с ошибкой “Arithmetic overflow”.

\newcount\n \newcount\p \newcount\m

\def\factorial#1{{\m=#1\advance\m by 1
\n=1
\p=1
\loop\ifnum\n<\m \multiply\p by \n \advance\n by 1 \repeat\number\p}}

\def\printfactorials#1{\m=#1\advance\m by 1
\n=0
\loop\ifnum\n<\m \hfil\break\number\n! = \factorial{\n} \advance\n by 1 \repeat}

\printfactorials{12}
\bye

Числа Фибоначчи - TeX (294):

Данный пример использует итеративный процесс для расчета чисел Фибоначчи.

В макросе \fibonacci используются двойные фигурные скобки, т.к. в макросе присутствует цикл, который вызывается внутри другого цикла.

\newcount\n \newcount\np \newcount\npp \newcount\m \newcount\f

\def\fibonacci#1{{\ifnum #1<3 1\else
\np=1\npp=1\m=3
\loop\ifnum\m<#1\f=\npp\npp=\np\advance\np by\f\advance\m by 1\repeat
\f=0\advance\f by\np\advance\f by\npp
\number\f\fi}}

\def\printfibonacci#1{\m=#1\advance\m by 1
\n=1
\loop\ifnum\n<\m\fibonacci{\n}, \advance\n by 1\repeat...}

\printfibonacci{16}
\bye

Hello, World! - TeX (295):

Hello, World!
\bye

Комментарии

]]>

blog comments powered by Disqus

]]>

Работа программистам