pytutorial/flow/examples/README.md

203 lines
3.8 KiB
Markdown
Raw Permalink Normal View History

# Flowchart examples
{:.no_toc}
<nav markdown="1" class="toc-class">
* TOC
{:toc}
</nav>
## The goal
Looking into some flow chart examples.
Questions to [David Rotermund](mailto:davrot@uni-bremen.de)
## Most simple program
This program does nothing.
{% raw %}
<pre class="mermaid">
flowchart TD
start([Start])-->stop([Stop])
</pre>
{% endraw %}
In Python:
```python
pass
```
## a+b=c
{% raw %}
<pre class="mermaid">
flowchart TD
start([Start]) --> inita{{"a ← 1"}} --> initb{{"b ← 1"}} --> add("c ← a+b") --> printc[/"print c"/] -->stop([Stop])
</pre>
{% endraw %}
In Python:
```python
a=1
b=1
c=a+b
print(c)
```
## a+b=c with input from user
{% raw %}
<pre class="mermaid">
flowchart TD
start([Start]) --> inputa[/"Input integer a"/] --> inputb[/"Input integer b"/] --> add("c ← a+b") --> printc[/"print c"/] -->stop([Stop])
</pre>
{% endraw %}
In Python:
```python
a = int(input())
b = int(input())
c = a + b
print(c)
```
## for-loop / while loop
{% raw %}
<pre class="mermaid">
flowchart TD
start([Start]) --> initcounter{{"counter ← 0"}} --> initcountermax{{"counter_max ← 100"}} --> Condition{"counter < counter_max"}
Condition -- Yes --> printcounter[/"print counter"/] --> Action["counter ← counter + 1"]
Action --> Condition
Condition -- No --> stop([Stop])
</pre>
{% endraw %}
In Python:
```python
counter_max = 100
for counter in range(0, counter_max):
print(counter)
```
or
```python
counter = 0
counter_max = 100
while counter < counter_max:
print(counter)
counter += 1
```
## if, elif, else
{% raw %}
<pre class="mermaid">
flowchart TD
start([Start]) --> inputa[/"Input integer a"/] --> Condition1{"a < 1"}
Condition1 -- Yes --> Action1[/"print condition 1"/]
Condition1 -- No --> Condition2{"a == 2"}
Condition2 -- Yes --> Action2[/"print condition 2"/]
Condition2 -- No --> ElseAction[/"print condition else"/]
Action1 --> stop([Stop])
Action2 --> stop
ElseAction --> stop
</pre>
{% endraw %}
In Python:
```python
a = int(input())
if a < 1:
print("condition 1")
elif a == 2:
print("condition 2")
else:
print("condition else")
```
## if, elif, else
{% raw %}
<pre class="mermaid">
flowchart TD
start([Start]) --> inputa[/"Input integer a"/] --> Condition1{"a < 1"}
Condition1 -- Yes --> Action1[/"print condition 1"/]
Condition1 -- No --> Condition2{"a == 2"}
Condition2 -- Yes --> Action2[/"print condition 2"/]
Condition2 -- No --> ElseAction[/"print condition else"/]
Action1 --> stop([Stop])
Action2 --> stop
ElseAction --> stop
</pre>
{% endraw %}
In Python:
```python
a = int(input())
if a < 1:
print("condition 1")
elif a == 2:
print("condition 2")
else:
print("condition else")
```
## functions
{% raw %}
<pre class="mermaid">
flowchart TD
Start([Start]) --> Input[/"Input integer a"/]
Input -- a < 1 --> Function1[["function_1()"]]
Function1 --> End([Stop])
Input -- a == 2 --> Function2[["function_2()"]] --> End
Input -- else --> FunctionElse[["function_else()"]] --> End
</pre>
<pre class="mermaid">
flowchart TD
Function1[["function_1()"]] --> Start([Start]) --> Print[/"print condition 1"/] --> End([Stop])
</pre>
<pre class="mermaid">
flowchart TD
Function2[["function_2()"]] --> Start([Start]) --> Print[/"print condition 2"/] --> End([Stop])
</pre>
<pre class="mermaid">
flowchart TD
FunctionElse[["function_else()"]] --> Start([Start]) --> Print[/"print condition else"/] --> End([Stop])
</pre>
{% endraw %}
In Python:
```python
def function_1():
print("condition 1")
def function_2():
print("condition 2")
def function_else():
print("condition else")
a = int(input())
if a < 1:
function_1()
elif a == 2:
function_2()
else:
function_else()
```