Uebung 2
This commit is contained in:
parent
6ea59d63db
commit
09533cfe30
239
ss2012/AlgoAnim/Teil 2/aufgabe2_2.asu
Normal file
239
ss2012/AlgoAnim/Teil 2/aufgabe2_2.asu
Normal file
@ -0,0 +1,239 @@
|
||||
%Animal 2.3
|
||||
title "Russische Bauernmultiplikation"
|
||||
author "Michael Scholz, Ulf Gebhardt"
|
||||
{
|
||||
text "header" "Russische Bauernmultiplikation" at (20, 30) font SansSerif size 24 bold
|
||||
text "straight" "Die Funktionsweise lässt sich in die folgenden fünf Schritte gliedern:" at (20, 85) font SansSerif size 18
|
||||
text "straight" "1. Schreibe die beiden zu multiplizierenden Zahlen nebeneinander." at (20, 115) font SansSerif size 18
|
||||
text "straight" "2. Die linke Zahl wird halbiert (Reste werden abgerundet), die rechte Zahl wird verdoppelt." at (20, 140) font SansSerif size 18
|
||||
text "straight" "Die beiden berechneten Zahlen werden in die darauffolgende Zeile geschrieben." at (43, 165) font SansSerif size 18
|
||||
text "straight" "3. Schritt 2 wird solange wiederholt, bis in der linken Spalte eine 1 steht." at (20, 190) font SansSerif size 18
|
||||
text "straight" "4. Nun streicht man alle Zeilen, in denen die linke Zahl gerade ist." at (20, 215) font SansSerif size 18
|
||||
text "straight" "5. Schlussendlich werden alle übrigen Zahlen der rechten Spalte addiert." at (20, 240) font SansSerif size 18
|
||||
}
|
||||
{
|
||||
hideAll
|
||||
text "header" "Russische Bauernmultiplikation" at (20, 30) font SansSerif size 24 bold
|
||||
codeGroup "code" at (10, 147) color black highlightColor red
|
||||
addCodeLine "public int russe(int a, int b){" to "code"
|
||||
addCodeLine "\t if(a == 1){" to "code"
|
||||
addCodeLine "\t \t return b; " to "code"
|
||||
addCodeLine "\t }" to "code"
|
||||
addCodeLine "\tif(a % 2 == 1){" to "code"
|
||||
addCodeLine "\t \t return b + russe(a/2, b*2);" to "code"
|
||||
addCodeLine "\t }else{" to "code"
|
||||
addCodeLine "\t \t return russe(a/2, b*2);" to "code"
|
||||
addCodeLine "\t }" to "code"
|
||||
addCodeLine "}" to "code"
|
||||
}
|
||||
{
|
||||
grid "tb1" (270, 160 ) lines 7 columns 4 style table cellWidth 100
|
||||
setGridValue "tb1 [ 0 ] [ 0 ]" "A-Seite"
|
||||
setGridValue "tb1 [ 0 ] [ 1 ]" "B-Seite"
|
||||
setGridValue "tb1 [ 0 ] [ 2 ]" "addieren"
|
||||
setGridValue "tb1 [ 0 ] [ 3 ]" "Summe"
|
||||
setGridValue "tb1 [ 1 ] [ 0 ]" "27"
|
||||
setGridValue "tb1 [ 1 ] [ 1 ]" "82"
|
||||
setGridColor "tb1 [] []" fillColor white highlightBackColor red
|
||||
}
|
||||
{
|
||||
highlightCode on "code" line 0
|
||||
}
|
||||
{
|
||||
unhighlightCode on "code" line 0
|
||||
highlightCode on "code" line 1
|
||||
}
|
||||
{
|
||||
unhighlightCode on "code" line 1
|
||||
highlightCode on "code" line 4
|
||||
}
|
||||
{
|
||||
unhighlightCode on "code" line 4
|
||||
highlightCode on "code" line 5
|
||||
|
||||
highlightGridCell "tb1 [ 1 ] [ 2 ]" within 100ms
|
||||
highlightGridCell "tb1 [ 1 ] [ 3 ]" within 100ms
|
||||
setGridValue "tb1 [ 1 ] [ 2 ]" "Ja"
|
||||
setGridValue "tb1 [ 1 ] [ 3 ]" "82"
|
||||
}
|
||||
{
|
||||
unhighlightCode on "code" line 5
|
||||
highlightCode on "code" line 0
|
||||
unhighlightGridCell "tb1 [ 1 ] [ 2 ]"
|
||||
unhighlightGridCell "tb1 [ 1 ] [ 3 ]"
|
||||
highlightGridCell "tb1 [ 2 ] [ 0 ]" within 100ms
|
||||
highlightGridCell "tb1 [ 2 ] [ 1 ]" within 100ms
|
||||
setGridValue "tb1 [ 2 ] [ 0 ]" "13"
|
||||
setGridValue "tb1 [ 2 ] [ 1 ]" "164"
|
||||
}
|
||||
{
|
||||
unhighlightGridCell "tb1 [ 2 ] [ 0 ]"
|
||||
unhighlightGridCell "tb1 [ 2 ] [ 1 ]"
|
||||
unhighlightCode on "code" line 0
|
||||
highlightCode on "code" line 1
|
||||
}
|
||||
{
|
||||
unhighlightCode on "code" line 1
|
||||
highlightCode on "code" line 4
|
||||
}
|
||||
{
|
||||
unhighlightCode on "code" line 4
|
||||
highlightCode on "code" line 5
|
||||
highlightGridCell "tb1 [ 2 ] [ 2 ]" within 100ms
|
||||
highlightGridCell "tb1 [ 2 ] [ 3 ]" within 100ms
|
||||
setGridValue "tb1 [ 2 ] [ 2 ]" "Ja"
|
||||
setGridValue "tb1 [ 2 ] [ 3 ]" "82+164"
|
||||
}
|
||||
{
|
||||
unhighlightCode on "code" line 5
|
||||
highlightCode on "code" line 0
|
||||
unhighlightGridCell "tb1 [ 2 ] [ 2 ]"
|
||||
unhighlightGridCell "tb1 [ 2 ] [ 3 ]"
|
||||
highlightGridCell "tb1 [ 3 ] [ 0 ]" within 100ms
|
||||
highlightGridCell "tb1 [ 3 ] [ 1 ]" within 100ms
|
||||
setGridValue "tb1 [ 3 ] [ 0 ]" "6"
|
||||
setGridValue "tb1 [ 3 ] [ 1 ]" "328"
|
||||
}
|
||||
{
|
||||
unhighlightGridCell "tb1 [ 3 ] [ 0 ]"
|
||||
unhighlightGridCell "tb1 [ 3 ] [ 1 ]"
|
||||
unhighlightCode on "code" line 0
|
||||
highlightCode on "code" line 1
|
||||
}
|
||||
{
|
||||
unhighlightCode on "code" line 1
|
||||
highlightCode on "code" line 4
|
||||
}
|
||||
{
|
||||
unhighlightCode on "code" line 4
|
||||
highlightCode on "code" line 7
|
||||
highlightGridCell "tb1 [ 3 ] [ 2 ]" within 100ms
|
||||
highlightGridCell "tb1 [ 3 ] [ 3 ]" within 100ms
|
||||
setGridValue "tb1 [ 3 ] [ 2 ]" "Nein"
|
||||
setGridValue "tb1 [ 3 ] [ 3 ]" "82+164"
|
||||
}
|
||||
{
|
||||
unhighlightCode on "code" line 7
|
||||
highlightCode on "code" line 0
|
||||
unhighlightGridCell "tb1 [ 3 ] [ 2 ]"
|
||||
unhighlightGridCell "tb1 [ 3 ] [ 3 ]"
|
||||
highlightGridCell "tb1 [ 4 ] [ 0 ]" within 100ms
|
||||
highlightGridCell "tb1 [ 4 ] [ 1 ]" within 100ms
|
||||
setGridValue "tb1 [ 4 ] [ 0 ]" "3"
|
||||
setGridValue "tb1 [ 4 ] [ 1 ]" "656"
|
||||
}
|
||||
{
|
||||
unhighlightGridCell "tb1 [ 4 ] [ 0 ]"
|
||||
unhighlightGridCell "tb1 [ 4 ] [ 1 ]"
|
||||
unhighlightCode on "code" line 0
|
||||
highlightCode on "code" line 1
|
||||
}
|
||||
{
|
||||
unhighlightCode on "code" line 1
|
||||
highlightCode on "code" line 4
|
||||
}
|
||||
{
|
||||
unhighlightCode on "code" line 4
|
||||
highlightCode on "code" line 5
|
||||
highlightGridCell "tb1 [ 4 ] [ 2 ]" within 100ms
|
||||
highlightGridCell "tb1 [ 4 ] [ 3 ]" within 100ms
|
||||
setGridValue "tb1 [ 4 ] [ 2 ]" "Ja"
|
||||
setGridValue "tb1 [ 4 ] [ 3 ]" "82+164+656"
|
||||
}
|
||||
{
|
||||
unhighlightCode on "code" line 5
|
||||
highlightCode on "code" line 0
|
||||
unhighlightGridCell "tb1 [ 4 ] [ 2 ]"
|
||||
unhighlightGridCell "tb1 [ 4 ] [ 3 ]"
|
||||
highlightGridCell "tb1 [ 5 ] [ 0 ]" within 100ms
|
||||
highlightGridCell "tb1 [ 5 ] [ 1 ]" within 100ms
|
||||
setGridValue "tb1 [ 5 ] [ 0 ]" "1"
|
||||
setGridValue "tb1 [ 5 ] [ 1 ]" "1312"
|
||||
}
|
||||
{
|
||||
unhighlightGridCell "tb1 [ 5 ] [ 0 ]"
|
||||
unhighlightGridCell "tb1 [ 5 ] [ 1 ]"
|
||||
unhighlightCode on "code" line 0
|
||||
highlightCode on "code" line 1
|
||||
}
|
||||
{
|
||||
unhighlightCode on "code" line 1
|
||||
highlightCode on "code" line 2
|
||||
}
|
||||
{
|
||||
highlightCode on "code" line 2
|
||||
highlightGridCell "tb1 [ 5 ] [ 2 ]" within 100ms
|
||||
highlightGridCell "tb1 [ 5 ] [ 3 ]" within 100ms
|
||||
setGridValue "tb1 [ 5 ] [ 2 ]" "Ja"
|
||||
setGridValue "tb1 [ 5 ] [ 3 ]" "82+164+656+1312"
|
||||
}
|
||||
{
|
||||
unhighlightGridCell "tb1 [ 5 ] [ 2 ]"
|
||||
unhighlightGridCell "tb1 [ 5 ] [ 3 ]"
|
||||
highlightGridCell "tb1 [ 6 ] [ 3 ]" within 100ms
|
||||
setGridValue "tb1 [ 6 ] [ 3 ]" "82+164+656+1312"
|
||||
}
|
||||
|
||||
{
|
||||
unhighlightCode on "code" line 2
|
||||
highlightCode on "code" line 5
|
||||
unhighlightGridCell "tb1 [ 6 ] [ 3 ]"
|
||||
highlightGridCell "tb1 [ 6 ] [ 3 ]" within 100ms
|
||||
setGridValue "tb1 [ 6 ] [ 3 ]" "82+164+1968"
|
||||
}
|
||||
{
|
||||
unhighlightGridCell "tb1 [ 6 ] [ 3 ]"
|
||||
highlightGridCell "tb1 [ 6 ] [ 3 ]" within 100ms
|
||||
unhighlightCode on "code" line 5
|
||||
highlightCode on "code" line 7
|
||||
}
|
||||
{
|
||||
unhighlightCode on "code" line 7
|
||||
highlightCode on "code" line 5
|
||||
unhighlightGridCell "tb1 [ 6 ] [ 3 ]"
|
||||
highlightGridCell "tb1 [ 6 ] [ 3 ]" within 100ms
|
||||
setGridValue "tb1 [ 6 ] [ 3 ]" "82+2132"
|
||||
}
|
||||
{
|
||||
unhighlightGridCell "tb1 [ 6 ] [ 3 ]"
|
||||
highlightGridCell "tb1 [ 6 ] [ 3 ]" within 100ms
|
||||
setGridValue "tb1 [ 6 ] [ 2 ]" "Ergebnis"
|
||||
setGridValue "tb1 [ 6 ] [ 3 ]" "2214"
|
||||
}
|
||||
{
|
||||
hideAll
|
||||
hide "tb1"
|
||||
text "header" "Russische Bauernmultiplikation" at (20, 30) font SansSerif size 24 bold
|
||||
text "straight" "Erklärung:" at (20, 85) font SansSerif size 18 bold \br
|
||||
text "straight" "Die Idee des Verfahrens kann man mit Hilfe des Dualsystems verdeutlichen." at (20, 115) font SansSerif size 18
|
||||
text "straight" "Hierbei wird eine Zahl in ihre Zweierpotenzen zerlegt." at (20, 140) font SansSerif size 18
|
||||
text "straight" "82 * 27 \t = 82 * (2^0 + 2^1 + 0 * 2^2 + 2^3 + 2^4)" at (43, 168) font SansSerif size 18
|
||||
text "straight" "\t \t \t \t \t \t \t \t \t = 82 * 2^0 + 82 * 2^1 + 82 * 0 + 82 * 2^3 + 82 * 2^4" at (20, 193) font SansSerif size 18
|
||||
text "straight" "\t \t \t \t \t \t \t \t \t = 82 + 164 + 0 + 656 + 1312" at (20, 218) font SansSerif size 18
|
||||
text "straight" "\t \t \t \t \t \t \t \t \t = 2214" at (20, 243) font SansSerif size 18 bold
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user