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

Here you can find explanations for the different kinds of elements that can 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 empty centre of your diagram. When you click on the respective element button, an editor window will appear, allowing you to fill in the element text and some comment. Then the filled-in element will be placed immediately after the previously selected element (see above). If you want to place the element before the selected element, just hold the shift button pressed while you click 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).

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