How to add input and output before algorithm procedure
up vote
4
down vote
favorite
I am using ACM format for writing a paper. I use the following algorithm sample that is taken from this form. I want to add input and output before MyProcedure. I tried many ways but all fails. Can someone guide me? Thank you
usepackage{algorithm}
usepackage[noend]{algpseudocode}
begin{algorithm}
caption{My algorithm}label{euclid}
begin{algorithmic}[1]
% Input:
% Output:
Procedure{MyProcedure}{}
State $textit{stringlen} gets text{length of }textit{string}$
State $i gets textit{patlen}$
BState emph{top}:
If {$i > textit{stringlen}$} Return false
EndIf
State $j gets textit{patlen}$
BState emph{loop}:
If {$textit{string}(i) = textit{path}(j)$}
State $j gets j-1$.
State $i gets i-1$.
State textbf{goto} emph{loop}.
State textbf{close};
EndIf
State $i gets i+max(textit{delta}_1(textit{string}(i)),textit{delta}_2(j))$.
State textbf{goto} emph{top}.
EndProcedure
end{algorithmic}
end{algorithm}
algorithms algorithm2e algorithmicx
add a comment |
up vote
4
down vote
favorite
I am using ACM format for writing a paper. I use the following algorithm sample that is taken from this form. I want to add input and output before MyProcedure. I tried many ways but all fails. Can someone guide me? Thank you
usepackage{algorithm}
usepackage[noend]{algpseudocode}
begin{algorithm}
caption{My algorithm}label{euclid}
begin{algorithmic}[1]
% Input:
% Output:
Procedure{MyProcedure}{}
State $textit{stringlen} gets text{length of }textit{string}$
State $i gets textit{patlen}$
BState emph{top}:
If {$i > textit{stringlen}$} Return false
EndIf
State $j gets textit{patlen}$
BState emph{loop}:
If {$textit{string}(i) = textit{path}(j)$}
State $j gets j-1$.
State $i gets i-1$.
State textbf{goto} emph{loop}.
State textbf{close};
EndIf
State $i gets i+max(textit{delta}_1(textit{string}(i)),textit{delta}_2(j))$.
State textbf{goto} emph{top}.
EndProcedure
end{algorithmic}
end{algorithm}
algorithms algorithm2e algorithmicx
Input x,y with:Procedure{Algo name}{$x,y$}. OrComment{Input: }andComment{Output:}
– Bobyandbob
Feb 27 '17 at 6:58
Here is an example: tex.stackexchange.com/a/215651/124842
– Bobyandbob
Feb 27 '17 at 8:13
@Bobyandbob Would you like to write up an answer, or is that question a duplicate? (I didn't look at it.)
– Torbjørn T.
Jun 3 '17 at 21:46
@TorbjørnT. No the link is an alternativ withalgorithm, but Steven do not respond to comments. Nevertheless i added some ideas.
– Bobyandbob
Jun 4 '17 at 10:07
Does the answer fits your question?
– Bobyandbob
Feb 23 at 23:27
add a comment |
up vote
4
down vote
favorite
up vote
4
down vote
favorite
I am using ACM format for writing a paper. I use the following algorithm sample that is taken from this form. I want to add input and output before MyProcedure. I tried many ways but all fails. Can someone guide me? Thank you
usepackage{algorithm}
usepackage[noend]{algpseudocode}
begin{algorithm}
caption{My algorithm}label{euclid}
begin{algorithmic}[1]
% Input:
% Output:
Procedure{MyProcedure}{}
State $textit{stringlen} gets text{length of }textit{string}$
State $i gets textit{patlen}$
BState emph{top}:
If {$i > textit{stringlen}$} Return false
EndIf
State $j gets textit{patlen}$
BState emph{loop}:
If {$textit{string}(i) = textit{path}(j)$}
State $j gets j-1$.
State $i gets i-1$.
State textbf{goto} emph{loop}.
State textbf{close};
EndIf
State $i gets i+max(textit{delta}_1(textit{string}(i)),textit{delta}_2(j))$.
State textbf{goto} emph{top}.
EndProcedure
end{algorithmic}
end{algorithm}
algorithms algorithm2e algorithmicx
I am using ACM format for writing a paper. I use the following algorithm sample that is taken from this form. I want to add input and output before MyProcedure. I tried many ways but all fails. Can someone guide me? Thank you
usepackage{algorithm}
usepackage[noend]{algpseudocode}
begin{algorithm}
caption{My algorithm}label{euclid}
begin{algorithmic}[1]
% Input:
% Output:
Procedure{MyProcedure}{}
State $textit{stringlen} gets text{length of }textit{string}$
State $i gets textit{patlen}$
BState emph{top}:
If {$i > textit{stringlen}$} Return false
EndIf
State $j gets textit{patlen}$
BState emph{loop}:
If {$textit{string}(i) = textit{path}(j)$}
State $j gets j-1$.
State $i gets i-1$.
State textbf{goto} emph{loop}.
State textbf{close};
EndIf
State $i gets i+max(textit{delta}_1(textit{string}(i)),textit{delta}_2(j))$.
State textbf{goto} emph{top}.
EndProcedure
end{algorithmic}
end{algorithm}
algorithms algorithm2e algorithmicx
algorithms algorithm2e algorithmicx
asked Feb 27 '17 at 6:18
Steven
28114
28114
Input x,y with:Procedure{Algo name}{$x,y$}. OrComment{Input: }andComment{Output:}
– Bobyandbob
Feb 27 '17 at 6:58
Here is an example: tex.stackexchange.com/a/215651/124842
– Bobyandbob
Feb 27 '17 at 8:13
@Bobyandbob Would you like to write up an answer, or is that question a duplicate? (I didn't look at it.)
– Torbjørn T.
Jun 3 '17 at 21:46
@TorbjørnT. No the link is an alternativ withalgorithm, but Steven do not respond to comments. Nevertheless i added some ideas.
– Bobyandbob
Jun 4 '17 at 10:07
Does the answer fits your question?
– Bobyandbob
Feb 23 at 23:27
add a comment |
Input x,y with:Procedure{Algo name}{$x,y$}. OrComment{Input: }andComment{Output:}
– Bobyandbob
Feb 27 '17 at 6:58
Here is an example: tex.stackexchange.com/a/215651/124842
– Bobyandbob
Feb 27 '17 at 8:13
@Bobyandbob Would you like to write up an answer, or is that question a duplicate? (I didn't look at it.)
– Torbjørn T.
Jun 3 '17 at 21:46
@TorbjørnT. No the link is an alternativ withalgorithm, but Steven do not respond to comments. Nevertheless i added some ideas.
– Bobyandbob
Jun 4 '17 at 10:07
Does the answer fits your question?
– Bobyandbob
Feb 23 at 23:27
Input x,y with:
Procedure{Algo name}{$x,y$}. Or Comment{Input: } and Comment{Output:}– Bobyandbob
Feb 27 '17 at 6:58
Input x,y with:
Procedure{Algo name}{$x,y$}. Or Comment{Input: } and Comment{Output:}– Bobyandbob
Feb 27 '17 at 6:58
Here is an example: tex.stackexchange.com/a/215651/124842
– Bobyandbob
Feb 27 '17 at 8:13
Here is an example: tex.stackexchange.com/a/215651/124842
– Bobyandbob
Feb 27 '17 at 8:13
@Bobyandbob Would you like to write up an answer, or is that question a duplicate? (I didn't look at it.)
– Torbjørn T.
Jun 3 '17 at 21:46
@Bobyandbob Would you like to write up an answer, or is that question a duplicate? (I didn't look at it.)
– Torbjørn T.
Jun 3 '17 at 21:46
@TorbjørnT. No the link is an alternativ with
algorithm, but Steven do not respond to comments. Nevertheless i added some ideas.– Bobyandbob
Jun 4 '17 at 10:07
@TorbjørnT. No the link is an alternativ with
algorithm, but Steven do not respond to comments. Nevertheless i added some ideas.– Bobyandbob
Jun 4 '17 at 10:07
Does the answer fits your question?
– Bobyandbob
Feb 23 at 23:27
Does the answer fits your question?
– Bobyandbob
Feb 23 at 23:27
add a comment |
2 Answers
2
active
oldest
votes
up vote
2
down vote
Answer:
To add input and output before MyProcedure a possibility is to add the text before begin{algorithmic} with starred hspace hspace*{}(see 6.3.3 Horizontal Space) and the indentation algorithmicindent (see 4.1 Blocks and loops). LaTeX normally removes horizontal space at the beginning of a line, to preserve this space, use the starred version.
...
hspace*{algorithmicindent} textbf{Input} \
hspace*{algorithmicindent} textbf{Output}
begin{algorithmic}[1]
...

Complete full MWE:
A minimal working example (MWE) starts with documentclass and ends with end{document}.
To complete the MWE and to avoid the following error:
! Undefined control sequence. BState ->State algbackskip l.24
BState
You have to use the following definition (the solution is from @Werner see: Undefined control sequence.BState ->State algbackskip BState):
makeatletter
% Reinsert missing algbackskip
defalgbackskip{hskip-ALG@thistlm}
makeatother
MWE:
documentclass{article}
usepackage{algorithm}
usepackage[noend]{algpseudocode}
makeatletter
% Reinsert missing algbackskip
defalgbackskip{hskip-ALG@thistlm}
makeatother
begin{document}
begin{algorithm}
caption{My algorithm}label{euclid}
hspace*{algorithmicindent} textbf{Input} \
hspace*{algorithmicindent} textbf{Output}
begin{algorithmic}[1]
Procedure{MyProcedure}{}
% Procedure{MyProcedure}{$x,y$}
% % Input:
% Comment{Input: x}
% % Output:
% Comment{Output:y}
State $textit{stringlen} gets textit{length of } textit{string}$
State $i gets textit{patlen}$
BState emph{top}:
If {$i > textit{stringlen}$} Return false
EndIf
State $j gets textit{patlen}$
BState emph{loop}:
If {$textit{string}(i) = textit{path}(j)$}
State $j gets j-1$.
State $i gets i-1$.
State textbf{goto} emph{loop}.
State textbf{close};
EndIf
State $i gets i+max(textit{delta}_1(textit{string}(i)),textit{delta}_2(j))$.
State textbf{goto} emph{top}.
EndProcedure
end{algorithmic}
end{algorithm}
end{document}

Alternative: You can add the input and output after MyProcedure with Procedure{MyProcedure}{$x,y$} ...

or Comment{Input: x}/Comment{Output: y}.

add a comment |
up vote
0
down vote
If one is using the algorithmic environment, one can make REQUIRE and ENSURE to print Input and Output by adding in the preamble:
renewcommand{algorithmicrequire}{textbf{Input:}}
renewcommand{algorithmicensure}{textbf{Output:}}
add a comment |
2 Answers
2
active
oldest
votes
2 Answers
2
active
oldest
votes
active
oldest
votes
active
oldest
votes
up vote
2
down vote
Answer:
To add input and output before MyProcedure a possibility is to add the text before begin{algorithmic} with starred hspace hspace*{}(see 6.3.3 Horizontal Space) and the indentation algorithmicindent (see 4.1 Blocks and loops). LaTeX normally removes horizontal space at the beginning of a line, to preserve this space, use the starred version.
...
hspace*{algorithmicindent} textbf{Input} \
hspace*{algorithmicindent} textbf{Output}
begin{algorithmic}[1]
...

Complete full MWE:
A minimal working example (MWE) starts with documentclass and ends with end{document}.
To complete the MWE and to avoid the following error:
! Undefined control sequence. BState ->State algbackskip l.24
BState
You have to use the following definition (the solution is from @Werner see: Undefined control sequence.BState ->State algbackskip BState):
makeatletter
% Reinsert missing algbackskip
defalgbackskip{hskip-ALG@thistlm}
makeatother
MWE:
documentclass{article}
usepackage{algorithm}
usepackage[noend]{algpseudocode}
makeatletter
% Reinsert missing algbackskip
defalgbackskip{hskip-ALG@thistlm}
makeatother
begin{document}
begin{algorithm}
caption{My algorithm}label{euclid}
hspace*{algorithmicindent} textbf{Input} \
hspace*{algorithmicindent} textbf{Output}
begin{algorithmic}[1]
Procedure{MyProcedure}{}
% Procedure{MyProcedure}{$x,y$}
% % Input:
% Comment{Input: x}
% % Output:
% Comment{Output:y}
State $textit{stringlen} gets textit{length of } textit{string}$
State $i gets textit{patlen}$
BState emph{top}:
If {$i > textit{stringlen}$} Return false
EndIf
State $j gets textit{patlen}$
BState emph{loop}:
If {$textit{string}(i) = textit{path}(j)$}
State $j gets j-1$.
State $i gets i-1$.
State textbf{goto} emph{loop}.
State textbf{close};
EndIf
State $i gets i+max(textit{delta}_1(textit{string}(i)),textit{delta}_2(j))$.
State textbf{goto} emph{top}.
EndProcedure
end{algorithmic}
end{algorithm}
end{document}

Alternative: You can add the input and output after MyProcedure with Procedure{MyProcedure}{$x,y$} ...

or Comment{Input: x}/Comment{Output: y}.

add a comment |
up vote
2
down vote
Answer:
To add input and output before MyProcedure a possibility is to add the text before begin{algorithmic} with starred hspace hspace*{}(see 6.3.3 Horizontal Space) and the indentation algorithmicindent (see 4.1 Blocks and loops). LaTeX normally removes horizontal space at the beginning of a line, to preserve this space, use the starred version.
...
hspace*{algorithmicindent} textbf{Input} \
hspace*{algorithmicindent} textbf{Output}
begin{algorithmic}[1]
...

Complete full MWE:
A minimal working example (MWE) starts with documentclass and ends with end{document}.
To complete the MWE and to avoid the following error:
! Undefined control sequence. BState ->State algbackskip l.24
BState
You have to use the following definition (the solution is from @Werner see: Undefined control sequence.BState ->State algbackskip BState):
makeatletter
% Reinsert missing algbackskip
defalgbackskip{hskip-ALG@thistlm}
makeatother
MWE:
documentclass{article}
usepackage{algorithm}
usepackage[noend]{algpseudocode}
makeatletter
% Reinsert missing algbackskip
defalgbackskip{hskip-ALG@thistlm}
makeatother
begin{document}
begin{algorithm}
caption{My algorithm}label{euclid}
hspace*{algorithmicindent} textbf{Input} \
hspace*{algorithmicindent} textbf{Output}
begin{algorithmic}[1]
Procedure{MyProcedure}{}
% Procedure{MyProcedure}{$x,y$}
% % Input:
% Comment{Input: x}
% % Output:
% Comment{Output:y}
State $textit{stringlen} gets textit{length of } textit{string}$
State $i gets textit{patlen}$
BState emph{top}:
If {$i > textit{stringlen}$} Return false
EndIf
State $j gets textit{patlen}$
BState emph{loop}:
If {$textit{string}(i) = textit{path}(j)$}
State $j gets j-1$.
State $i gets i-1$.
State textbf{goto} emph{loop}.
State textbf{close};
EndIf
State $i gets i+max(textit{delta}_1(textit{string}(i)),textit{delta}_2(j))$.
State textbf{goto} emph{top}.
EndProcedure
end{algorithmic}
end{algorithm}
end{document}

Alternative: You can add the input and output after MyProcedure with Procedure{MyProcedure}{$x,y$} ...

or Comment{Input: x}/Comment{Output: y}.

add a comment |
up vote
2
down vote
up vote
2
down vote
Answer:
To add input and output before MyProcedure a possibility is to add the text before begin{algorithmic} with starred hspace hspace*{}(see 6.3.3 Horizontal Space) and the indentation algorithmicindent (see 4.1 Blocks and loops). LaTeX normally removes horizontal space at the beginning of a line, to preserve this space, use the starred version.
...
hspace*{algorithmicindent} textbf{Input} \
hspace*{algorithmicindent} textbf{Output}
begin{algorithmic}[1]
...

Complete full MWE:
A minimal working example (MWE) starts with documentclass and ends with end{document}.
To complete the MWE and to avoid the following error:
! Undefined control sequence. BState ->State algbackskip l.24
BState
You have to use the following definition (the solution is from @Werner see: Undefined control sequence.BState ->State algbackskip BState):
makeatletter
% Reinsert missing algbackskip
defalgbackskip{hskip-ALG@thistlm}
makeatother
MWE:
documentclass{article}
usepackage{algorithm}
usepackage[noend]{algpseudocode}
makeatletter
% Reinsert missing algbackskip
defalgbackskip{hskip-ALG@thistlm}
makeatother
begin{document}
begin{algorithm}
caption{My algorithm}label{euclid}
hspace*{algorithmicindent} textbf{Input} \
hspace*{algorithmicindent} textbf{Output}
begin{algorithmic}[1]
Procedure{MyProcedure}{}
% Procedure{MyProcedure}{$x,y$}
% % Input:
% Comment{Input: x}
% % Output:
% Comment{Output:y}
State $textit{stringlen} gets textit{length of } textit{string}$
State $i gets textit{patlen}$
BState emph{top}:
If {$i > textit{stringlen}$} Return false
EndIf
State $j gets textit{patlen}$
BState emph{loop}:
If {$textit{string}(i) = textit{path}(j)$}
State $j gets j-1$.
State $i gets i-1$.
State textbf{goto} emph{loop}.
State textbf{close};
EndIf
State $i gets i+max(textit{delta}_1(textit{string}(i)),textit{delta}_2(j))$.
State textbf{goto} emph{top}.
EndProcedure
end{algorithmic}
end{algorithm}
end{document}

Alternative: You can add the input and output after MyProcedure with Procedure{MyProcedure}{$x,y$} ...

or Comment{Input: x}/Comment{Output: y}.

Answer:
To add input and output before MyProcedure a possibility is to add the text before begin{algorithmic} with starred hspace hspace*{}(see 6.3.3 Horizontal Space) and the indentation algorithmicindent (see 4.1 Blocks and loops). LaTeX normally removes horizontal space at the beginning of a line, to preserve this space, use the starred version.
...
hspace*{algorithmicindent} textbf{Input} \
hspace*{algorithmicindent} textbf{Output}
begin{algorithmic}[1]
...

Complete full MWE:
A minimal working example (MWE) starts with documentclass and ends with end{document}.
To complete the MWE and to avoid the following error:
! Undefined control sequence. BState ->State algbackskip l.24
BState
You have to use the following definition (the solution is from @Werner see: Undefined control sequence.BState ->State algbackskip BState):
makeatletter
% Reinsert missing algbackskip
defalgbackskip{hskip-ALG@thistlm}
makeatother
MWE:
documentclass{article}
usepackage{algorithm}
usepackage[noend]{algpseudocode}
makeatletter
% Reinsert missing algbackskip
defalgbackskip{hskip-ALG@thistlm}
makeatother
begin{document}
begin{algorithm}
caption{My algorithm}label{euclid}
hspace*{algorithmicindent} textbf{Input} \
hspace*{algorithmicindent} textbf{Output}
begin{algorithmic}[1]
Procedure{MyProcedure}{}
% Procedure{MyProcedure}{$x,y$}
% % Input:
% Comment{Input: x}
% % Output:
% Comment{Output:y}
State $textit{stringlen} gets textit{length of } textit{string}$
State $i gets textit{patlen}$
BState emph{top}:
If {$i > textit{stringlen}$} Return false
EndIf
State $j gets textit{patlen}$
BState emph{loop}:
If {$textit{string}(i) = textit{path}(j)$}
State $j gets j-1$.
State $i gets i-1$.
State textbf{goto} emph{loop}.
State textbf{close};
EndIf
State $i gets i+max(textit{delta}_1(textit{string}(i)),textit{delta}_2(j))$.
State textbf{goto} emph{top}.
EndProcedure
end{algorithmic}
end{algorithm}
end{document}

Alternative: You can add the input and output after MyProcedure with Procedure{MyProcedure}{$x,y$} ...

or Comment{Input: x}/Comment{Output: y}.

answered Jun 4 '17 at 10:03
Bobyandbob
3,88851264
3,88851264
add a comment |
add a comment |
up vote
0
down vote
If one is using the algorithmic environment, one can make REQUIRE and ENSURE to print Input and Output by adding in the preamble:
renewcommand{algorithmicrequire}{textbf{Input:}}
renewcommand{algorithmicensure}{textbf{Output:}}
add a comment |
up vote
0
down vote
If one is using the algorithmic environment, one can make REQUIRE and ENSURE to print Input and Output by adding in the preamble:
renewcommand{algorithmicrequire}{textbf{Input:}}
renewcommand{algorithmicensure}{textbf{Output:}}
add a comment |
up vote
0
down vote
up vote
0
down vote
If one is using the algorithmic environment, one can make REQUIRE and ENSURE to print Input and Output by adding in the preamble:
renewcommand{algorithmicrequire}{textbf{Input:}}
renewcommand{algorithmicensure}{textbf{Output:}}
If one is using the algorithmic environment, one can make REQUIRE and ENSURE to print Input and Output by adding in the preamble:
renewcommand{algorithmicrequire}{textbf{Input:}}
renewcommand{algorithmicensure}{textbf{Output:}}
answered Nov 23 at 19:53
User525412790
16410
16410
add a comment |
add a comment |
Thanks for contributing an answer to TeX - LaTeX Stack Exchange!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Some of your past answers have not been well-received, and you're in danger of being blocked from answering.
Please pay close attention to the following guidance:
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2ftex.stackexchange.com%2fquestions%2f355937%2fhow-to-add-input-and-output-before-algorithm-procedure%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Input x,y with:
Procedure{Algo name}{$x,y$}. OrComment{Input: }andComment{Output:}– Bobyandbob
Feb 27 '17 at 6:58
Here is an example: tex.stackexchange.com/a/215651/124842
– Bobyandbob
Feb 27 '17 at 8:13
@Bobyandbob Would you like to write up an answer, or is that question a duplicate? (I didn't look at it.)
– Torbjørn T.
Jun 3 '17 at 21:46
@TorbjørnT. No the link is an alternativ with
algorithm, but Steven do not respond to comments. Nevertheless i added some ideas.– Bobyandbob
Jun 4 '17 at 10:07
Does the answer fits your question?
– Bobyandbob
Feb 23 at 23:27