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