% -*- coding: iso-8859-2 -*-
\documentclass[a4paper]{article}
\usepackage{progm}
\analpacks
\analoldal{2. feladatsor, 65. feladat}
\begin{document}
\noindent
\emph{Feladat:} Számoljuk meg az $f\colon[m,n]\times[m,n]\nyil\Z$ függvény nulla értékeit!

\emph{Specifikáció:}\\
$A = \alatt{\Z}{m} \times \alatt{\Z}{n} \times \alatt{\No}{d}$\\
$B = \alatt{\Z}{m'} \times \alatt{\Z}{n'}$\\
$Q = ( m=m' \es n=n' \es m\le n+1 )$\\
$R = ( Q \es d=\sum\limits_{i=m}^ng(i))$, ahol $g(i):=\sum\limits_{j=m}^n\chi(f(i,j)=0)$.

Visszavezetés összegzésre, ahol az $f$ függvényt $g$ helyettesíti.

\begin{tabular}{ccc}
  feladat &  & összegzés \\
  \hline
  $g$ & \knyil & $f$
\end{tabular}

\begin{stuki}[4cm]
  \stm{k,d:=m-1,0}
  \begin{WHILE}{3}{\stm{k\ne n}}
    \stm{z:=g(k+1)}
    \stm{d:=d+z}
    \stm{k:=k+1}
  \end{WHILE}
\end{stuki}

Most specifikáljuk és vezessük vissza számlálásra a $z:=g(k+1)$ nem
megengedett értékadást:

$\overline A = \alatt{\Z}{m} \times \alatt{\Z}{n} \times \alatt{\No}{k} \times \alatt{\No}{z}$\\
$\overline B = \alatt{\Z}{m'} \times \alatt{\Z}{n'} \times \alatt{\No}{k}$\\
$\overline Q = ( m=m' \es n=n' \es m\le n+1 \es k=k' )$\\
$\overline R = ( Q \es z=\sum\limits_{j=m}^n\chi(f(k+1,j)=0))$

\begin{tabular}{ccc}
  feladat &  & számlálás \\
  \hline
  $f(k+1,j)=0$ & \knyil & $\beta(j)$ \\
  $j$ & \knyil & $k$
\end{tabular}

\begin{stuki*}[7cm]{$z:=g(k+1)$}
  \stm{j,z:=m-1,0}
  \begin{WHILE}{3}{\stm{j\ne n}}
    \begin{IF}{1}{\stm{f(k+1,j+1)=0}}
    \stm{z:=z+1}
    \ELSE
    \SKIP
    \end{IF}
    \stm{j:=j+1}
  \end{WHILE}
\end{stuki*}

Mindkét visszavezetés természetes.
\end{document}
