2010-09-18 15 views
5

Googling của tôi đã không đưa ra cách để làm một tuyên bố chuyển đổi trong một thuật toán bằng cách sử dụng các thuật toán và các gói thuật toán, nhưng tôi giả sử bạn có thể. Hầu hết các hướng dẫn chỉ không đề cập đến nó một trong hai cách.Sử dụng gói thuật toán Latex cho báo cáo chuyển đổi?

\begin{algorithm} 
\caption{send(...) method} 
\begin{algorithmic} 
\IF{dest equals..} 
%\SWITCH{nature} 
\STATE cast data... 
\STATE extract data... 
\STATE copy... 
%\ENDSWITCH 
\ELSE 
\STATE match dest.... 
%\SWITCH{nature} 
\STATE cast data... 
\STATE extract data... 
\STATE send... 
%\ENDSWITCH 
\ENDIF 
\end{algorithmic} 
\end{algorithm} 

Cảm ơn!

Trả lời

3

Tôi đã viết các định nghĩa sau trong tài liệu latex của mình. Có vẻ như chúng hoạt động. Chỉ cần chèn các dòng ở trên bất cứ nơi nào sau khi tuyên bố đưa vào gói thuật toán. Đặc biệt, để trình bày thuật toán ngắn gọn, tôi phân biệt giữa các trường hợp ghép và các trường hợp một dòng. Các trường hợp một dòng bắt đầu bằng \ CASELINE. Các trường hợp ghép bắt đầu với \ CASE và kết thúc bằng \ ENDCASE. Tương tự như các câu lệnh mặc định.

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 
%% The following definitions are to extend the LaTeX algorithmic 
%% package with SWITCH statements and one-line structures. 
%% The extension is by 
%% Prof. Farn Wang 
%% Dept. of Electrical Engineering, 
%% National Taiwan University. 
%% 
\newcommand{\SWITCH}[1]{\STATE \textbf{switch} (#1)} 
\newcommand{\ENDSWITCH}{\STATE \textbf{end switch}} 
\newcommand{\CASE}[1]{\STATE \textbf{case} #1\textbf{:} \begin{[email protected]}} 
\newcommand{\ENDCASE}{\end{[email protected]}} 
\newcommand{\CASELINE}[1]{\STATE \textbf{case} #1\textbf{:} } 
\newcommand{\DEFAULT}{\STATE \textbf{default:} \begin{[email protected]}} 
\newcommand{\ENDDEFAULT}{\end{[email protected]}} 
\newcommand{\DEFAULTLINE}[1]{\STATE \textbf{default:} } 
%% 
%% End of the LaTeX algorithmic package extension. 
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 

Bạn có thể thử ví dụ sau.

\SWITCH {$\theta$} 
\CASE {1} 
    \STATE Hello 
\ENDCASE 
\CASELINE {2} 
    \STATE Good-bye 
\DEFAULT 
    \STATE Again ? 
\ENDDEFAULT 
\ENDSWITCH 

Farn Wang Phòng điện. Đại học Quốc gia Đài Loan

+0

Tôi đã thử phương pháp của bạn, nhưng tôi nhận được 'LaTeX Lỗi: Đã xảy ra lỗi - có thể thiếu \ item.' bằng' \ ENDCASE'. Có cái gì cần phải được viết trước '\ newcommands'? Có lẽ một cái gì đó để làm với '@'? – Shahbaz

Các vấn đề liên quan