# Workflows zur Erstellung von Algorithmen
$$
y =
\sum^m_{i=0} \sum^n_{j=1} a^i + b^j =
\sum^m_{i=0} \left(\sum^n_{j=1} \left(a^i + b^j\right)\right)
$$
- Input: m, n, a, b
- Output: y
## Top-Down
### 1. $\sum^m_{i=0} \left(...\right)$
```
function y = Summenformel(m, n, a, b)
summe1 = 0;
for i=0:m
% TODO ...;
summe1 = summe1 + % TODO ...;
end
y = summe1; % Summe als Ergebnis
end
```
### 2. $\sum^m_{i=0} \left(\sum^n_{j=1} \left(...\right)\right)$
```
function y = Summenformel(m, n, a, b)
summe1 = 0;
for i=0:m
summe2 = 0;
for j=1;n
% TODO ...;
summe2 = summe2 + % TODO ...;
end
summe1 = summe1 + summe2;
end
y = summe1; % Summe als Ergebnis
end
```
### 3. $\sum^m_{i=0} \left(\sum^n_{j=1} \left(a^i + b^j\right)\right)$
```
function y = Summenformel(m, n, a, b)
summe1 = 0;
for i=0:m
summe2 = 0;
for j=1;n
summe2 = summe2 + (a^i + b^j);
end
summe1 = summe1 + summe2;
end
y = summe1; % Summe als Ergebnis
end
```
## Bottom-Up
### 1. $a^i + b^j$
```
% TODO ...
(a^i + b^j)
% TODO ...
```
### 2. $\sum^n_{j=1} \left(a^i + b^j\right)$
```
summe2 = 0;
for j=1;n
summe2 = summe2 + (a^i + b^j);
end
```
### 3. $\sum^m_{i=0} \left(\sum^n_{j=1} \left(a^i + b^j\right)\right)$
```
function y = Summenformel(m, n, a, b)
summe1 = 0;
for i=0:m
summe2 = 0;
for j=1;n
summe2 = summe2 + (a^i + b^j);
end
summe1 = summe1 + summe2;
end
y = summe1; % Summe als Ergebnis
end
```
## Optimieren
### 1.
```
function y = Summenformel(m, n, a, b)
summe1 = 0;
for i=0:m
for j=1;n
summe1 = summe1 + (a^i + b^j);
end
end
y = summe1; % Summe als Ergebnis
end
```
### 2.
```
function y = Summenformel(m, n, a, b)
y = 0;
for i=0:m
for j=1;n
y = y + (a^i + b^j);
end
end
end
```