S T R U C T O R I Z E R - User Guide

Here can you find explanations for the different kinds of elements that may be inserted into a Nassi-Shneiderman diagram and how to do this in Structorizer.

The framing Program (or Subroutine or Includable) element will already be there.

The body of any algorithm can be composed of up to ten standard types (plus an extra type) of elements all being offered in the element toolbar for insertion:

Element toolbar

In order to add an element you must have selected either an existing element in your diagram or the initially empty centre of your diagram. When you click on the respective element button, an input form ("element editor") will appear, allowing you to fill in the element text and some comment. On committing, the filled-in element will be placed immediately after the previously selected element (see above). If you wanted to place the element before the selected element, you should just have held the shift button pressed while clicking on the element symbol in the toolbar.

Elements can also be created via menu "DiagramAdd" or the function keys listed among the key bindings.

To perform some (more or less atomic) action you will use the basic element type: Instruction (Instruction icon).
If you want to delegate complex operations to another diagram, insert a CALL (CALL icon) instead.

If the further activities depend on a condition or selection, insert an IF (IF icon) or CASE (CASE icon) statement. They fork the control flow.

If you have to repeat some bunch of operations, you'll need one of the loop elements: FOR (FOR icon (DIN)/FOR icon (non-DIN)), WHILE (WHILE icon), REPEAT (REPEAT icon), or ENDLESS (ENDLESS icon) loop.

If you happen to have to do several sub-tasks, which are mutually independent and could be performed in arbitrary order or in parallel, then you may choose to make them branches of a PARALLEL (PARALLEL icon) element.

If you are an advanced programmer and want to model exception handling then you may use the non-standard TRY (TRY element icon) element. You may "raise" (or "throw") an exception by means of an EXIT (Jump) element (Icon for an EXIT element).

(An EXIT (Jump) element (Icon for an EXIT element) may also be used in certain cases to exit extraordinarily from a loop or a diagram, though it ought to be avoided.)

Just inspect the respective subsection for details.

Note: First of all the right choice and placement of elements is important.
If you are just interested in a symbolic representation of an algorithm then you may fill in arbitrary text of a natural language or pseudo-code and ignore the syntactic explanations given in the subsections. Still the text should be understood in a similar way: So if a condition is requested, the text should express a question or logical assertion.
If you want to test and export an algorithm, however, then of course you should adhere to the (still loose) syntactic recommendations.
If you want both, then there are modes in Structorizer that support a combined approach (e.g. Switch text/comments or Comments plus text).