
\usepackage{pseudocode}
의사 코드 작성을 위해 LaTeX를 사용하고 있습니다 .
작성 방법스위치이 패키지를 사용하는 성명은 무엇입니까?
패키지를 사용하여 90% 이상의 의사 코드를 작성합니다.의사코드. 유효성 검사 기능에서 쓰고 싶습니다스위치성명.
\PROCEDURE{Validate}{location1,location2}
l1 \GETS 0 \\
l2 \GETS 0 \\
validate \GETS true \\
\IF board[location1] \neq 0 \THEN
\BEGIN
l1 \GETS board[location1]
l2 \GETS board[location2]
\IF l1 + l2 is odd and l2 \neq 0 \THEN
validate \GETS false
\ELSE
\BEGIN
%\SWITCH here i want to write switch statement
%\BEGIN
%\END
\END
\END
\RETURN {validate}\\
\ENDPROCEDURE
알고리듬x 및 알고리즘과 같은 다른 패키지를 사용하여 의사코드에서 스위치 추가 문을 찾을 수 있습니다. 다음을 사용하여 스위치 문을 추가하는 방법이 있습니다.의사코드 패키지?
답변1
이것이 당신이 추구하는 것인지 확실하지 않지만 첫 번째 시도입니다.
\documentclass{article}
\usepackage{amsmath,pseudocode}% http://ctan.org/pkg/{amsmath,pseudocode}
\newcommand{\algvar}[1]{\text{\ttfamily\upshape#1}}
\makeatletter
\newcommand{\SWITCH}{\mbox{\bfseries switch }}
\renewcommand{\CASE}{\mbox{ \bfseries case }}
\newcommand{\CASEELSE}{\mbox{ \bfseries else }}
\makeatother
\begin{document}
\begin{pseudocode}{Validate}{\algvar{location1}, \algvar{location2}}
\PROCEDURE{Validate}{\algvar{location1}, \algvar{location2}}
l_1 \GETS 0 \\
l_2 \GETS 0 \\
\algvar{validate} \GETS \TRUE \\
\IF \algvar{board}[\algvar{location1}] \neq 0 \THEN
\BEGIN
l_1 \GETS \algvar{board}[\algvar{location1}] \\
l_2 \GETS \algvar{board}[\algvar{location2}] \\
\IF (l_1 + l_2 \text{ is odd}) \AND (l_2 \neq 0) \THEN
\algvar{validate} \GETS \FALSE
\ELSE
\BEGIN
\SWITCH i
\BEGIN
\CASE 1 \text{ Something 1} \\
\CASE 2 \text{ Something 2} \\
\CASE 3 \text{ Something 3} \\
\CASE 4 \text{ Something 4} \\
\CASEELSE \text{ Something else}
\END
\END
\END \\
\RETURN {\algvar{validate}} \\
\ENDPROCEDURE
\end{pseudocode}
\end{document}
사용된 건축물은pseudocode
s를 기반으로 하므로 array
쉽게 수정할 수 있습니다. 그러나 명령의 모양 \SWITCH
, 배치, 정렬 및 자리맞추기 측면에서 원하는 것이 무엇인지에 따라 달라집니다.