S T R U C T O R I Z E R

GNU General Public License



Read here ...
F.A.Q.
Why doesn't Structorizer support FOR loops in C-like syntax, i.e. for(...; ...; ...)?
Though this syntax - once very unusual when C was designed - has become pretty popular since many C-inspired other languages have adopted it, the disadvantages caused by it concerning language-independence and predictability e.g. on code export are significant.
One might expect that a typical FOR loop in C syntax looks like this:
for (int i = 0; i < N; i++)
In this case it would indeed be easy to extract the loop variable (i), a start value (0), an end value (N-1), and an increment (+1), which are needed to interpret the loop in a generic way. Unfortunately the loop schema can be (ab)used in many ways, however, as it allows to place arbitrary instruction sequences (even empty ones) in zones 1 and 3 and any Boolean expression or even nothing in zone 2. This way, its flexibility undermines the semantics of the Nassi-Shneiderman symbols and complicates execution and code export heavily.
The wild and inconsistent guesswork needed to extract the above information from FOR loop headers of the strangest kinds in dozens of different syntax variants in early Structorizer versions was no longer acceptable such that we decided for a form-based FOR loop editor that ensures a reliable interpretation.
You may still switch to free text mode and write down a C-style loop header for documentation purposes but then Structorizer won't account for executability and sensible code export results.
see 0 comments on this item
Where can I find help about Nassi-Shneiderman diagrams?
If you need help with Nassi-Shneiderman diagrams, please consider one of the following links:

see 0 comments on this item
When I import a source file e.g. from Pascal and re-export it then many variables lose their information. Can this loss be avoided?
Yes, mostly. Without declarations, Structorizer can only guess the type from assigned values (if these are very simple). The type of variables introduced by an INPUT instruction cannot be inferred at all. So make sure to have import option "Import variable declarations" enabled before you parse code. (By default, it is switched off.) This will preserve the declarations in the diagram such that on export more type information (ideally all) is available.
see 0 comments on this item
What is the best font to choose for diagrams?
For Structorizer 3.x, you need to choose a font that supports Unicode. Check the test string in the font dialog and make sure you see an arrow and the sign for an empty set ():

The following fonts should work fine:
  • Arial Unicode
  • Dialog
  • Lucidia Bright
  • Lucidia Sans
  • Lucidia Sans Unicode
  • Monospaced
  • OpenSymbol
  • Sans Serif
  • Serif
see 0 comments on this item
Structorizer works only with instructions in french. Can you help me?
As Structorizer does not follow Microsoft standards, the language of the graphical user interface is independent of the syntax used to develop algorithms.
Since Structorizer version 3.26-00, the default keyword set for the diagram elements is in English. Anyway, you may simply go to the respective configuration panel via menu item "Preferences"->"Parser" and change the keywords according to your needs. Note that you may even choose among some pre-configured localized keyword sets via the broad button near the lower right corner of the Parser Preferences panel.
Whenever you modify the parser preferences, Structorizer will offer you automatically to refactor all open diagrams accordingly (i.e. to replace the previously valid keywords in the texts by the new ones).
Likewise, when you load diagrams Structorizer will adapt them to the current keyword set (if you allowed this refactoring in the import options for NSD files, reachable via menu item "Preferences"->"Import"; it is enabled by default).
On 2020.03.25@19:37:50 kay wrote:

Meanwhile, the default keywords are no longer French but English on a fresh installation. Moreover, under "Preferences > Parser" you may even choose among some pre-configured localized keyword sets (see the broad button near the lower right corner of the panel). Last but not least, Structorizer offers automatically to refactor your open diagrams when you modify some of the configured keywords. When you load diagrams then Structprizer will adapt them to the currently configured keywords if you allowed this refactoring in the import options for NSD files (reachable via "Preferences > Import"). This option is activated by default.
Please log in first to post a comment.
Is there any user manual for Structorizer?
Yes, here it is: Structorizer User Guide

Several people have worked on this before. Check out these documents:
see 0 comments on this item
Is there a loop element with "do while" semantics as in C etc.?
Yes and no. In fact, Structorizer provides an end-controlled loop with "repeat until" semantics. The only difference to a "do while" loop is the inverse logic of the loop condition. For avoiding ambiguity, Structorizer can only provide one of them. It should not be a big issue to negate the condition in order to achieve the opposite effect if desired. On execution, import, and export Structorizer manages very well to ensure algorithmic equivalence.
You can find a more detailed discussion here: Issue #830
see 0 comments on this item
Is it possible to export a library of routines even if some of them are not called by another?
Yes, since version 3.30-07 you may use the so called group export for it. Simply put all subroutine diagrams (and possibly needed includables) into a common arrangement group, select the group in the Arranger index and start the export via the context menu of the Arranger index. The export may also be done as batch job at the command line having saved the group as an arrangement file before.
see 0 comments on this item
Is it possible to ensure some "classroom" settings for Structorizer, i.e. common settings for all users?
Yes. Since version 3.29-12 you can place a central ini file with selectively exported preferences in the installation directory of Structorizer. The effect will be that the centrally stored preferences will override the respective personal settings on Structorizer start. It does not hinder users to modify them during the session, to store them as file and to reload this after the next start, though. But pupils cannot e.g. leave an idiotic configuration just to rile the next one using the same account. (With inidvidual local accounts this kind of joke is hardly possible anyway.)
This central ini file is a relatively easy way to prepare some default settings that differ from the standard Structorizer defaults, which are otherwise imposed on every new user.
see 0 comments on this item
Do I have to save diagrams as nsd files first to create an Arrangement archive?
No. After having e.g. imported a bunch of diagrams from a source file or decomposed a complex diagram into several subroutine diagrams, all placed in the Arranger, you should just make sure that the collaborating diagrams form a common group (via the context menu tools in the Arranger index). Then select the group in the Arranger index and activate the context menu item "Save changes". Choose "As archive (*.arrz)". This way you can save the member diagrams of the group directly in the emerging arrz file. (When you later edit diagrams loaded from an arrangement archive their changes will be saved directly in the archive.)
see 0 comments on this item