\documentclass[a4paper,11pt]{article}

%disse seks bør altid være der.
\usepackage[latin1]{inputenc}
\usepackage[danish]{babel}
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{amssymb}
\usepackage{latexsym}


\usepackage[T1]{fontenc}
%disse to bruges til at få lavet bedre 
%pdffiler.
\usepackage{ae}
\usepackage{aecompl}
%fjern %'en hvis du vil bruge 
%times fonte i tekst og matematik
%\usepackage{times}
%\usepackage{mathptm}

%fjern % hvis du vil bruge pakken
%giver adgang til \mathbbm{..}
%\usepackage{bbm}


%sætninger
\usepackage{amsthm} 
 \theoremstyle{plain}%default
 \newtheorem{thm}{Sætning}[section] %sætninger nummereres efter section
\newtheorem*{thm*}{Sætning}%uden nummer
 \newtheorem{prop}[thm]{Proposition}
 \newtheorem{lemma}[thm]{Lemma}
 \newtheorem{cor}[thm]{Korollar}
\newtheorem{claim}[thm]{Påstand}
 \newtheorem*{claim*}{Påstand}%uden nummer
 \theoremstyle{definition}
 \newtheorem{exerc}[thm]{Øvelse}
 \newtheorem{defn}[thm]{Definition}
 \newtheorem{example}[thm]{Eksempel}
 \theoremstyle{remark}
 \newtheorem{obs}[thm]{Observation}
 \newtheorem*{obs*}{Observation}%uden nummer
  \newtheorem{remark}[thm]{Bemærkning}
 \newtheorem*{remark*}{Bemærkning}%uden nummer

%nogle nye kommandoer

%   Et par makroer til at referere til disse saetninger etc.
%   Saa kan du skrive: jvf. \refthm{yndlings_label} har vi....
   \newcommand{\refthm}[1]{Sætning~\ref{#1}}
   \newcommand{\refprop}[1]{Proposition~\ref{#1}}
   \newcommand{\reflemma}[1]{Lemma~\ref{#1}}
   \newcommand{\refcor}[1]{Korollar~\ref{#1}}
   \newcommand{\refdefn}[1]{Definition~\ref{#1}}
   \newcommand{\refremark}[1]{Bemærkning~\ref{#1}}
   \newcommand{\refexample}[1]{Eksemple~\ref{#1}}
%osv

\newcommand{\un}{\operatorname{U}(n)}
\newcommand{\sun}{\operatorname{SU}(n)}
%bruger man bbm pakken kan man %
% bruge \mathbbm i stedet
\newcommand{\R}{\mathbb{R}}
\newcommand{\C}{\mathbb{C}}
\newcommand{\Q}{\mathbb{Q}}
\newcommand{\N}{\mathbb{N}}
\newcommand{\Z}{\mathbb{Z}}
\newcommand{\matr}[1]{\operatorname{Mat}_{#1}(\R{})}
%\bar ikke god til store bogstaver, så vi omdefinerer
\renewcommand{\bar}[1]{\overline{#1}}


\author{}
\title{Sudoko på en TI-83}
\date{}
\begin{document}

%formel numre efter sections
\numberwithin{equation}{section}
\renewcommand{\theequation}{\thesection.\arabic{equation}}

\maketitle
Her er så et lille program der kan løse en sudoku på en TI-83. Det
bruger sygt meget hukkommelse, så hvis du har fyldt din lommeregner
godt op med alt muligt, brokker den sig nok. Kommentarer sendes til
jonas@imf.au.dk.

Her er lige et par informationer om, hvorledes teksten skal
forstås. \verb|->| betyder STORE. \verb|[A]| betyder matricen
$A$. \verb|L1| betyder listen $L_1$. Når jeg engang får fat i et
link-kabel, skal jeg nok ligge programmet ud i et bedre format.

Sudoku-løseren består af tre programmer, der skal gemmes med de navne
som overskriften antyder. Man skal give den en $9\times9$-matrix med
de indgange man kender. Dem man ikke kender skal være nul.

\section{SUDOKU}
\begin{verbatim}
Input "SUDOKU-MATRIX=",[A]

{9,9}->dim([B])
{9,1}->dim([C])

{2,3,5,7,11,13,17,19,23}->L1
{1,1,1,4,4,4,7,7,7}->L2
{1}->L3

1->L
1->M


Lbl 1
Disp "NY SUDOKU"

0->P
1->R

Fill(1,[B])
For(I,1,9)
For(J,1,9)
[A](I,J)->X
If not(X=0)
Then
prgmSUDOMASK
P+1->P
End
End
End
Disp "MASKE OPDATERET"

While R>0
0->R:9->D

Disp "TAL PLACERET:",P

For(I,1,9)
For(J,1,9)
0->C

If [A](I,J)=0
Then

For(X,1,9)
If not([B](I,J)/L1(X)=int([B](I,J)/L1(x)))
Then
C+1->C
X->Q
End
End

If C=1
Then
Q->[A](I,J)
1+P->P
1+R->R
Q->X
prgrmSUDOMASK
End

If C<D
Then
C->D:I->F:J->G
End

End

If P=81
Then
Disp "DONE!","RES GEMT I [A]"
Stop
End

End
End

End


For(X,1,9)
F->I:G->J
If not([B](I,J)/L1(X)=int([B](I,J)/L1(X)))
Then
X->[A](I,J)
augment([C],[A])->[C]
augment(L3,{L+1})->L3
0->[A](I,J)
End
End

prgmSUDOTREE
Goto 1
\end{verbatim}

\section{SUDOMASK}
\begin{verbatim}
For(A,1,9)
If not([B](I,A)/L1(X)=[B](I,A)/L1(X))
[B](I,A)*L1(X)->[B](I,A)

If not([B](A,J)/L1(X)=[B](A,J)/L1(X))
[B](A,J)*L1(X)->[B](A,J)
End

For(A,L2(I),L2(I)+2)
For(B,L2(J),L2(J)+2)
If not([B](A,B)/L1(X)=[B](A,B)/L1(X))
[B](A,B)*L1(X)->[B](A,B)
End
End

Return
\end{verbatim}

\section{SUDOTREE}
\begin{verbatim}
For(N,M+1,dim(L3))
If L3(N)=L
Then
N->M
Goto 1
End
End

For (N,1,dim(L3))
If L3(N)=L+1
Then
L+1->L
N->M
Goto 1
End
End

Lbl 1
For(A,1,9)
For(B,1,9)
[C](A,9(N-1)+1+B)->[A](A,B)
End
End

Return
\end{verbatim}
\end{document}
