English 中文(简体)
采用末算法包换面说明?
原标题:Using Latex algorithmic package for switch statement?

我的田径大不问,如何使用算法和算法包进行算法的开关说明,但我假定你可以。 多数指南都没有提及。

egin{algorithm}
caption{send(...) method}
egin{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}

感谢!

问题回答

I wrote the following definitions in my latex document. It seems that they work. Just insert the above lines anywhere after your inclusion statement of the algorithmic package. Especially, to make the algorithm presentation concise, I distinguish between compound cases and one-line cases. The one-line cases begin with CASELINE. The compound cases begin with CASE and end with ENDCASE. Similar to the default statements.

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% 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. 
%% 

ewcommand{SWITCH}[1]{STATE 	extbf{switch} (#1)}

ewcommand{ENDSWITCH}{STATE 	extbf{end switch}}

ewcommand{CASE}[1]{STATE 	extbf{case} #1	extbf{:} egin{ALC@g}}

ewcommand{ENDCASE}{end{ALC@g}}

ewcommand{CASELINE}[1]{STATE 	extbf{case} #1	extbf{:} }

ewcommand{DEFAULT}{STATE 	extbf{default:} egin{ALC@g}}

ewcommand{ENDDEFAULT}{end{ALC@g}}

ewcommand{DEFAULTLINE}[1]{STATE 	extbf{default:} }
%% 
%% End of the LaTeX algorithmic package extension.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

你可以尝试以下例子。

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

Farn Wang Dept. of Electrical Eng. National Taiwan University





相关问题
How to add/merge several Big O s into one

If I have an algorithm which is comprised of (let s say) three sub-algorithms, all with different O() characteristics, e.g.: algorithm A: O(n) algorithm B: O(log(n)) algorithm C: O(n log(n)) How do ...

Grokking Timsort

There s a (relatively) new sort on the block called Timsort. It s been used as Python s list.sort, and is now going to be the new Array.sort in Java 7. There s some documentation and a tiny Wikipedia ...

Manually implementing high performance algorithms in .NET

As a learning experience I recently tried implementing Quicksort with 3 way partitioning in C#. Apart from needing to add an extra range check on the left/right variables before the recursive call, ...

Print possible strings created from a Number

Given a 10 digit Telephone Number, we have to print all possible strings created from that. The mapping of the numbers is the one as exactly on a phone s keypad. i.e. for 1,0-> No Letter for 2->...

Enumerating All Minimal Directed Cycles Of A Directed Graph

I have a directed graph and my problem is to enumerate all the minimal (cycles that cannot be constructed as the union of other cycles) directed cycles of this graph. This is different from what the ...

Quick padding of a string in Delphi

I was trying to speed up a certain routine in an application, and my profiler, AQTime, identified one method in particular as a bottleneck. The method has been with us for years, and is part of a "...

热门标签