% -*- coding: iso-8859-2 -*-
\documentclass[a4paper]{article}
\usepackage{progm}
\analpacks
\analoldal{2. feladatsor, 55. feladat}
\begin{document}
\noindent
\emph{Feladat:} Számoljuk meg, hogy a $t$ mátrixban hány
olyan sor van, ami csak egyetlen nullától különböző elemet tartalmaz!

\emph{Specifikáció:}\\
$\M = \vect(\Z, \vect(\Z, \Z))$ \\
$A = \alatt{\M}{t} \times \alatt{\N_0}{d}$\\
$B = \alatt{\M}{t'}$\\
$Q = ( t=t' )$\\
$R = ( Q \es d=\sum\limits_{j=t.\lob}^{t.\hib}\chi(f(j)=1))$, ahol $f(j)=\sum\limits_{i=t_j.\lob}^{t_j.\hib}\chi({t_j}_i\ne0)$.

Visszavezetés a számlálásra, természetes.

\begin{tabular}{ccc}
  feladat &  & számlálás \\
  \hline
  $t.\lob$ & \knyil & $m$ \\
  $t.\hib$ & \knyil & $n$ \\
  $f(i)=1$ & \knyil & $\beta(i)$
\end{tabular}

\begin{tabular}{rl}
    \begin{stukibox}[7cm]
      \stm{k,d:=t.\lob-1,0}
      \begin{WHILE}{4}{\stm{k\ne t.\hib}}
        \stm{z:=f(k+1)}
        \begin{IF}{1}{\stm{z = 1}}
          \stm{d:=d+1}
          \ELSE
          \SKIP
        \end{IF}
        \stm{k:=k+1}
      \end{WHILE}
    \end{stukibox}
  & \hspace{-0.4cm}
  \parbox{0.5cm}{\vspace{-3cm}$\left.\vbox{\vspace{1cm}}\right\}$}
  \parbox{8cm}{\vspace{-3cm}
    Az $f(k+1)$ függvényt helyettesítettuk a $z$ változóval a program ezen részében:
     \begin{stuki}[4cm]
         \begin{IF}{1}{\stm{f(k+1) = 1}}
           \stm{d:=d+1}
           \ELSE
           \SKIP
         \end{IF}
     \end{stuki}
   }
\end{tabular}

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

$A' = \alatt{\M}{t} \times \alatt{\Z}{k} \times \alatt{\N_0}{d} \times \alatt{\Z}{z}$\\
$B' = \alatt{\M}{t'} \times \alatt{\Z}{k'} \times \alatt{\N_0}{d'}$\\
$Q' = ( t=t' \es k=k' \es d=d')$\\
$R' = ( Q \es z=\sum\limits_{i=t_{k+1}.\lob}^{t_{k+1}.\hib}\chi({t_{k+1}}_i\ne0)$

\begin{tabular}{ccc}
  feladat &  & számlálás \\
  \hline
  $t_{k+1}.\lob$ & \knyil & $m$ \\
  $t_{k+1}.\hib$ & \knyil & $n$ \\
  ${t_{k+1}}_i=0$ & \knyil & $\beta(i)$ \\
  $j$ & \knyil & $k$
\end{tabular}

\begin{stuki}[7cm]
  \stm{j,z:=t_{k+1}.\lob-1,0}
  \begin{WHILE}{3}{\stm{j\ne t_{k+1}.\hib}}
    \begin{IF}{1}{\stm{{t_{k+1}}_{j+1} \ne 0}}
    \stm{z:=z+1}
    \ELSE
    \SKIP
    \end{IF}
    \stm{j:=j+1}
  \end{WHILE}
\end{stuki}

A visszavezetés paraméteres $k$ és $d$ szerint.

\end{document}
