## iFlowDiagram |

Espanol

Back to apps

Privacy policy

**iFlowDiagram** is an app that supports the design, execution and translation of flow charts representing algorithms.

This app is recommended for students and teachers of courses related to fundations of programming.

Using **iFlowDiagram** it is possible to represent algorithms that solve mathematical problems, through assignment, input and output instructions, as well as one selection and one iteration control structures.

An **assignment** can be used for saving the result of an arithmetic expression in a variable.

The syntax to describe it is: **variable ← arithmetic-expression**

The **arithmetic-expression** can include variables, numbers, parentheses and arithmetic operators (+, -, *, /), including % for module.

A **variable** can be simple (for example: average) or an array element, in this case, you must specify the array element index using brackets, the index can be an integer number or a variable (for example: values[i] or values[2]).

An **input** can be used to represent a value entered by the user to the algorithm.

The syntax to describe it is: **input variable**

An **output** can be used to represent messages and values showed by the algorithm to the user.

The syntax to describe it is: **output "message", variable**

When you need a new line (line break), you can type NEWLINE in the message text field.

A **selection** control structure can be used to follow or not to follow a path in the algorithm, according to a condition.

An **iteration** control structure can be used to repeat a sequence of instructions while a condition is satisfied.

The **condition**, that is part of a selection or iteration control structure, is described: **arithmetic-expression relational-operator arithmetic-expression**

The **arithmetic-expression** is the same as in an assignment and the **relational-operator** can be < (less than), > (greater than), <= (less than or equal to), >= (greater than or equal to), = (equal to), # (not equal to).

To create an algorithm´s flow chart, you must touch the icon and select the option **New algorithm**. Then, you must type the name and description of the algorithm.

The initial flow chart will appear in the screen, with just two elements, begin and end.

To insert elements in the diagram, you must touch and hold (long press) on the element where you want to insert the new element. If the element is a condition, the app will ask you to choose the position to insert (begin, end and in some cases above). Later, a menu view will appear:

The menu view will show the 5 kind of elements that can be inserted (assignment, input, output, selection and iteration), you must touch on the selected option.

Once the kind of element to insert is selected, the corresponding view will appear, you must type the information needed according to the kind of element.

For an assignment:

For an input:

For an output:

For a selection or iteration:

In the menu view, you can select the **Delete** or **Edit** options, for deleting an element or modifying the information of an element.

If you want to return to a previous state of the flow chart, you can use the **Undo** option.

To load a flow chart, previously saved, you must touch the icon . Then, you must touch on the name of the algorithm that appear in the shown list.

To modify the description of a flow chart, you must touch on the name of the flow chart that is shown in the toolbar.

To share a previously saved flow chart, you must touch the icon . Then, you can choose to save the flow chart in the photos library or to send it as an email attachment to other user to open it using **iFlowDiagram**.

To run or execute a flow chart, you must touch the icon . The algorithm will run according to the way it was designed.

To translate the flow chart to pseudocode, you must touch on the button **Pseudocode**. The flow chart will be translated to an equivalent version in pseudocode.

Next, you can find some examples of flow charts created with iFlowDiagram.

Fibonacci sequence.

Average.

Bubble sort.

Comments or questions can be sent to:

Guillermo Licea (**glicea@gmail.com**)