# Web2c 2009

Version of implementation Web2c of programming language TeXVersion of Web2c included in TeX Live 2009 distribution.

## Examples:

### Hello, World! - TeX (298):

```
Hello, World!
\bye
```

### Quadratic equation - TeX (301):

This example uses TeX fixed point arithmetic package fp and it’s macro for solving quadratic equations called `\FPqsolve`

. Note that this macro can find only real roots of equation, and prints “FP error: Quadratic equation does not have a solution” if roots are complex (i.e., non-existent from its point of view).

```
\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
```

Quadratic equation: document generated by TeX example program

### Factorial - TeX (302):

This example uses iterative factorial definition.

Note that `\factorial`

macro has to use double curly brackets because it has loop that is used inside other loop.

Also only factorials up to 12 are handled. For bigger numbers TeX throws “Arithmetic overflow” error.

```
\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
```

### Fibonacci numbers - TeX (303):

This example uses iterative process to calculate Fibonacci numbers.

Note that `\fibonacci`

macro has to use double curly brackets because it has loop that is used inside other loop.

```
\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
```

## Comments

]]>blog comments powered by Disqus

]]>