% -*- coding: iso-8859-2 -*-
\documentclass[a4paper]{article}
\usepackage{progm}
\analpacks
\analoldal{3. feladatsor, 15. feladat, függvényabsztarkcióval}
\begin{document}
\noindent

\emph{Feladat:} Adott az $x$ sorozat, ami egy szöveget
tartalmaz. Másoljuk át $x$-et a $z$ sorozatba úgy, hogy a kerek
zárójelek közé írt szöveget elhagyjuk! (A zárójelekkel együtt.)
Feltesszük, hogy a szövegben a zárójelek kiegyensúlyozottak.

\emph{Specifikáció:}\\
$\S=\seq(Ch)$\\
$A = \alatt{\S}{x} \times \alatt{\S}{z}$\\
$B = \alatt{\S}{x'}$\\
$Q = ( x=x' )$\\
$R = ( z= f(dom(x'))_1)$, ahol $f(0):=(<>, 0), \forall i\in[1,dom(x')]: f(i):=F(i, f(i-1))$\\
$F(i,y):=\begin{cases}
  (y_1, y_2+1) & \text{, ha } x_i = \text{,,}(\text{''} \\
  (y_1, y_2-1) & \text{, ha } x_i = \text{,,})\text{''} \\
  (y_1:\hiext(x_i), y_2) & \text{, ha } x_i\ne\text{,,}(\text{''} \es x_i\ne\text{,,})\text{''} \es y_2=0 \\
  (y_1, y_2) & \text{, ha } x_i\ne\text{,,}(\text{''} \es x_i\ne\text{,,})\text{''} \es y_2\ne0
\end{cases}$

A rekurzív függvény kiszámítása sorozatra:

\begin{stuki}[12cm]
  \stm{z,d:=<>,0}
  \begin{WHILE}{5}{\stm{x.\dom\ne 0}}
    \stm{dx:=x.\lov}
    \begin{CASE}[3]{1}{4}
      \WHEN{\stm[3]{dx = \text{,,}(\text{''}}} \stm{d:=d+1}
      \WHEN{\stm[3]{dx = \text{,,})\text{''}}} \stm{d:=d-1}
      \WHEN{\stm[3]{dx \ne \text{,,}(\text{''} \es \\ dx \ne \text{,,})\text{''} \es \\ d=0}} \stm{z:\hiext(dx)}
      \WHEN{\stm[3]{dx \ne \text{,,}(\text{''} \es \\ dx \ne \text{,,})\text{''} \es \\ d\ne0}} \SKIP
    \end{CASE}
  \end{WHILE}
\end{stuki}
\end{document}
