---
# System prepended metadata

title: Workflows zur Erstellung von Algorithmen

---

# 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
```