diff --git a/ss2012/AlgoAnim/Abschlussbericht/Abschlussbericht.aux b/ss2012/AlgoAnim/Abschlussbericht/Abschlussbericht.aux new file mode 100644 index 00000000..7baf31d3 --- /dev/null +++ b/ss2012/AlgoAnim/Abschlussbericht/Abschlussbericht.aux @@ -0,0 +1,32 @@ +\relax +\catcode`"\active +\providecommand\HyperFirstAtBeginDocument{\AtBeginDocument} +\HyperFirstAtBeginDocument{\ifx\hyper@anchor\@undefined +\global\let\oldcontentsline\contentsline +\gdef\contentsline#1#2#3#4{\oldcontentsline{#1}{#2}{#3}} +\global\let\oldnewlabel\newlabel +\gdef\newlabel#1#2{\newlabelxx{#1}#2} +\gdef\newlabelxx#1#2#3#4#5#6{\oldnewlabel{#1}{{#2}{#3}}} +\AtEndDocument{\ifx\hyper@anchor\@undefined +\let\contentsline\oldcontentsline +\let\newlabel\oldnewlabel +\fi} +\fi} +\global\let\hyper@last\relax +\gdef\HyperFirstAtBeginDocument#1{#1} +\providecommand\HyField@AuxAddToFields[1]{} +\select@language{ngerman} +\@writefile{toc}{\select@language{ngerman}} +\@writefile{lof}{\select@language{ngerman}} +\@writefile{lot}{\select@language{ngerman}} +\@writefile{toc}{\contentsline {section}{\numberline {1}Animal}{1}{section.1}} +\@writefile{toc}{\contentsline {section}{\numberline {2}AnimalScript}{1}{section.2}} +\@writefile{toc}{\contentsline {section}{\numberline {3}Generator}{1}{section.3}} +\@writefile{toc}{\contentsline {section}{\numberline {4}Verbesserungsvorschl\"age}{1}{section.4}} +\@writefile{toc}{\contentsline {section}{\numberline {5}Fazit}{1}{section.5}} +\@writefile{toc}{\contentsline {section}{\numberline {6}was ihnen am Praktikum gut gefallen hat und was weniger gut war}{1}{section.6}} +\@writefile{toc}{\contentsline {section}{\numberline {7}ob bzw. was sie gelernt haben}{1}{section.7}} +\@writefile{toc}{\contentsline {section}{\numberline {8}was wir in Zukunft an ANIMAL, ANIMALSCRIPT, der API oder den Uebungen verbessern koennten}{2}{section.8}} +\@writefile{toc}{\contentsline {section}{\numberline {9}wie zufrieden Sie mit der Betreuung im Lernportal waren}{2}{section.9}} +\@writefile{toc}{\contentsline {section}{\numberline {10}wie sie an die Aufgaben herangegangen sind und Sie-eventuell im Team-bearbeitet haben}{2}{section.10}} +\@writefile{toc}{\contentsline {section}{\numberline {11}und was sie uns sonst noch an Anregungen geben wollen}{2}{section.11}} diff --git a/ss2012/AlgoAnim/Abschlussbericht/Abschlussbericht.log b/ss2012/AlgoAnim/Abschlussbericht/Abschlussbericht.log new file mode 100644 index 00000000..04ac9378 --- /dev/null +++ b/ss2012/AlgoAnim/Abschlussbericht/Abschlussbericht.log @@ -0,0 +1,1007 @@ +This is pdfTeX, Version 3.1415926-2.3-1.40.12 (TeX Live 2011) (format=pdflatex 2011.7.3) 17 MAY 2012 17:27 +entering extended mode + restricted \write18 enabled. + %&-line parsing enabled. +**Abschlussbericht.tex +(./Abschlussbericht.tex +LaTeX2e <2009/09/24> +Babel and hyphenation patterns for english, dumylang, nohyphenation, ge +rman-x-2009-06-19, ngerman-x-2009-06-19, afrikaans, ancientgreek, ibycus, arabi +c, armenian, basque, bulgarian, catalan, pinyin, coptic, croatian, czech, danis +h, dutch, ukenglish, usenglishmax, esperanto, estonian, ethiopic, farsi, finnis +h, french, galician, german, ngerman, swissgerman, monogreek, greek, hungarian, + icelandic, assamese, bengali, gujarati, hindi, kannada, malayalam, marathi, or +iya, panjabi, tamil, telugu, indonesian, interlingua, irish, italian, kurmanji, + lao, latin, latvian, lithuanian, mongolian, mongolianlmc, bokmal, nynorsk, pol +ish, portuguese, romanian, russian, sanskrit, serbian, serbianc, slovak, sloven +ian, spanish, swedish, turkish, turkmen, ukrainian, uppersorbian, welsh, loaded +. +(/Users/Michael/Library/texmf/tex/latex/tuddesign/tudreport.cls +Document Class: tudreport 2009/11/17 1.13 Clemens von Loewenich's and Joe Werne +r's TUD-Design package +(/usr/local/texlive/2011/texmf-dist/tex/latex/xkeyval/xkeyval.sty +Package: xkeyval 2008/08/13 v2.6a package option processing (HA) + +(/usr/local/texlive/2011/texmf-dist/tex/generic/xkeyval/xkeyval.tex +\XKV@toks=\toks14 +\XKV@tempa@toks=\toks15 +\XKV@depth=\count79 +File: xkeyval.tex 2008/08/13 v2.6a key=value parser (HA) + +(/usr/local/texlive/2011/texmf-dist/tex/generic/xkeyval/keyval.tex))) +(/usr/local/texlive/2011/texmf-dist/tex/latex/base/ifthen.sty +Package: ifthen 2001/05/26 v1.1c Standard LaTeX ifthen package (DPC) +) +Class tudreport Info: Option `paper=a4report' selected. on input line 142. + +(/usr/local/texlive/2011/texmf-dist/tex/latex/koma-script/scrartcl.cls +Document Class: scrartcl 2011/06/16 v3.09a KOMA-Script document class (article) + +(/usr/local/texlive/2011/texmf-dist/tex/latex/koma-script/scrkbase.sty +Package: scrkbase 2011/06/16 v3.09a KOMA-Script package (KOMA-Script-dependent +basics and keyval usage) + +(/usr/local/texlive/2011/texmf-dist/tex/latex/koma-script/scrbase.sty +Package: scrbase 2011/06/16 v3.09a KOMA-Script package (KOMA-Script-independent + basics and keyval usage) + +(/usr/local/texlive/2011/texmf-dist/tex/latex/koma-script/scrlfile.sty +Package: scrlfile 2011/03/09 v3.09 KOMA-Script package (loading files) + +Package scrlfile, 2011/03/09 v3.09 KOMA-Script package (loading files) + Copyright (C) Markus Kohm + +))) (/usr/local/texlive/2011/texmf-dist/tex/latex/koma-script/tocbasic.sty +Package: tocbasic 2011/05/30 v3.09a KOMA-Script package (handling toc-files) +) +Package tocbasic Info: omitting babel extension for `toc' +(tocbasic) because of feature `nobabel' available +(tocbasic) for `toc' on input line 115. +Package tocbasic Info: omitting babel extension for `lof' +(tocbasic) because of feature `nobabel' available +(tocbasic) for `lof' on input line 116. +Package tocbasic Info: omitting babel extension for `lot' +(tocbasic) because of feature `nobabel' available +(tocbasic) for `lot' on input line 117. +Class scrartcl Info: File `scrsize11pt.clo' used instead of +(scrartcl) file `scrsize11.clo' to setup font sizes on input line 124 +7. + +(/usr/local/texlive/2011/texmf-dist/tex/latex/koma-script/scrsize11pt.clo +File: scrsize11pt.clo 2011/06/16 v3.09a KOMA-Script font size class option (11p +t) +) +(/usr/local/texlive/2011/texmf-dist/tex/latex/koma-script/typearea.sty +Package: typearea 2011/06/16 v3.09a KOMA-Script package (type area) + +Package typearea, 2011/06/16 v3.09a KOMA-Script package (type area) + Copyright (C) Frank Neukam, 1992-1994 + Copyright (C) Markus Kohm, 1994- + +\ta@bcor=\skip41 +\ta@div=\count80 +\ta@hblk=\skip42 +\ta@vblk=\skip43 +\ta@temp=\skip44 +Package typearea Info: These are the values describing the layout: +(typearea) DIV = 10 +(typearea) BCOR = 0.0pt +(typearea) \paperwidth = 597.50793pt +(typearea) \textwidth = 418.25555pt +(typearea) DIV departure = -6% +(typearea) \evensidemargin = 17.3562pt +(typearea) \oddsidemargin = 17.3562pt +(typearea) \paperheight = 845.04694pt +(typearea) \textheight = 595.80026pt +(typearea) \topmargin = -25.16531pt +(typearea) \headheight = 17.0pt +(typearea) \headsep = 20.40001pt +(typearea) \topskip = 11.0pt +(typearea) \footskip = 47.60002pt +(typearea) \baselineskip = 13.6pt +(typearea) on input line 1139. +) +\c@part=\count81 +\c@section=\count82 +\c@subsection=\count83 +\c@subsubsection=\count84 +\c@paragraph=\count85 +\c@subparagraph=\count86 +\abovecaptionskip=\skip45 +\belowcaptionskip=\skip46 +\c@pti@nb@sid@b@x=\box26 +\c@figure=\count87 +\c@table=\count88 +\bibindent=\dimen102 +) (/usr/local/texlive/2011/texmf-dist/tex/latex/tools/calc.sty +Package: calc 2007/08/22 v4.3 Infix arithmetic (KKT,FJ) +\calc@Acount=\count89 +\calc@Bcount=\count90 +\calc@Adimen=\dimen103 +\calc@Bdimen=\dimen104 +\calc@Askip=\skip47 +\calc@Bskip=\skip48 +LaTeX Info: Redefining \setlength on input line 76. +LaTeX Info: Redefining \addtolength on input line 77. +\calc@Ccount=\count91 +\calc@Cskip=\skip49 +) +(/Users/Michael/Library/texmf/tex/latex/tuddesign/colours/tudcolours.sty +Package: tudcolours 2009/03/12 1.9 Clemens von Loewenich's and Joe Werner's TUD +-Design package + +(/usr/local/texlive/2011/texmf-dist/tex/latex/xcolor/xcolor.sty +Package: xcolor 2007/01/21 v2.11 LaTeX color extensions (UK) + +(/usr/local/texlive/2011/texmf-dist/tex/latex/latexconfig/color.cfg +File: color.cfg 2007/01/18 v1.5 color configuration of teTeX/TeXLive +) +Package xcolor Info: Package option `override' ignored on input line 216. +Package xcolor Info: Driver file: pdftex.def on input line 225. + +(/usr/local/texlive/2011/texmf-dist/tex/latex/pdftex-def/pdftex.def +File: pdftex.def 2011/05/27 v0.06d Graphics/color for pdfTeX + +(/usr/local/texlive/2011/texmf-dist/tex/generic/oberdiek/infwarerr.sty +Package: infwarerr 2010/04/08 v1.3 Providing info/warning/message (HO) +) +(/usr/local/texlive/2011/texmf-dist/tex/generic/oberdiek/ltxcmds.sty +Package: ltxcmds 2011/04/18 v1.20 LaTeX kernel commands for general use (HO) +) +\Gread@gobject=\count92 +) +Package xcolor Info: Model `cmy' substituted by `cmy0' on input line 1337. +Package xcolor Info: Model `hsb' substituted by `rgb' on input line 1341. +Package xcolor Info: Model `RGB' extended on input line 1353. +Package xcolor Info: Model `HTML' substituted by `rgb' on input line 1355. +Package xcolor Info: Model `Hsb' substituted by `hsb' on input line 1356. +Package xcolor Info: Model `tHsb' substituted by `hsb' on input line 1357. +Package xcolor Info: Model `HSB' substituted by `hsb' on input line 1358. +Package xcolor Info: Model `Gray' substituted by `gray' on input line 1359. +Package xcolor Info: Model `wave' substituted by `hsb' on input line 1360. +) +(/Users/Michael/Library/texmf/tex/latex/tuddesign/colours/tudcolours.cfg +File: tudcolours.cfg 2008/12/03 +) +(/Users/Michael/Library/texmf/tex/latex/tuddesign/colours/tudcolours.def +File: tudcolours.def 2008/12/03 +)) +(/Users/Michael/Library/texmf/tex/latex/tuddesign/report/tudreprt_fonts.sty +Package: tudreprt_fonts 2009/00/18 1.11 Clemens von Loewenich's and Joe Werner' +s TUD-Design package + +(/Users/Michael/Library/texmf/tex/latex/tuddesign/base/tudfonts.sty +Package: tudfonts 2009/09/18 1.12 Clemens von Loewenich's and Joe Werner's TUD- +Design package + +(/usr/local/texlive/2011/texmf-dist/tex/latex/base/fontenc.sty +Package: fontenc 2005/09/27 v1.99g Standard LaTeX package + +(/usr/local/texlive/2011/texmf-dist/tex/latex/base/t1enc.def +File: t1enc.def 2005/09/27 v1.99g Standard LaTeX file +LaTeX Font Info: Redeclaring font encoding T1 on input line 43. +)) +(/usr/local/texlive/2011/texmf-dist/tex/latex/base/textcomp.sty +Package: textcomp 2005/09/27 v1.99g Standard LaTeX package +Package textcomp Info: Sub-encoding information: +(textcomp) 5 = only ISO-Adobe without \textcurrency +(textcomp) 4 = 5 + \texteuro +(textcomp) 3 = 4 + \textohm +(textcomp) 2 = 3 + \textestimated + \textcurrency +(textcomp) 1 = TS1 - \textcircled - \t +(textcomp) 0 = TS1 (full) +(textcomp) Font families with sub-encoding setting implement +(textcomp) only a restricted character set as indicated. +(textcomp) Family '?' is the default used for unknown fonts. +(textcomp) See the documentation for details. +Package textcomp Info: Setting ? sub-encoding to TS1/1 on input line 71. +Package textcomp Info: Changing ? sub-encoding to TS1/4 on input line 72. + +(/usr/local/texlive/2011/texmf-dist/tex/latex/base/ts1enc.def +File: ts1enc.def 2001/06/05 v3.0e (jk/car/fm) Standard LaTeX file +) +LaTeX Info: Redefining \oldstylenums on input line 266. +Package textcomp Info: Setting cmr sub-encoding to TS1/0 on input line 281. +Package textcomp Info: Setting cmss sub-encoding to TS1/0 on input line 282. +Package textcomp Info: Setting cmtt sub-encoding to TS1/0 on input line 283. +Package textcomp Info: Setting cmvtt sub-encoding to TS1/0 on input line 284. +Package textcomp Info: Setting cmbr sub-encoding to TS1/0 on input line 285. +Package textcomp Info: Setting cmtl sub-encoding to TS1/0 on input line 286. +Package textcomp Info: Setting ccr sub-encoding to TS1/0 on input line 287. +Package textcomp Info: Setting ptm sub-encoding to TS1/4 on input line 288. +Package textcomp Info: Setting pcr sub-encoding to TS1/4 on input line 289. +Package textcomp Info: Setting phv sub-encoding to TS1/4 on input line 290. +Package textcomp Info: Setting ppl sub-encoding to TS1/3 on input line 291. +Package textcomp Info: Setting pag sub-encoding to TS1/4 on input line 292. +Package textcomp Info: Setting pbk sub-encoding to TS1/4 on input line 293. +Package textcomp Info: Setting pnc sub-encoding to TS1/4 on input line 294. +Package textcomp Info: Setting pzc sub-encoding to TS1/4 on input line 295. +Package textcomp Info: Setting bch sub-encoding to TS1/4 on input line 296. +Package textcomp Info: Setting put sub-encoding to TS1/5 on input line 297. +Package textcomp Info: Setting uag sub-encoding to TS1/5 on input line 298. +Package textcomp Info: Setting ugq sub-encoding to TS1/5 on input line 299. +Package textcomp Info: Setting ul8 sub-encoding to TS1/4 on input line 300. +Package textcomp Info: Setting ul9 sub-encoding to TS1/4 on input line 301. +Package textcomp Info: Setting augie sub-encoding to TS1/5 on input line 302. +Package textcomp Info: Setting dayrom sub-encoding to TS1/3 on input line 303. +Package textcomp Info: Setting dayroms sub-encoding to TS1/3 on input line 304. + +Package textcomp Info: Setting pxr sub-encoding to TS1/0 on input line 305. +Package textcomp Info: Setting pxss sub-encoding to TS1/0 on input line 306. +Package textcomp Info: Setting pxtt sub-encoding to TS1/0 on input line 307. +Package textcomp Info: Setting txr sub-encoding to TS1/0 on input line 308. +Package textcomp Info: Setting txss sub-encoding to TS1/0 on input line 309. +Package textcomp Info: Setting txtt sub-encoding to TS1/0 on input line 310. +Package textcomp Info: Setting lmr sub-encoding to TS1/0 on input line 311. +Package textcomp Info: Setting lmdh sub-encoding to TS1/0 on input line 312. +Package textcomp Info: Setting lmss sub-encoding to TS1/0 on input line 313. +Package textcomp Info: Setting lmssq sub-encoding to TS1/0 on input line 314. +Package textcomp Info: Setting lmvtt sub-encoding to TS1/0 on input line 315. +Package textcomp Info: Setting qhv sub-encoding to TS1/0 on input line 316. +Package textcomp Info: Setting qag sub-encoding to TS1/0 on input line 317. +Package textcomp Info: Setting qbk sub-encoding to TS1/0 on input line 318. +Package textcomp Info: Setting qcr sub-encoding to TS1/0 on input line 319. +Package textcomp Info: Setting qcs sub-encoding to TS1/0 on input line 320. +Package textcomp Info: Setting qpl sub-encoding to TS1/0 on input line 321. +Package textcomp Info: Setting qtm sub-encoding to TS1/0 on input line 322. +Package textcomp Info: Setting qzc sub-encoding to TS1/0 on input line 323. +Package textcomp Info: Setting qhvc sub-encoding to TS1/0 on input line 324. +Package textcomp Info: Setting futs sub-encoding to TS1/4 on input line 325. +Package textcomp Info: Setting futx sub-encoding to TS1/4 on input line 326. +Package textcomp Info: Setting futj sub-encoding to TS1/4 on input line 327. +Package textcomp Info: Setting hlh sub-encoding to TS1/3 on input line 328. +Package textcomp Info: Setting hls sub-encoding to TS1/3 on input line 329. +Package textcomp Info: Setting hlst sub-encoding to TS1/3 on input line 330. +Package textcomp Info: Setting hlct sub-encoding to TS1/5 on input line 331. +Package textcomp Info: Setting hlx sub-encoding to TS1/5 on input line 332. +Package textcomp Info: Setting hlce sub-encoding to TS1/5 on input line 333. +Package textcomp Info: Setting hlcn sub-encoding to TS1/5 on input line 334. +Package textcomp Info: Setting hlcw sub-encoding to TS1/5 on input line 335. +Package textcomp Info: Setting hlcf sub-encoding to TS1/5 on input line 336. +Package textcomp Info: Setting pplx sub-encoding to TS1/3 on input line 337. +Package textcomp Info: Setting pplj sub-encoding to TS1/3 on input line 338. +Package textcomp Info: Setting ptmx sub-encoding to TS1/4 on input line 339. +Package textcomp Info: Setting ptmj sub-encoding to TS1/4 on input line 340. +) +(/usr/local/texlive/2011/texmf-dist/tex/latex/base/fix-cm.sty +Package: fix-cm 2006/09/13 v1.1m fixes to LaTeX + +(/usr/local/texlive/2011/texmf-dist/tex/latex/base/ts1enc.def +File: ts1enc.def 2001/06/05 v3.0e (jk/car/fm) Standard LaTeX file +LaTeX Font Info: Redeclaring font encoding TS1 on input line 42. +)) +(/usr/local/texlive/2011/texmf-dist/tex/latex/mathdesign/mathdesign.sty +Package: mathdesign 2006/01/29 v1.55 Math Design Project + +(/usr/local/texlive/2011/texmf-dist/tex/latex/mathdesign/mdbch/mdbch.cfg) +(/usr/local/texlive/2011/texmf-dist/tex/latex/mathdesign/mdbch/mdbch.sty +Package: mdbch 2006/01/29 v1.55 bitstream charter + mdbch (Math Design Project) + + +(/usr/local/texlive/2011/texmf-dist/tex/latex/mathdesign/mdfont.def +File: mdfont.def 2006/01/29 v1.55 (Math Design Project) +) +(/usr/local/texlive/2011/texmf-dist/tex/latex/mathdesign/mdsffont.def +File: mdsffont.def 2006/01/29 v1.55 (Math Design Project) +) +(/usr/local/texlive/2011/texmf-dist/tex/latex/mathdesign/mdttfont.def +File: mdttfont.def 2006/01/29 v1.55 (Math Design Project) +) +\symmdcal=\mathgroup4 +LaTeX Font Info: Overwriting symbol font `mdcal' in version `bold' +(Font) OMS/mdbch/m/n --> OMS/mdbch/b/n on input line 89. +\symmdscr=\mathgroup5 +LaTeX Font Info: Overwriting symbol font `mdscr' in version `bold' +(Font) OMS/mdbch/m/n --> OMS/mdbch/b/n on input line 95. +LaTeX Font Info: Overwriting math alphabet `\mathfrak' in version `bold' +(Font) U/xmdeuf/m/n --> U/xmdeuf/b/n on input line 102. +LaTeX Font Info: Try loading font information for T1+mdbch on input line 111 +. + +(/usr/local/texlive/2011/texmf-dist/tex/latex/mathdesign/mdbch/t1mdbch.fd +File: t1mdbch.fd 2006/01/28 Fontinst v1.928 font definitions for T1/mdbch. +) +LaTeX Font Info: Font shape `T1/mdbch/m/n' will be +(Font) scaled to size 10.51207pt on input line 111. +LaTeX Font Info: Overwriting symbol font `operators' in version `normal' +(Font) OT1/cmr/m/n --> OT1/mdbch/m/n on input line 114. +LaTeX Font Info: Overwriting symbol font `letters' in version `normal' +(Font) OML/cmm/m/it --> OML/mdbch/m/it on input line 115. +LaTeX Font Info: Overwriting symbol font `symbols' in version `normal' +(Font) OMS/cmsy/m/n --> OMS/mdbch/m/n on input line 116. +LaTeX Font Info: Overwriting symbol font `largesymbols' in version `normal' +(Font) OMX/cmex/m/n --> OMX/mdbch/m/n on input line 117. +LaTeX Font Info: Overwriting symbol font `operators' in version `bold' +(Font) OT1/cmr/bx/n --> OT1/mdbch/b/n on input line 119. +LaTeX Font Info: Overwriting symbol font `letters' in version `bold' +(Font) OML/cmm/b/it --> OML/mdbch/b/it on input line 120. +LaTeX Font Info: Overwriting symbol font `symbols' in version `bold' +(Font) OMS/cmsy/b/n --> OMS/mdbch/b/n on input line 121. +LaTeX Font Info: Overwriting symbol font `largesymbols' in version `bold' +(Font) OMX/cmex/m/n --> OMX/mdbch/b/n on input line 122. +LaTeX Font Info: Overwriting math alphabet `\mathrm' in version `normal' +(Font) OT1/mdbch/m/n --> T1/mdbch/m/n on input line 124. +LaTeX Font Info: Overwriting math alphabet `\mathbf' in version `normal' +(Font) OT1/cmr/bx/n --> T1/mdbch/b/n on input line 125. +LaTeX Font Info: Overwriting math alphabet `\mathit' in version `normal' +(Font) OT1/cmr/m/it --> T1/mdbch/m/it on input line 126. +LaTeX Font Info: Overwriting math alphabet `\mathsf' in version `normal' +(Font) OT1/cmss/m/n --> T1/cmss/m/n on input line 127. +LaTeX Font Info: Overwriting math alphabet `\mathtt' in version `normal' +(Font) OT1/cmtt/m/n --> T1/cmtt/m/n on input line 128. +LaTeX Font Info: Overwriting math alphabet `\mathcal' in version `normal' +(Font) OMS/mdbch/m/n --> OMS/mdbch/m/n on input line 132. +LaTeX Font Info: Overwriting math alphabet `\mathrm' in version `bold' +(Font) OT1/mdbch/b/n --> T1/mdbch/b/n on input line 137. +LaTeX Font Info: Overwriting math alphabet `\mathbf' in version `bold' +(Font) OT1/cmr/bx/n --> T1/mdbch/b/n on input line 138. +LaTeX Font Info: Overwriting math alphabet `\mathit' in version `bold' +(Font) OT1/cmr/bx/it --> T1/mdbch/b/it on input line 139. +LaTeX Font Info: Overwriting math alphabet `\mathsf' in version `bold' +(Font) OT1/cmss/bx/n --> T1/cmss/b/n on input line 140. +LaTeX Font Info: Overwriting math alphabet `\mathtt' in version `bold' +(Font) OT1/cmtt/m/n --> T1/cmtt/b/n on input line 141. +LaTeX Font Info: Redeclaring math accent \widetilde on input line 153. +LaTeX Font Info: Redeclaring math accent \widehat on input line 154. +\symlettersupright=\mathgroup6 +LaTeX Font Info: Overwriting symbol font `lettersupright' in version `bold' +(Font) OML/mdbch/m/n --> OML/mdbch/b/n on input line 190. +LaTeX Font Info: Redeclaring math alphabet \mathrm on input line 193. +\symmathdesignA=\mathgroup7 +LaTeX Font Info: Overwriting symbol font `mathdesignA' in version `bold' +(Font) MDA/mdbch/m/n --> MDA/mdbch/b/n on input line 382. +\@emptytoks=\toks16 +LaTeX Font Info: Redeclaring math accent \widetilde on input line 421. +LaTeX Font Info: Redeclaring math accent \widehat on input line 422. +\symmathdesignB=\mathgroup8 +LaTeX Font Info: Overwriting symbol font `mathdesignB' in version `bold' +(Font) MDB/mdbch/m/n --> MDB/mdbch/b/n on input line 685. +) +(/usr/local/texlive/2011/texmf-dist/tex/latex/base/fontenc.sty +Package: fontenc 2005/09/27 v1.99g Standard LaTeX package + +(/usr/local/texlive/2011/texmf-dist/tex/latex/base/t1enc.def +File: t1enc.def 2005/09/27 v1.99g Standard LaTeX file +LaTeX Font Info: Redeclaring font encoding T1 on input line 43. +))) +\symutopiasymbol=\mathgroup9 +LaTeX Font Info: Overwriting math alphabet `\mathmb' in version `normal' +(Font) T1/5ch/mb/n --> T1/5ch/mb/n on input line 34. +LaTeX Font Info: Overwriting math alphabet `\mathmb' in version `bold' +(Font) T1/5ch/mb/n --> T1/5ch/mb/n on input line 35. +LaTeX Info: Redefining \em on input line 37. +\fontheight=\skip50 +\fontdepth=\skip51 +\fontstrutbox=\box27 +LaTeX Info: Redefining \LaTeX on input line 108. +) +LaTeX Font Info: Font shape `T1/mdbch/m/n' will be +(Font) scaled to size 9.12006pt on input line 239. +) +\TUD@headfootsep=\skip52 + +(/Users/Michael/Library/texmf/tex/latex/tuddesign/base/tudpage.sty +Package: tudpage 2009/08/11 1.10 Clemens von Loewenich's and Joe Werner's TUD-D +esign package + +(/Users/Michael/Library/texmf/tex/latex/tuddesign/base/tudpaper.sty +Package: tudpaper 2009/01/28 1.9 Clemens von Loewenich's and Joe Werner's TUD-D +esign package + +(/usr/local/texlive/2011/texmf-dist/tex/latex/graphics/graphicx.sty +Package: graphicx 1999/02/16 v1.0f Enhanced LaTeX Graphics (DPC,SPQR) + +(/usr/local/texlive/2011/texmf-dist/tex/latex/graphics/graphics.sty +Package: graphics 2009/02/05 v1.0o Standard LaTeX Graphics (DPC,SPQR) + +(/usr/local/texlive/2011/texmf-dist/tex/latex/graphics/trig.sty +Package: trig 1999/03/16 v1.09 sin cos tan (DPC) +) +(/usr/local/texlive/2011/texmf-dist/tex/latex/latexconfig/graphics.cfg +File: graphics.cfg 2010/04/23 v1.9 graphics configuration of TeX Live +) +Package graphics Info: Driver file: pdftex.def on input line 91. +) +\Gin@req@height=\dimen105 +\Gin@req@width=\dimen106 +) +(/usr/local/texlive/2011/texmf-dist/tex/latex/eso-pic/eso-pic.sty +Package: eso-pic 2010/10/06 v2.0c eso-pic (RN) + +(/usr/local/texlive/2011/texmf-dist/tex/generic/oberdiek/atbegshi.sty +Package: atbegshi 2011/01/30 v1.15 At begin shipout hook (HO) + +(/usr/local/texlive/2011/texmf-dist/tex/generic/oberdiek/ifpdf.sty +Package: ifpdf 2011/01/30 v2.3 Provides the ifpdf switch (HO) +Package ifpdf Info: pdfTeX in PDF mode is detected. +))) +\TUD@logo@height=\skip53 +\TUD@logo@leftskip=\skip54 +\TUD@sep@top=\skip55 +\TUD@sep@left=\skip56 +\TUD@sep@right=\skip57 +\TUD@sep@bottom=\skip58 +\TUD@titlepos=\skip59 +\TUD@titlebox@sep@left=\skip60 +\TUD@titlebox@sep@right=\skip61 +\TUD@titlebox@sep@bottom=\skip62 +\TUD@subtitlebox@sep=\skip63 +\TUD@textwidth=\skip64 +\TUD@cols@width=\skip65 +\TUD@cols@sep=\skip66 +\c@TUD@cols@n=\count93 + +(/Users/Michael/Library/texmf/tex/latex/tuddesign/base/tudrules.sty +Package: tudrules 2008/10/09 1.6 Clemens von Loewenich's and Joe Werner's TUD-D +esign package +\TUD@indentbar@height=\skip67 +\TUD@indentbar@depth=\skip68 +\TUD@indentbar@totalheight=\skip69 +\@TUD@indentbar@width=\skip70 +\@TUD@largeruleheight=\skip71 +\@TUD@smallruleheight=\skip72 +\@TUD@rulesep=\skip73 +\@TUD@ruleheight=\skip74 +) +\TUD@indentbarheight=\skip75 + +(/usr/local/texlive/2011/texmf-dist/tex/latex/geometry/geometry.sty +Package: geometry 2010/09/12 v5.6 Page Geometry + +(/usr/local/texlive/2011/texmf-dist/tex/generic/oberdiek/ifvtex.sty +Package: ifvtex 2010/03/01 v1.5 Switches for detecting VTeX and its modes (HO) +Package ifvtex Info: VTeX not detected. +) +(/usr/local/texlive/2011/texmf-dist/tex/generic/ifxetex/ifxetex.sty +Package: ifxetex 2010/09/12 v0.6 Provides ifxetex conditional +) +\Gm@cnth=\count94 +\Gm@cntv=\count95 +\c@Gm@tempcnt=\count96 +\Gm@bindingoffset=\dimen107 +\Gm@wd@mp=\dimen108 +\Gm@odd@mp=\dimen109 +\Gm@even@mp=\dimen110 +\Gm@layoutwidth=\dimen111 +\Gm@layoutheight=\dimen112 +\Gm@layouthoffset=\dimen113 +\Gm@layoutvoffset=\dimen114 +\Gm@dimlist=\toks17 +)) +\TUD@footparindent=\skip76 + +(/usr/local/texlive/2011/texmf-dist/tex/latex/fancyhdr/fancyhdr.sty +\fancy@headwidth=\skip77 +\f@ncyO@elh=\skip78 +\f@ncyO@erh=\skip79 +\f@ncyO@olh=\skip80 +\f@ncyO@orh=\skip81 +\f@ncyO@elf=\skip82 +\f@ncyO@erf=\skip83 +\f@ncyO@olf=\skip84 +\f@ncyO@orf=\skip85 +)) +(/Users/Michael/Library/texmf/tex/latex/tuddesign/base/tudheading.sty +Package: tudheading 2009/12/31 1.17 Clemens von Loewenich's and Joe Werner's TU +D-Design package + +(/usr/local/texlive/2011/texmf-dist/tex/latex/titlesec/titlesec.sty +Package: titlesec 2011/11/11 v2.9.2 Sectioning titles +\ttl@box=\box28 +\beforetitleunit=\skip86 +\aftertitleunit=\skip87 +\ttl@plus=\dimen115 +\ttl@minus=\dimen116 +\ttl@toksa=\toks18 +\titlewidth=\dimen117 +\titlewidthlast=\dimen118 +\titlewidthfirst=\dimen119 +) +\c@seclinedepth=\count97 +\TUD@chapter@diff@height=\skip88 +LaTeX Font Info: Font shape `T1/mdbch/m/n' will be +(Font) scaled to size 9.60007pt on input line 75. +\@TUD@above@headskip=\skip89 +\@TUD@below@headskip=\skip90 + +(/Users/Michael/Library/texmf/tex/latex/tuddesign/base/tudheading.def +File: tudheading.def 2009/07/14 +\TUD@part@tmp@height=\skip91 +\TUD@part@tmp@depth=\skip92 +\@TUD@partbox=\box29 +) +\TUD@parind=\skip93 +\TUD@chapind=\skip94 +\TUD@secind=\skip95 +\TUD@subsecind=\skip96 +\TUD@subsubsecind=\skip97 + +(/usr/local/texlive/2011/texmf-dist/tex/latex/titlesec/block.tss +File: block.tss 2011/11/11 +)) +(/Users/Michael/Library/texmf/tex/latex/tuddesign/base/tudredef.sty +Package: tudredef 2010/04/10 1.2 Clemens von Loewenich's and Joe Werner's TUD-D +esign package +\TUD@abstract@count=\count98 +) +(/Users/Michael/Library/texmf/tex/latex/tuddesign/report/tudreprt_title.sty +Package: tudreprt_title 2009/09/18 1.11 Clemens von Loewenich's and Joe Werner' +s TUD-Design package +\TUD@sponsorlogo=\box30 +\TUD@titleskip=\skip98 +)) +(/usr/local/texlive/2011/texmf-dist/tex/latex/base/inputenc.sty +Package: inputenc 2008/03/30 v1.1d Input encoding file +\inpenc@prehook=\toks19 +\inpenc@posthook=\toks20 + +(/usr/local/texlive/2011/texmf-dist/tex/latex/base/latin9.def +File: latin9.def 2008/03/30 v1.1d Input encoding file +)) +(/usr/local/texlive/2011/texmf-dist/tex/generic/babel/babel.sty +Package: babel 2008/07/08 v3.8m The Babel package + +(/usr/local/texlive/2011/texmf-dist/tex/generic/babel/ngermanb.ldf +Language: ngermanb 2008/07/06 v2.6n new German support from the babel system + +(/usr/local/texlive/2011/texmf-dist/tex/generic/babel/babel.def +File: babel.def 2008/07/08 v3.8m Babel common definitions +\babel@savecnt=\count99 +\U@D=\dimen120 +) +\l@naustrian = a dialect from \language\l@ngerman +Package babel Info: Making " an active character on input line 92. +)) +(/usr/local/texlive/2011/texmf-dist/tex/latex/enumitem/enumitem.sty +Package: enumitem 2011/09/28 v3.5.2 Customized lists +\enitkv@toks@=\toks21 +\labelindent=\skip99 +\enit@outerparindent=\dimen121 +\enit@toks=\toks22 +\enit@inbox=\box31 +\enitdp@description=\count100 +) +(/usr/local/texlive/2011/texmf-dist/tex/latex/lineno/lineno.sty +Package: lineno 2005/11/02 line numbers on paragraphs v4.41 +\linenopenalty=\count101 +\output=\toks23 +\linenoprevgraf=\count102 +\linenumbersep=\dimen122 +\linenumberwidth=\dimen123 +\c@linenumber=\count103 +\c@pagewiselinenumber=\count104 +\c@LN@truepage=\count105 +\c@internallinenumber=\count106 +\c@internallinenumbers=\count107 +\quotelinenumbersep=\dimen124 +\bframerule=\dimen125 +\bframesep=\dimen126 +\bframebox=\box32 +LaTeX Info: Redefining \\ on input line 3056. +) +(/usr/local/texlive/2011/texmf-dist/tex/latex/wasysym/wasysym.sty +Package: wasysym 2003/10/30 v2.0 Wasy-2 symbol support package +\symwasy=\mathgroup10 +LaTeX Font Info: Overwriting symbol font `wasy' in version `bold' +(Font) U/wasy/m/n --> U/wasy/b/n on input line 90. +) +(/usr/local/texlive/2011/texmf-dist/tex/latex/base/latexsym.sty +Package: latexsym 1998/08/17 v2.2e Standard LaTeX package (lasy symbols) +\symlasy=\mathgroup11 +LaTeX Font Info: Overwriting symbol font `lasy' in version `bold' +(Font) U/lasy/m/n --> U/lasy/b/n on input line 47. +) +(/usr/local/texlive/2011/texmf-dist/tex/latex/hyperref/hyperref.sty +Package: hyperref 2011/12/04 v6.82m Hypertext links for LaTeX + +(/usr/local/texlive/2011/texmf-dist/tex/generic/oberdiek/hobsub-hyperref.sty +Package: hobsub-hyperref 2011/04/23 v1.4 Bundle oberdiek, subset hyperref (HO) + +(/usr/local/texlive/2011/texmf-dist/tex/generic/oberdiek/hobsub-generic.sty +Package: hobsub-generic 2011/04/23 v1.4 Bundle oberdiek, subset generic (HO) +Package: hobsub 2011/04/23 v1.4 Subsetting bundle oberdiek (HO) +Package hobsub Info: Skipping package `infwarerr' (already loaded). +Package hobsub Info: Skipping package `ltxcmds' (already loaded). +Package: ifluatex 2010/03/01 v1.3 Provides the ifluatex switch (HO) +Package ifluatex Info: LuaTeX not detected. +Package hobsub Info: Skipping package `ifvtex' (already loaded). +Package: intcalc 2007/09/27 v1.1 Expandable integer calculations (HO) +Package hobsub Info: Skipping package `ifpdf' (already loaded). +Package: etexcmds 2011/02/16 v1.5 Prefix for e-TeX command names (HO) +Package etexcmds Info: Could not find \expanded. +(etexcmds) That can mean that you are not using pdfTeX 1.50 or +(etexcmds) that some package has redefined \expanded. +(etexcmds) In the latter case, load this package earlier. +Package: kvsetkeys 2011/04/07 v1.13 Key value parser (HO) +Package: kvdefinekeys 2011/04/07 v1.3 Defining keys (HO) +Package: pdftexcmds 2011/04/22 v0.16 Utilities of pdfTeX for LuaTeX (HO) +Package pdftexcmds Info: LuaTeX not detected. +Package pdftexcmds Info: \pdf@primitive is available. +Package pdftexcmds Info: \pdf@ifprimitive is available. +Package pdftexcmds Info: \pdfdraftmode found. +Package: pdfescape 2011/04/04 v1.12 Provides string conversions (HO) +Package: bigintcalc 2011/01/30 v1.2 Expandable big integer calculations (HO) +Package: bitset 2011/01/30 v1.1 Data type bit set (HO) +Package: uniquecounter 2011/01/30 v1.2 Provides unlimited unique counter (HO) +) +Package hobsub Info: Skipping package `hobsub' (already loaded). +Package: letltxmacro 2010/09/02 v1.4 Let assignment for LaTeX macros (HO) +Package: hopatch 2011/01/30 v1.0 Wrapper for package hooks (HO) +Package: xcolor-patch 2011/01/30 xcolor patch +Package: atveryend 2011/04/23 v1.7 Hooks at very end of document (HO) +Package atveryend Info: \enddocument detected (standard). +Package hobsub Info: Skipping package `atbegshi' (already loaded). +Package: refcount 2010/12/01 v3.2 Data extraction from references (HO) +Package: hycolor 2011/01/30 v1.7 Color options of hyperref/bookmark (HO) +) +(/usr/local/texlive/2011/texmf-dist/tex/latex/oberdiek/kvoptions.sty +Package: kvoptions 2010/12/23 v3.10 Keyval support for LaTeX options (HO) +) +\@linkdim=\dimen127 +\Hy@linkcounter=\count108 +\Hy@pagecounter=\count109 + +(/usr/local/texlive/2011/texmf-dist/tex/latex/hyperref/pd1enc.def +File: pd1enc.def 2011/12/04 v6.82m Hyperref: PDFDocEncoding definition (HO) +) +\Hy@SavedSpaceFactor=\count110 + +(/usr/local/texlive/2011/texmf-dist/tex/latex/latexconfig/hyperref.cfg +File: hyperref.cfg 2002/06/06 v1.2 hyperref configuration of TeXLive +) +Package hyperref Info: Option `colorlinks' set `false' on input line 3925. +Package hyperref Info: Hyper figures OFF on input line 4046. +Package hyperref Info: Link nesting OFF on input line 4051. +Package hyperref Info: Hyper index ON on input line 4054. +Package hyperref Info: Plain pages OFF on input line 4061. +Package hyperref Info: Backreferencing OFF on input line 4066. +Package hyperref Info: Implicit mode ON; LaTeX internals redefined. +Package hyperref Info: Bookmarks ON on input line 4284. +\c@Hy@tempcnt=\count111 + +(/usr/local/texlive/2011/texmf-dist/tex/latex/url/url.sty +\Urlmuskip=\muskip10 +Package: url 2006/04/12 ver 3.3 Verb mode for urls, etc. +) +LaTeX Info: Redefining \url on input line 4637. +\Fld@menulength=\count112 +\Field@Width=\dimen128 +\Fld@charsize=\dimen129 +Package hyperref Info: Hyper figures OFF on input line 5757. +Package hyperref Info: Link nesting OFF on input line 5762. +Package hyperref Info: Hyper index ON on input line 5765. +Package hyperref Info: backreferencing OFF on input line 5772. +Package hyperref Info: Link coloring OFF on input line 5777. +Package hyperref Info: Link coloring with OCG OFF on input line 5782. +Package hyperref Info: PDF/A mode OFF on input line 5787. +LaTeX Info: Redefining \ref on input line 5827. +LaTeX Info: Redefining \pageref on input line 5831. +\Hy@abspage=\count113 +\c@Item=\count114 +\c@Hfootnote=\count115 +) + +Package hyperref Message: Driver (autodetected): hpdftex. + +(/usr/local/texlive/2011/texmf-dist/tex/latex/hyperref/hpdftex.def +File: hpdftex.def 2011/12/04 v6.82m Hyperref driver for pdfTeX +\Fld@listcount=\count116 +\c@bookmark@seq@number=\count117 + +(/usr/local/texlive/2011/texmf-dist/tex/latex/oberdiek/rerunfilecheck.sty +Package: rerunfilecheck 2011/04/15 v1.7 Rerun checks for auxiliary files (HO) +Package uniquecounter Info: New unique counter `rerunfilecheck' on input line 2 +82. +) +\Hy@SectionHShift=\skip100 +) +(./Abschlussbericht.aux) +\openout1 = `Abschlussbericht.aux'. + +LaTeX Font Info: Checking defaults for OML/cmm/m/it on input line 11. +LaTeX Font Info: ... okay on input line 11. +LaTeX Font Info: Checking defaults for T1/cmr/m/n on input line 11. +LaTeX Font Info: ... okay on input line 11. +LaTeX Font Info: Checking defaults for OT1/cmr/m/n on input line 11. +LaTeX Font Info: ... okay on input line 11. +LaTeX Font Info: Checking defaults for OMS/cmsy/m/n on input line 11. +LaTeX Font Info: ... okay on input line 11. +LaTeX Font Info: Checking defaults for OMX/cmex/m/n on input line 11. +LaTeX Font Info: ... okay on input line 11. +LaTeX Font Info: Checking defaults for U/cmr/m/n on input line 11. +LaTeX Font Info: ... okay on input line 11. +LaTeX Font Info: Checking defaults for TS1/cmr/m/n on input line 11. +LaTeX Font Info: ... okay on input line 11. +LaTeX Font Info: Checking defaults for MDA/cmr/m/n on input line 11. +LaTeX Font Info: Try loading font information for MDA+cmr on input line 11. + +(/usr/local/texlive/2011/texmf-dist/tex/latex/mathdesign/mdacmr.fd +File: mdacmr.fd +) +LaTeX Font Info: ... okay on input line 11. +LaTeX Font Info: Checking defaults for MDB/cmr/m/n on input line 11. +LaTeX Font Info: Try loading font information for MDB+cmr on input line 11. + +(/usr/local/texlive/2011/texmf-dist/tex/latex/mathdesign/mdbcmr.fd +File: mdbcmr.fd +) +LaTeX Font Info: ... okay on input line 11. +LaTeX Font Info: Checking defaults for PD1/pdf/m/n on input line 11. +LaTeX Font Info: ... okay on input line 11. +LaTeX Font Info: Try loading font information for T1+5ch on input line 11. + +(/Users/Michael/Library/texmf/tex/latex/tex-tudfonts/softmake/charter/t15ch.fd +File: t15ch.fd 2008/06/23 Fontinst v1.927 font definitions for T1/5ch. +) (/usr/local/texlive/2011/texmf-dist/tex/context/base/supp-pdf.mkii +[Loading MPS to PDF converter (version 2006.09.02).] +\scratchcounter=\count118 +\scratchdimen=\dimen130 +\scratchbox=\box33 +\nofMPsegments=\count119 +\nofMParguments=\count120 +\everyMPshowfont=\toks24 +\MPscratchCnt=\count121 +\MPscratchDim=\dimen131 +\MPnumerator=\count122 +\makeMPintoPDFobject=\count123 +\everyMPtoPDFconversion=\toks25 +) (/usr/local/texlive/2011/texmf-dist/tex/latex/oberdiek/epstopdf-base.sty +Package: epstopdf-base 2010/02/09 v2.5 Base part for package epstopdf + +(/usr/local/texlive/2011/texmf-dist/tex/latex/oberdiek/grfext.sty +Package: grfext 2010/08/19 v1.1 Managing graphics extensions (HO) +) +Package grfext Info: Graphics extension search list: +(grfext) [.png,.pdf,.jpg,.mps,.jpeg,.jbig2,.jb2,.PNG,.PDF,.JPG,.JPE +G,.JBIG2,.JB2,.eps] +(grfext) \AppendGraphicsExtensions on input line 452. + +(/usr/local/texlive/2011/texmf-dist/tex/latex/latexconfig/epstopdf-sys.cfg +File: epstopdf-sys.cfg 2010/07/13 v1.3 Configuration of (r)epstopdf for TeX Liv +e +)) +\AtBeginShipoutBox=\box34 + +*geometry* detected driver: dvips +*geometry* verbose mode - [ preamble ] result: +* driver: dvips +* paper: a4paper +* layout: +* layoutoffset:(h,v)=(0.0pt,0.0pt) +* modes: includehead includefoot includemp +* h-part:(L,W,R)=(56.9055pt, 497.92325pt, 42.67912pt) +* v-part:(T,H,B)=(42.67912pt, 745.46222pt, 56.9055pt) +* \paperwidth=597.50787pt +* \paperheight=845.04684pt +* \textwidth=497.92325pt +* \textheight=704.89777pt +* \oddsidemargin=-15.36449pt +* \evensidemargin=-15.36449pt +* \topmargin=-29.59087pt +* \headheight=16.56445pt +* \headsep=12.0pt +* \topskip=11.0pt +* \footskip=12.0pt +* \marginparwidth=0.0pt +* \marginparsep=0.0pt +* \columnsep=11.95013pt +* \skip\footins=10.0pt plus 4.0pt minus 2.0pt +* \hoffset=0.0pt +* \voffset=0.0pt +* \mag=1000 +* \@twocolumnfalse +* \@twosidefalse +* \@mparswitchfalse +* \@reversemarginfalse +* (1in=72.27pt=25.4mm, 1cm=28.453pt) + +\TUD@part@topskip=\skip101 +Package hyperref Info: Link coloring OFF on input line 11. +(/usr/local/texlive/2011/texmf-dist/tex/latex/hyperref/nameref.sty +Package: nameref 2010/04/30 v2.40 Cross-referencing by name of section + +(/usr/local/texlive/2011/texmf-dist/tex/generic/oberdiek/gettitlestring.sty +Package: gettitlestring 2010/12/03 v1.4 Cleanup title references (HO) +) +\c@section@level=\count124 +) +LaTeX Info: Redefining \ref on input line 11. +LaTeX Info: Redefining \pageref on input line 11. +LaTeX Info: Redefining \nameref on input line 11. + +(./Abschlussbericht.out) (./Abschlussbericht.out) +\@outlinefile=\write3 +\openout3 = `Abschlussbericht.out'. + +\@TUD@tmp@baselineskip=\skip102 +\TUD@titleboxheight=\skip103 +\TUD@titleboxdepth=\skip104 +\TUD@subtitleboxheight=\skip105 +\TUD@subtitleboxdepth=\skip106 +\TUD@logoboxheight=\skip107 +\TUD@logoboxwidth=\skip108 +\TUD@colorbackheight=\skip109 +\TUD@colorbacktitleheight=\skip110 +\TUD@instboxheight=\skip111 +\TUD@instboxdepth=\skip112 +\TUD@instboxwidth=\skip113 +\TUD@instlogoheight=\skip114 +\TUD@instlogowidth=\skip115 +\TUD@sponsorheight=\skip116 +\TUD@titlebox=\box35 +\TUD@subtitlebox=\box36 +\TUD@logobox=\box37 +\TUD@instbox=\box38 +\TUD@sponsorbox=\box39 +\TUD@tmp@height=\skip117 +\TUD@tmp@depth=\skip118 +LaTeX Font Info: Try loading font information for T1+5fp on input line 18. + +(/Users/Michael/Library/texmf/tex/latex/tex-tudfonts/softmake/frontpage/t15fp.f +d +File: t15fp.fd 2009/08/06 Fontinst v1.927 font definitions for T1/5fp. +) +LaTeX Font Info: Try loading font information for OT1+mdbch on input line 18 +. + (/usr/local/texlive/2011/texmf-dist/tex/latex/mathdesign/mdbch/ot1mdbch.fd +File: ot1mdbch.fd 2006/01/28 Fontinst v1.928 font definitions for OT1/mdbch. +) +LaTeX Font Info: Font shape `OT1/mdbch/m/n' will be +(Font) scaled to size 9.50406pt on input line 18. +LaTeX Font Info: Font shape `OT1/mdbch/m/n' will be +(Font) scaled to size 6.62404pt on input line 18. +LaTeX Font Info: Font shape `OT1/mdbch/m/n' will be +(Font) scaled to size 5.66403pt on input line 18. +LaTeX Font Info: Try loading font information for OML+mdbch on input line 18 +. + +(/usr/local/texlive/2011/texmf-dist/tex/latex/mathdesign/mdbch/omlmdbch.fd +File: omlmdbch.fd 2006/01/28 Fontinst v1.928 font definitions for OML/mdbch. +) +LaTeX Font Info: Font shape `OML/mdbch/m/it' will be +(Font) scaled to size 9.50406pt on input line 18. +LaTeX Font Info: Font shape `OML/mdbch/m/it' will be +(Font) scaled to size 6.62404pt on input line 18. +LaTeX Font Info: Font shape `OML/mdbch/m/it' will be +(Font) scaled to size 5.66403pt on input line 18. +LaTeX Font Info: Try loading font information for OMS+mdbch on input line 18 +. + +(/usr/local/texlive/2011/texmf-dist/tex/latex/mathdesign/mdbch/omsmdbch.fd +File: omsmdbch.fd 2006/01/28 Fontinst v1.928 font definitions for OMS/mdbch. +) +LaTeX Font Info: Font shape `OMS/mdbch/m/n' will be +(Font) scaled to size 9.50406pt on input line 18. +LaTeX Font Info: Font shape `OMS/mdbch/m/n' will be +(Font) scaled to size 6.62404pt on input line 18. +LaTeX Font Info: Font shape `OMS/mdbch/m/n' will be +(Font) scaled to size 5.66403pt on input line 18. +LaTeX Font Info: Try loading font information for OMX+mdbch on input line 18 +. + +(/usr/local/texlive/2011/texmf-dist/tex/latex/mathdesign/mdbch/omxmdbch.fd +File: omxmdbch.fd 2006/01/28 Fontinst v1.928 font definitions for OMX/mdbch. +) +LaTeX Font Info: Font shape `OMX/mdbch/m/n' will be +(Font) scaled to size 9.50406pt on input line 18. +LaTeX Font Info: Font shape `OMX/mdbch/m/n' will be +(Font) scaled to size 6.62404pt on input line 18. +LaTeX Font Info: Font shape `OMX/mdbch/m/n' will be +(Font) scaled to size 5.66403pt on input line 18. +LaTeX Font Info: Font shape `OML/mdbch/m/n' will be +(Font) scaled to size 9.50406pt on input line 18. +LaTeX Font Info: Font shape `OML/mdbch/m/n' will be +(Font) scaled to size 6.62404pt on input line 18. +LaTeX Font Info: Font shape `OML/mdbch/m/n' will be +(Font) scaled to size 5.66403pt on input line 18. +LaTeX Font Info: Try loading font information for MDA+mdbch on input line 18 +. + +(/usr/local/texlive/2011/texmf-dist/tex/latex/mathdesign/mdbch/mdamdbch.fd +File: mdamdbch.fd 2006/01/28 Fontinst v1.928 font definitions for MDA/mdbch. +) +LaTeX Font Info: Font shape `MDA/mdbch/m/n' will be +(Font) scaled to size 9.50406pt on input line 18. +LaTeX Font Info: Font shape `MDA/mdbch/m/n' will be +(Font) scaled to size 6.62404pt on input line 18. +LaTeX Font Info: Font shape `MDA/mdbch/m/n' will be +(Font) scaled to size 5.66403pt on input line 18. +LaTeX Font Info: Try loading font information for MDB+mdbch on input line 18 +. + +(/usr/local/texlive/2011/texmf-dist/tex/latex/mathdesign/mdbch/mdbmdbch.fd +File: mdbmdbch.fd 2006/01/28 Fontinst v1.928 font definitions for MDB/mdbch. +) +LaTeX Font Info: Font shape `MDB/mdbch/m/n' will be +(Font) scaled to size 9.50406pt on input line 18. +LaTeX Font Info: Font shape `MDB/mdbch/m/n' will be +(Font) scaled to size 6.62404pt on input line 18. +LaTeX Font Info: Font shape `MDB/mdbch/m/n' will be +(Font) scaled to size 5.66403pt on input line 18. +LaTeX Font Info: Try loading font information for OML+mdput on input line 18 +. + +(/usr/local/texlive/2011/texmf-dist/tex/latex/mathdesign/mdput/omlmdput.fd +File: omlmdput.fd 2006/01/29 Fontinst v1.928 font definitions for OML/mdput. +) +LaTeX Font Info: Font shape `OML/mdput/m/it' will be +(Font) scaled to size 9.10797pt on input line 18. +LaTeX Font Info: Font shape `OML/mdput/m/it' will be +(Font) scaled to size 6.34798pt on input line 18. +LaTeX Font Info: Font shape `OML/mdput/m/it' will be +(Font) scaled to size 5.42798pt on input line 18. +LaTeX Font Info: Try loading font information for U+wasy on input line 18. + +(/usr/local/texlive/2011/texmf-dist/tex/latex/wasysym/uwasy.fd +File: uwasy.fd 2003/10/30 v2.0 Wasy-2 symbol font definitions +) +\@TUD@titlelines=\count125 + + +File: tud_logo.pdf Graphic file (type pdf) + +Package pdftex.def Info: tud_logo.pdf used on input line 18. +(pdftex.def) Requested size: 134.92238pt x 62.59605pt. +File: tud_logo.pdf Graphic file (type pdf) + + +Package pdftex.def Info: tud_logo.pdf used on input line 18. +(pdftex.def) Requested size: 134.92238pt x 62.59605pt. + [0 +Non-PDF special ignored! + + +Non-PDF special ignored!{/Users/Michael/Library/texlive/2011/texmf-var/fonts/ma +p/pdftex/updmap/pdftex.map} ] +Underfull \hbox (badness 10000) in paragraph at lines 22--24 + + [] + +LaTeX Font Info: Try loading font information for TS1+5ch on input line 36. + +(/Users/Michael/Library/texmf/tex/latex/tex-tudfonts/softmake/charter/ts15ch.fd +File: ts15ch.fd 2008/06/23 Fontinst v1.927 font definitions for TS1/5ch. +) +Underfull \hbox (badness 10000) in paragraph at lines 50--52 + + [] + + +Underfull \hbox (badness 10000) in paragraph at lines 60--63 + + [] + +[1 + + +] +Package atveryend Info: Empty hook `BeforeClearDocument' on input line 72. + [2] +Package atveryend Info: Empty hook `AfterLastShipout' on input line 72. + (./Abschlussbericht.aux) +Package atveryend Info: Executing hook `AtVeryEndDocument' on input line 72. +Package atveryend Info: Executing hook `AtEndAfterFileList' on input line 72. +Package rerunfilecheck Info: File `Abschlussbericht.out' has not changed. +(rerunfilecheck) Checksum: 896778DC9E760271F173CEB1C00CB473;821. +Package atveryend Info: Empty hook `AtVeryVeryEnd' on input line 72. + ) +Here is how much of TeX's memory you used: + 11381 strings out of 493633 + 174586 string characters out of 3143378 + 288616 words of memory out of 3000000 + 14417 multiletter control sequences out of 15000+200000 + 57778 words of font info for 62 fonts, out of 3000000 for 9000 + 831 hyphenation exceptions out of 8191 + 59i,12n,75p,1521b,468s stack positions out of 5000i,500n,10000p,200000b,50000s +{/usr/local/texlive/2011/texmf-dist/fonts/enc/dvips/base/8r.enc} +Output written on Abschlussbericht.pdf (3 pages, 64345 bytes). +PDF statistics: + 89 PDF objects out of 1000 (max. 8388607) + 77 compressed objects within 1 object stream + 15 named destinations out of 1000 (max. 500000) + 106 words of extra memory for PDF output out of 10000 (max. 10000000) + diff --git a/ss2012/AlgoAnim/Abschlussbericht/Abschlussbericht.out b/ss2012/AlgoAnim/Abschlussbericht/Abschlussbericht.out new file mode 100644 index 00000000..a03901d1 --- /dev/null +++ b/ss2012/AlgoAnim/Abschlussbericht/Abschlussbericht.out @@ -0,0 +1,11 @@ +\BOOKMARK [1][-]{section.1}{Animal}{}% 1 +\BOOKMARK [1][-]{section.2}{AnimalScript}{}% 2 +\BOOKMARK [1][-]{section.3}{Generator}{}% 3 +\BOOKMARK [1][-]{section.4}{Verbesserungsvorschl\344ge}{}% 4 +\BOOKMARK [1][-]{section.5}{Fazit}{}% 5 +\BOOKMARK [1][-]{section.6}{was ihnen am Praktikum gut gefallen hat und was weniger gut war}{}% 6 +\BOOKMARK [1][-]{section.7}{ob bzw. was sie gelernt haben}{}% 7 +\BOOKMARK [1][-]{section.8}{was wir in Zukunft an ANIMAL, ANIMALSCRIPT, der API oder den Uebungen verbessern koennten}{}% 8 +\BOOKMARK [1][-]{section.9}{wie zufrieden Sie mit der Betreuung im Lernportal waren}{}% 9 +\BOOKMARK [1][-]{section.10}{wie sie an die Aufgaben herangegangen sind und Sie-eventuell im Team-bearbeitet haben}{}% 10 +\BOOKMARK [1][-]{section.11}{und was sie uns sonst noch an Anregungen geben wollen}{}% 11 diff --git a/ss2012/AlgoAnim/Abschlussbericht/Abschlussbericht.pdf b/ss2012/AlgoAnim/Abschlussbericht/Abschlussbericht.pdf new file mode 100644 index 00000000..a6f55a05 Binary files /dev/null and b/ss2012/AlgoAnim/Abschlussbericht/Abschlussbericht.pdf differ diff --git a/ss2012/AlgoAnim/Abschlussbericht/Abschlussbericht.synctex.gz b/ss2012/AlgoAnim/Abschlussbericht/Abschlussbericht.synctex.gz new file mode 100644 index 00000000..d437a8dc Binary files /dev/null and b/ss2012/AlgoAnim/Abschlussbericht/Abschlussbericht.synctex.gz differ diff --git a/ss2012/AlgoAnim/Abschlussbericht/Abschlussbericht.tex b/ss2012/AlgoAnim/Abschlussbericht/Abschlussbericht.tex new file mode 100644 index 00000000..188395d3 --- /dev/null +++ b/ss2012/AlgoAnim/Abschlussbericht/Abschlussbericht.tex @@ -0,0 +1,72 @@ +\documentclass[article, colorback,accentcolor=tud1d]{tudreport} +\usepackage[latin9]{inputenc} %unter Linux muss latin9 durch utf8 ersetzt werden!! +\usepackage[ngerman]{babel} +\usepackage{enumitem} +\usepackage{lineno} +\usepackage{wasysym} +\usepackage{latexsym} +%reihenfolge von "hyperref" und "glossaries" ist wichtig!!!! nicht ändern! +\usepackage[pdftitle={Abschlussbericht}]{hyperref} + +\begin{document} + +\title{Praktikum AlgoAnim} +\subtitle{Abschlussbericht Sommersemester 2012\\ +Gruppe: Ulf Gebhardt, Michael Scholz} +\author{Ulf Gebhardt, Michael Scholz} +\maketitle + + +\newpage +\section{Animal} +Die Benutzeroberfläche von Animal ist intuitiv gestaltet. Somit hat jeder Benutzer die Möglichkeit sich einen Algorithmus schnell und einfach generieren zu lassen. In der Animation selbst sind sämtliche Steuerungsfunktionen vorhanden. Besonders gut hat uns hierbei die variabel einstellbare Abspielzeit gefallen. Wünschenswert wäre jedoch eine Suchfunktion, mit der alle vorhandenen Generatoren durchsucht werden können. \\ \\ +Leider haben wir in der Lehrveranstaltung \glqq Grundlagen der Informatik II\grqq\ keinen Hinweis auf die Existenz von Animal bekommen. Animal wäre sicherlich eine gute Unterstützung beim Lernen der verschiedenen Algorithmen und Datenstrukturen gewesen. + + +\section{AnimalScript} +Die Einarbeitung in AnimalScript ist uns sehr leicht gefallen. Die Sprache ist verständlich aufgebaut, so dass auch Personen ohne Programmiererfahrung ihre eigenen Animationen schreiben können. Als weiterer Grund für die schnelle Einarbeitung ist hier das englischsprachige Tutorial aufzuführen. Es leitet den Entwickler Schritt für Schritt durch die einzelnen Abschnitte. Nach dem Tutorial waren wir bereit mit unserer ersten eigenen Animation in AnimalScript zu beginnen. Bei kleineren Problemen half fast immer ein Blick in die AnimalScript-Spezifikationen. Ein wenig Verwirrung kam bei der Erstellung der Tabelle auf. In der aktuellen Version (2.3.29) von Animal führt ein \glqq refresh\grqq\ einer Tabelle zu einer falschen Formatierung derselbigen. Das Problem haben wir gelöst, indem wir die Tabelle in zwei kleinere Tabellen aufgeteilt und diese mit einer festen Breite initialisiert haben. Durch das Shortcut \glqq reload current animation\grqq\ konnten wir die erstellte Animation gut testen. Durch die aufgeführten Faktoren haben wir Übung 2 zügig absolvieren können. Wir haben während dem gesamten Praktikum Pair-Programming betrieben. Hierbei schreibt eine Person den Quelltext. Die Übrige beobachtet, gibt Tipps und schlägt in unserem Fall bei auftauchenden Problemen in der Spezifikation nach. Nach einem, bei uns nicht festgelegten, Zeitintervall werden die eingenommenen Positionen gewechselt. Diese Methode hat sich vor allem in der Einarbeitungsphase bewährt. + + +\section{Generator} + + +\section{Verbesserungsvorschläge} +Nachfolgend haben wir einige wenige Verbesserungsvorschläge stichpunktartig aufgelistet. Diese sollen als konstruktive Kritik dienen. +\begin{itemize} +\item Suchfunktion in Animal zum Finden der einzelnen Generatoren +\item ... +\end{itemize} + + + +\section{Fazit} +Das Praktikum hat uns sehr gut gefallen. Positiv hervorzuheben ist die freie Einteilung der Arbeitszeit. Hierdurch konnten wir je nach persönlicher Auslastung während des Semesters an dem Praktikum arbeiten. Trotzdem waren die vorgeschlagenen Zeiträume auf den einzelnen Übungsblättern als Anhaltspunkte hilfreich und sinnvoll. Auch das zeitnahe Feedback auf die einzelnen Abgaben und die Möglichkeit der Verbesserung nach der erhaltenen Rückmeldung haben uns positiv überrascht. Hierdurch war es möglich Ihre Anforderungen an die einzelnen Aufgaben bestmöglich zu erfüllen. \\ +-> Muss noch ein bisschen erweitert werden + + + + +\section{was ihnen am Praktikum gut gefallen hat und was weniger gut war} +- Nur dürftige Betreuung im Moodle. Dieser Punkt wird später weiter ausgeführt. \\ +- Einige Bugs (refresh der grids) sind vorhanden und beanspruchen sehr viel kreativität beim finden neuer lösungsideen. Hierdurch wird das von Guido in GDI1 immer wieder betonte KISS-Prinzip (Keep it simple, stupid!) verletzt :) \\ + +\section{ob bzw. was sie gelernt haben} +Die benötigten Java-Kentnisse sollten im 6. Semester vorhanden sein. Trotzdem lernt man nie aus. blabla. So musste man sich in die API einarbeiten. Hierfür entwickelt man im Laufe der Zeit eine gewisse Routine. Wo fängt man an? Direkt im Code? In der Dokumentation? Oder schreibt man einfach mal wild drauf los? Die Doku war hier sehr hilfreich. Eine ausführliche Dokumentation der API wäre in Zukunft für weitere Gruppen sicherlich hilfreich. + +\section{was wir in Zukunft an ANIMAL, ANIMALSCRIPT, der API oder den Uebungen verbessern koennten} +-> Diesen Abschnitt am besten mit der letzten Section zusammenfassen und als Fazit formulieren.! + +\section{wie zufrieden Sie mit der Betreuung im Lernportal waren} +- Nicht zufrieden! Fakten: Keine Antwort auf highlightGridElement(...), keine Antwort auf der \glqq refresh-problem\grqq. Hier hat sich scheinbar niemand wirklich verantwortlich gefühlt.\\ +Vergleich zu vergangenen Verantstaltungen von Guido ziehen (Beispiel GDI1). \\ \\ ++ Schnelles Feedback zu den abgegebenen Übungen erhalten. Somit konnte man die Verbesserungsvorschläge direkt in das Projekt einfließen lassen. + +\section{wie sie an die Aufgaben herangegangen sind und Sie-eventuell im Team-bearbeitet haben} +Tutorial gemacht, Dokumentation gelesen, Beispiele angeschaut, angefangen! + +\section{und was sie uns sonst noch an Anregungen geben wollen} +Hier am besten nochmal alle Verbesserungen Stichpunktartig zusammenfassen bzw. ein Fazit schreiben und alle Verbesserungen gekürzt wiederholen. + + + +\end{document} \ No newline at end of file diff --git a/ss2012/AlgoAnim/Abschlussbericht/Abschlussbericht.toc b/ss2012/AlgoAnim/Abschlussbericht/Abschlussbericht.toc new file mode 100644 index 00000000..b5f50ea8 --- /dev/null +++ b/ss2012/AlgoAnim/Abschlussbericht/Abschlussbericht.toc @@ -0,0 +1,11 @@ +\select@language {ngerman} +\contentsline {section}{\numberline {1}AnimalScript}{2}{section.1} +\contentsline {section}{\numberline {2}Generator}{2}{section.2} +\contentsline {section}{\numberline {3}Verbesserungsvorschl\"age}{2}{section.3} +\contentsline {section}{\numberline {4}Fazit}{2}{section.4} +\contentsline {section}{\numberline {5}was ihnen am Praktikum gut gefallen hat und was weniger gut war}{2}{section.5} +\contentsline {section}{\numberline {6}ob bzw. was sie gelernt haben}{2}{section.6} +\contentsline {section}{\numberline {7}was wir in Zukunft an ANIMAL, ANIMALSCRIPT, der API oder den Uebungen verbessern koennten}{3}{section.7} +\contentsline {section}{\numberline {8}wie zufrieden Sie mit der Betreuung im Lernportal waren}{3}{section.8} +\contentsline {section}{\numberline {9}wie sie an die Aufgaben herangegangen sind und Sie-eventuell im Team-bearbeitet haben}{3}{section.9} +\contentsline {section}{\numberline {10}und was sie uns sonst noch an Anregungen geben wollen}{3}{section.10} diff --git a/ss2012/AlgoAnim/Teil 2/aufgabe2_2.asu b/ss2012/AlgoAnim/Teil 2/aufgabe2_2.asu index cd2e5768..b0af5c0c 100644 --- a/ss2012/AlgoAnim/Teil 2/aufgabe2_2.asu +++ b/ss2012/AlgoAnim/Teil 2/aufgabe2_2.asu @@ -3,27 +3,28 @@ 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 +text "straight" "Das hier vorgestellte Verfahren eignet sich für die Multiplikation zweier ganzer Zahlen." at (20, 85) font SansSerif size 18 italic +text "straight" "Die Funktionsweise lässt sich in die folgenden fünf Schritte gliedern:" at (20, 150) font SansSerif size 18 +text "straight" "1. Schreibe die beiden zu multiplizierenden Zahlen nebeneinander." at (20, 180) font SansSerif size 18 +text "straight" "2. Die linke Zahl wird halbiert (Reste werden abgerundet), die rechte Zahl wird verdoppelt." at (20, 205) font SansSerif size 18 +text "straight" "Die beiden berechneten Zahlen werden in die darauffolgende Zeile geschrieben." at (43, 230) font SansSerif size 18 +text "straight" "3. Schritt 2 wird solange wiederholt, bis in der linken Spalte eine 1 steht." at (20, 255) font SansSerif size 18 +text "straight" "4. Nun streicht man alle Zeilen, in denen die linke Zahl gerade ist." at (20, 280) font SansSerif size 18 +text "straight" "5. Schlussendlich werden alle übrigen Zahlen der rechten Spalte addiert." at (20, 305) 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 "\t \t if(a == 1){" to "code" +addCodeLine "\t \t \t \t return b; " to "code" +addCodeLine "\t \t }" to "code" +addCodeLine "\t \t if(a % 2 == 1){" to "code" +addCodeLine "\t \t \t \t return b + russe(a/2, b*2);" to "code" +addCodeLine "\t \t }else{" to "code" +addCodeLine "\t \t \t \t return russe(a/2, b*2);" to "code" +addCodeLine "\t \t }" to "code" addCodeLine "}" to "code" } { @@ -212,18 +213,20 @@ text "header" "Russische Bauernmultiplikation" at (20, 30) font SansSerif size 2 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" "0" at (204, 153) font SansSerif size 10 -text "straight" "1" at (242, 162) font SansSerif size 10 -text "straight" "2" at (312, 162) font SansSerif size 10 -text "straight" "3" at (350, 162) font SansSerif size 10 -text "straight" "4" at (385, 162) font SansSerif size 10 -text "straight" "82 * 27 \t = 82 * (2 + 2 + 0 * 2 + 2 + 2 )" at (43, 172) font SansSerif size 18 -text "straight" "0" at (200, 180) font SansSerif size 10 -text "straight" "1" at (282, 189) font SansSerif size 10 +#text "straight" "0" at (204, 153) font SansSerif size 10 +text "test" "82 * 27 \t = 82 * (2^0 + 2^1 + 0 * 2^2 + 2^3 + 2^4 )" at (43, 172) font SansSerif size 18 +# text "straight" "0" offset (30, 0) from "test" NW font SansSerif size 10 +#text "straight" "1" at (242, 162) font SansSerif size 10 +#text "straight" "2" at (312, 162) font SansSerif size 10 +#text "straight" "3" at (350, 162) font SansSerif size 10 +#text "straight" "4" at (385, 162) font SansSerif size 10 -text "straight" "3" at (441, 189) font SansSerif size 10 -text "straight" "4" at (520, 189) font SansSerif size 10 -text "straight" "\t \t \t \t \t \t \t \t \t = 82 * 2 + 82 * 2 + 82 * 0 + 82 * 2 + 82 * 2" at (20, 200) font SansSerif size 18 +#text "straight" "0" at (200, 180) font SansSerif size 10 +#text "straight" "1" at (282, 189) font SansSerif size 10 + +#text "straight" "3" at (441, 189) font SansSerif size 10 +#text "straight" "4" at (520, 189) font SansSerif size 10 +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, 200) font SansSerif size 18 text "straight" "\t \t \t \t \t \t \t \t \t = 82 + 164 + 0 + 656 + 1312" at (20, 221) font SansSerif size 18 text "straight" "\t \t \t \t \t \t \t \t \t = 2214" at (20, 246) font SansSerif size 18 bold } diff --git a/ss2012/AlgoAnim/Teil 3/RussischeBauernmultiplikation.java b/ss2012/AlgoAnim/Teil 3/RussischeBauernmultiplikation.java new file mode 100644 index 00000000..0d6e4928 --- /dev/null +++ b/ss2012/AlgoAnim/Teil 3/RussischeBauernmultiplikation.java @@ -0,0 +1,563 @@ +package part2; + +import java.awt.Color; +import java.io.FileNotFoundException; +import java.io.FileOutputStream; +import java.io.PrintStream; +import de.ahrgr.animal.kohnert.asugen.Font; +import algoanim.animalscript.AnimalScript; +import algoanim.primitives.SourceCode; +import algoanim.primitives.StringMatrix; +import algoanim.primitives.generators.Language; +import algoanim.properties.AnimationPropertiesKeys; +import algoanim.properties.RectProperties; +import algoanim.properties.SourceCodeProperties; +import algoanim.properties.TextProperties; +import algoanim.util.Coordinates; +import algoanim.util.Offset; +import algoanim.util.Timing; + + +/** + * @author Michael Scholz, Ulf Gebhardt + * @version 0.7 2012-05-15 + * + */ +public class RussischeBauernmultiplikation { + + /** + * static variables -> simple testing + */ + static int A = 27; + static int B = 82; + static int HIGHLIGHTING_TIME = 100; //in ticks + static int UNHIGHLIGHTING_TIME = 0; //in ticks + +//========================================================================================================= + + /** + * The concrete language object used for creating output + */ + private Language lang; + + + /** + * The info text as a SourceCode object (first slide) + */ + private SourceCode info = null; + + /** + * The statement text as a SourceCode object (last several slides) + */ + private SourceCode statement = null; + + + /** + * The sourceCode + */ + private SourceCode sc = null; + + + /** + * The tables + */ + private StringMatrix tb1 = null; + private StringMatrix tb2 = null; + + + /** + * int-array with the values of b (only for animation) + */ + private int[] bArray = null; + + + /** + * recursionArray + */ + private int[] recursionArray = null; + + + /** + * unhighlightingTime + */ + private Timing unhighTime = new Timing(UNHIGHLIGHTING_TIME) { + + @Override + public String getUnit() { + // TODO Auto-generated method stub + return "ticks"; + } + }; + + + /** + * highlightTime + */ + private Timing highTime = new Timing(HIGHLIGHTING_TIME) { + + @Override + public String getUnit() { + // TODO Auto-generated method stub + return "ticks"; + } + }; + + + /** + * number of lines for tb1 + */ + private int linesOfTb1 = 0; + + private static final String DESCRIPTION = + "Russische Bauernmultiplikation\n" + + "Das hier vorgestellte Verfahren eignet sich fŸr die Multiplikation zweier ganzer Zahlen.\n" + + "Die Funktionsweise lŠsst sich in die folgenden fŸnf Schritte gliedern:\n" + + "1. Schreibe die beiden zu multiplizierenden Zahlen nebeneinander.\n" + + "2. Die linke Zahl wird halbiert (Reste werden abgerundet), die rechte Zahl wird verdoppelt.\n" + + "Die beiden berechneten Zahlen werden in die darauffolgende Zeile geschrieben.\n" + + "3. Schritt 2 wird solange wiederholt, bis in der linken Spalte eine 1 steht.\n" + + "4. Nun streicht man alle Zeilen, in denen die linke Zahl gerade ist.\n" + + "5. Schlussendlich werden alle Ÿbrigen Zahlen der rechten Spalte addiert."; + + + private static final String SOURCE_CODE = "public int russe(int a, int b){" // 0 + + "\n if(a == 1){" // 1 + + "\n return b;" // 2 + + "\n }" // 3 + + "\n if(a % 2 == 1){" // 4 + + "\n return b + russe(a/2, b*2);" // 5 + + "\n }else{" // 6 + + "\n return russe(a/2, b*2);" // 7 + + "\n }" // 8 + + "\n }"; // 9 + + +//========================================================================================================= + + + /** + * Default constructor + * @param l the conrete language object used for creating output + */ + public RussischeBauernmultiplikation(Language l) { + + // Store the language object + lang = l; + + // This initializes the step mode. Each pair of subsequent steps has to + // be divdided by a call of lang.nextStep(); + lang.setStepMode(true); + } + + + /** + * Builds the information text for the first page in the animation + */ + public void generateInfoText(){ + + //create first page of animation (info text) as a code group + SourceCodeProperties infoProps = new SourceCodeProperties(); + infoProps.set(AnimationPropertiesKeys.FONT_PROPERTY, new java.awt.Font("SansSerif", Font.SANSSERIF, 16)); + + this.info = lang.newSourceCode(new Coordinates(10, 75), "info", null, infoProps); + this.info.addCodeLine("Das hier vorgestellte Verfahren eignet sich fuer die Multiplikation zweier ganzer Zahlen.", null, 0, null); + this.info.addCodeLine("Die Funktionsweise laesst sich in die folgenden fuenf Schritte gliedern:", null, 0, null); + this.info.addCodeLine("1. Schreibe die beiden zu multiplizierenden Zahlen nebeneinander.", null, 1, null); + this.info.addCodeLine("2. Die linke Zahl wird halbiert (Reste werden abgerundet), die rechte Zahl wird verdoppelt.", null, 1, null); + this.info.addCodeLine(" Die beiden berechneten Zahlen werden in die darauffolgende Zeile geschrieben.", null, 2, null); + this.info.addCodeLine("3. Schritt 2 wird solange wiederholt, bis in der linken Spalte eine 1 steht.", null, 1, null); + this.info.addCodeLine("4. Nun streicht man alle Zeilen, in denen die linke Zahl gerade ist.", null, 1, null); + this.info.addCodeLine("5. Schlussendlich werden alle uebrigen Zahlen der rechten Spalte addiert.", null, 1, null); + } + + + /** + * Builds the header which is shown during the whole animation + */ + public void generateHeader(){ + + //head + TextProperties textProperties = new TextProperties(); + textProperties.set(AnimationPropertiesKeys.COLOR_PROPERTY, Color.BLACK); + textProperties.set(AnimationPropertiesKeys.DEPTH_PROPERTY, 1); + textProperties.set(AnimationPropertiesKeys.FONT_PROPERTY, new java.awt.Font("Serif", Font.SANSSERIF, 24)); + lang.newText(new Coordinates(11, 15), "Russische Bauernmultiplikation", "header", null, textProperties); + + //header background + RectProperties rectProperties = new RectProperties(); + rectProperties.set(AnimationPropertiesKeys.FILL_PROPERTY, Color.GRAY); + rectProperties.set(AnimationPropertiesKeys.FILLED_PROPERTY, true); + rectProperties.set(AnimationPropertiesKeys.DEPTH_PROPERTY, 2); + lang.newRect(new Offset(-5, -5, "header", + AnimalScript.DIRECTION_NW), new Offset(5, 5, "header", + AnimalScript.DIRECTION_SE), "headerBackground", null, + rectProperties); + } + + + /** + * Builds the SourceCode + */ + public void generateSourceCode(){ + + //set the visual properties for the source code + SourceCodeProperties scProps = new SourceCodeProperties(); + scProps.set(AnimationPropertiesKeys.HIGHLIGHTCOLOR_PROPERTY, Color.RED); + + //initialize source code object and add code lines + this.sc = lang.newSourceCode(new Coordinates(10, 147), "sourceCode", null, scProps); + this.sc.addCodeLine("public int russe(int a, int b){", null, 0, null); // 0 + this.sc.addCodeLine("if(a == 1){", null, 1, null); // 1 + this.sc.addCodeLine("return b;", null, 2, null); // 2 + this.sc.addCodeLine("}", null, 1, null); // 3 + this.sc.addCodeLine("if(a % 2 == 1){", null, 1, null); // 4 + this.sc.addCodeLine("return b + russe(a/2, b*2);", null, 2, null); // 5 + this.sc.addCodeLine("}else{", null, 1, null); // 6 + this.sc.addCodeLine("return russe(a/2, b*2);", null, 2, null); // 7 + this.sc.addCodeLine("}", null, 1, null); // 8 + this.sc.addCodeLine("}", null, 0, null); // 9 + + } + + + /** + * calculate needed lines -> animation is more dynamic + * @param a + * @param b + * @return int number of needed lines + */ + public void calculateLines(int a, int b){ + + //calculate needed lines -> animation is more dynamic + int aTemp = a; + int lines = 3; + while(aTemp != 1){ + aTemp = aTemp / 2; + lines++; + } + //initialize the bArray und the recursionArray + this.bArray = new int[lines-1]; + this.recursionArray = new int[lines-1]; + this.linesOfTb1 = lines; + } + + + /** + * Builds the table + * @param a + * @param b + * @param lines + */ + public void generateTableTb1(int a, int b, int lines){ + + //create String[][] data array for tb1 + String[][] tb1Data = new String[lines][4]; + + //fill all fields with "" + for(int i = 0; i < tb1Data.length; i++){ + for(int j = 0; j < tb1Data[i].length; j++){ + tb1Data[i][j] = ""; + } + } + + //fill the known fields + tb1Data[0][0] = "A-Seite"; + tb1Data[0][1] = "B-Seite"; + tb1Data[0][2] = "addieren"; + tb1Data[0][3] = "Summe"; + tb1Data[1][0] = a+""; + tb1Data[1][1] = b+""; + + //create table tb1 + this.tb1 = lang.newStringMatrix(new Coordinates(270, 100), tb1Data, "tb1", null); + this.tb1.changeColor(AnimationPropertiesKeys.FILL_PROPERTY, Color.WHITE, null, null); + + } + + /** + * builds the statement for the last several slides + */ + public void generateStatement(){ + //final statement + SourceCodeProperties statementProps = new SourceCodeProperties(); + statementProps.set(AnimationPropertiesKeys.FONT_PROPERTY, new java.awt.Font("SansSerif", Font.SANSSERIF, 16)); + + this.statement = lang.newSourceCode(new Coordinates(10, 75), "statement", null, statementProps); + this.statement.addCodeLine("Erklaerung:", null, 0, null); + this.statement.addCodeLine("Die Idee des Verfahrens kann man mit Hilfe des Dualsystems verdeutlichen.", null, 0, null); + this.statement.addCodeLine("Hierbei wird eine Zahl in ihre Zweierpotenzen zerlegt.", null, 0, null); + this.statement.addCodeLine("", null, 0, null); //empty line for vertical space + //STEP + lang.nextStep(); + this.statement.addCodeLine("82 * 27 = 82 * (2^0 + 2^1 + 0 * 2^2 + 2^3 + 2^4 )", null, 0, null); + //STEP + lang.nextStep(); + this.statement.addCodeLine("= 82 * 2^0 + 82 * 2^1 + 82 * 0 + 82 * 2^3 + 82 * 2^4", null, 4, null); + //STEP + lang.nextStep(); + this.statement.addCodeLine("= 82 + 164 + 0 + 656 + 1312", null, 4, null); + //STEP + lang.nextStep(); + this.statement.addCodeLine("= 2214", null, 4, null); + } + + + /** + * Draw the table tb2 + * @param bArrayLength + */ + public void drawTb2(int bArrayLength){ + + //create String[][] data array for tb2 + String[][] tb2Data = new String[2][1]; + tb2Data[0][0] = "Rekursion aufloesen:"; + + String tmp = ""; + for(int i = 1; i < bArrayLength; i++){ + if(this.bArray[i] != 0){ + tmp = tmp+this.bArray[i]; + if(i+1 != bArrayLength){ + tmp = tmp+"+"; + } + } + } + tb2Data[1][0] = tmp; + + + //create table tb2 + if(this.tb2 != null){ + this.tb2.put(1, 0, tmp, this.highTime, this.highTime); + }else{ + this.tb2 = lang.newStringMatrix(new Offset(0, 10, this.tb1, AnimalScript.DIRECTION_SW), tb2Data, "tb2", null); + this.tb2.changeColor(AnimationPropertiesKeys.FILL_PROPERTY, Color.WHITE, null, null); + } + } + + + /** + * Generates the animation of the recursion flow + */ + public void generateRecursion(){ + + //draw tb2 + drawTb2(this.bArray.length); + +//STEP + lang.nextStep(); + + int newLineNumber = 0; + int oldLineNumber = 0; + this.sc.unhighlight(2); //"return b" + for(int i = this.bArray.length-1; i > 1; i--){ + oldLineNumber = newLineNumber; + if(this.recursionArray[i-1] == 0){ + newLineNumber = 5; + }else{ + newLineNumber = 7; + } + if(oldLineNumber == 5){ + this.tb2.unhighlightCell(1, 0, this.unhighTime, this.unhighTime); + } + this.sc.unhighlight(oldLineNumber); +//STEP + lang.nextStep(); + this.sc.highlight(newLineNumber); + if(newLineNumber == 5){ + this.tb2.highlightCell(1, 0, this.highTime, this.highTime); + } + //update tb2 + this.bArray[i-1] = this.bArray[i-1] + this.bArray[i]; + drawTb2(i); +//STEP + lang.nextStep(); + } + this.sc.unhighlight(oldLineNumber); + } + + /** + * logical method: calls the needed methods for generating the animation + * @param a + * @param b + */ + public void multiply(int a, int b){ + + //generate information text and the header + generateInfoText(); + generateHeader(); + +//STEP + lang.nextStep(); + this.info.hide(); + + //generate SourceCode + generateSourceCode(); + + //calculate needed lines and generate table + calculateLines(a, b); + generateTableTb1(a, b, this.linesOfTb1); + +//STEP + lang.nextStep(); + + //higlight line 0 + this.sc.highlight(0); + + russe(a, b, sc, tb1, 1, ""); + + //unhighlight last line of tb1 + this.tb1.unhighlightCellColumnRange(this.linesOfTb1-2, 2, 3, this.unhighTime, this.unhighTime); + + //generate recursion animation + generateRecursion(); + +//STEP + lang.nextStep(); + this.tb1.hide(); + this.tb2.hide(); + this.sc.hide(); + + //generate statement + generateStatement(); + + } + + /** + * the algorithm which is used in the animation + * @param a + * @param b + * @param code + * @param tb1 + * @param line + * @param sum + * @return the product of a and b (a*b) + */ + public int russe(int a, int b, SourceCode code, StringMatrix tb1, int line, String sum){ + + int aTb = a; + int bTb = b; + + this.tb1.unhighlightCellColumnRange(line-1, 2, 3, this.unhighTime, this.unhighTime); + this.tb1.highlightCellColumnRange(line, 0, 1, this.highTime, this.highTime); + this.tb1.put(line, 0, a+"", null, null); //update column 0 (a) + this.tb1.put(line, 1, b+"", null, null); //update column 1 (b) + + //STEP + lang.nextStep(); + this.tb1.unhighlightCellColumnRange(line, 0, 1, this.unhighTime, this.unhighTime); + code.unhighlight(0); + code.highlight(1); + + //STEP + lang.nextStep(); + + if(a == 1){ + code.toggleHighlight(1, 2); + + //write last line + sum = sum+"+"+b; + //update table + this.tb1.highlightCellColumnRange(line, 2, 3, this.highTime, this.highTime); + this.tb1.put(line, 2, "Ja", null, null); //update column 2 (addieren) + this.tb1.put(line, 3, sum, null, null); //update column 3 (Summe) + this.bArray[line] = b; + return b; + } + if(line != 1){ // first line + aTb = aTb/2; + bTb = bTb*2; + } + code.toggleHighlight(1, 4); + + //STEP + lang.nextStep(); + code.unhighlight(1); + + if(a % 2 == 1){ + code.toggleHighlight(4, 5); + + if(line == 1){ + sum = b+""; + }else{ + if(sum.equals("")){ + sum = b+"";} + else{ + sum = sum+"+"+b; + } + } + //update table + this.tb1.highlightCellColumnRange(line, 2, 3, this.highTime, this.highTime); + this.tb1.put(line, 2, "Ja", null, null); //update column 2 (addieren) + this.tb1.put(line, 3, sum, null, null); //update column 3 (Summe) + + //STEP + lang.nextStep(); + code.unhighlight(5); + code.highlight(0); + //safe actual value of b in bArray + this.bArray[line] = b; + this.recursionArray[line] = 0; + return b + russe(a/2, b*2, code, tb1, line+1, sum); + } + else{ + code.toggleHighlight(4, 7); + //update table + this.tb1.highlightCellColumnRange(line, 2, 3, this.highTime, this.highTime); + this.tb1.put(line, 2, "Nein", null, null); //update column 2 (addieren) + this.tb1.put(line, 3, sum, null, null); //update column 3 (Summe) + + //STEP + lang.nextStep(); + code.highlight(0); + code.unhighlight(7); + //safe 0 in bArray + this.bArray[line] = 0; + this.recursionArray[line] = 1; + return russe(a/2, b*2, code, tb1, line+1, sum); + } + } + + + protected String getAlgorithmDescription() { + return DESCRIPTION; + } + + protected String getAlgorithmCode() { + return SOURCE_CODE; + } + + public String getName() { + return "Russische Bauernmultiplikation"; + } + + public String getDescription() { + return DESCRIPTION; + } + + public String getCodeExample() { + return SOURCE_CODE; + } + + + public static void main(String[] args) { + + Language l = new AnimalScript("Russische Bauenmultiplikation", "Michael Scholz, Ulf Gebhardt", 640, 480); + RussischeBauernmultiplikation s = new RussischeBauernmultiplikation(l); + s.multiply(A, B); + + //konsolenausgabe direkt als asu-datei schreiben, vor Abgabe bitte wieder entfernen!!! + boolean writeFile = false; + writeFile = true; + + if(writeFile){ + try { + System.setOut(new PrintStream( + new FileOutputStream("uebung3_2.asu"))); + } catch (FileNotFoundException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + } + System.out.println(l); + } + +} diff --git a/ss2012/AlgoAnim/Teil 3/uebung3_2.asu b/ss2012/AlgoAnim/Teil 3/uebung3_2.asu new file mode 100644 index 00000000..70626dcd --- /dev/null +++ b/ss2012/AlgoAnim/Teil 3/uebung3_2.asu @@ -0,0 +1,263 @@ +%Animal 2 640*480 +title "Russische Bauenmultiplikation" +author "Michael Scholz, Ulf Gebhardt" +{ + codegroup "info" at (10, 75) color (0, 0, 0) highlightColor (0, 0, 0) contextColor (0, 0, 0) font SansSerif size 16 italic depth 1 + addCodeLine "Das hier vorgestellte Verfahren eignet sich fuer die Multiplikation zweier ganzer Zahlen." to "info" + addCodeLine "Die Funktionsweise laesst sich in die folgenden fuenf Schritte gliedern:" to "info" + addCodeLine "1. Schreibe die beiden zu multiplizierenden Zahlen nebeneinander." to "info" indentation 1 + addCodeLine "2. Die linke Zahl wird halbiert (Reste werden abgerundet), die rechte Zahl wird verdoppelt." to "info" indentation 1 + addCodeLine " Die beiden berechneten Zahlen werden in die darauffolgende Zeile geschrieben." to "info" indentation 2 + addCodeLine "3. Schritt 2 wird solange wiederholt, bis in der linken Spalte eine 1 steht." to "info" indentation 1 + addCodeLine "4. Nun streicht man alle Zeilen, in denen die linke Zahl gerade ist." to "info" indentation 1 + addCodeLine "5. Schlussendlich werden alle uebrigen Zahlen der rechten Spalte addiert." to "info" indentation 1 + text "header" "Russische Bauernmultiplikation" (11, 15) color (0, 0, 0) depth 1 font Serif size 24 italic + rectangle "headerBackground" offset (-5, -5) from "header" NW offset (5, 5) from "header" SE color (0, 0, 0) depth 2 filled fillColor (128, 128, 128) +} +{ + codegroup "sourceCode" at (10, 147) color (0, 0, 0) highlightColor (255, 0, 0) contextColor (0, 0, 0) font SansSerif size 12 depth 1 + addCodeLine "public int russe(int a, int b){" to "sourceCode" + addCodeLine "if(a == 1){" to "sourceCode" indentation 1 + addCodeLine "return b;" to "sourceCode" indentation 2 + addCodeLine "}" to "sourceCode" indentation 1 + addCodeLine "if(a % 2 == 1){" to "sourceCode" indentation 1 + addCodeLine "return b + russe(a/2, b*2);" to "sourceCode" indentation 2 + addCodeLine "}else{" to "sourceCode" indentation 1 + addCodeLine "return russe(a/2, b*2);" to "sourceCode" indentation 2 + addCodeLine "}" to "sourceCode" indentation 1 + addCodeLine "}" to "sourceCode" + grid "tb1" (270, 100) lines 7 columns 4 color (0, 0, 0) elementColor (0, 0, 0) fillColor (0, 0, 0) highlightTextColor (0, 0, 0) highlightBackColor (0, 0, 0) depth 1 + 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" + setGridValue "tb1[1][2]" "" + setGridValue "tb1[1][3]" "" + setGridValue "tb1[2][0]" "" + setGridValue "tb1[2][1]" "" + setGridValue "tb1[2][2]" "" + setGridValue "tb1[2][3]" "" + setGridValue "tb1[3][0]" "" + setGridValue "tb1[3][1]" "" + setGridValue "tb1[3][2]" "" + setGridValue "tb1[3][3]" "" + setGridValue "tb1[4][0]" "" + setGridValue "tb1[4][1]" "" + setGridValue "tb1[4][2]" "" + setGridValue "tb1[4][3]" "" + setGridValue "tb1[5][0]" "" + setGridValue "tb1[5][1]" "" + setGridValue "tb1[5][2]" "" + setGridValue "tb1[5][3]" "" + setGridValue "tb1[6][0]" "" + setGridValue "tb1[6][1]" "" + setGridValue "tb1[6][2]" "" + setGridValue "tb1[6][3]" "" refresh + color "tb1" type "fillColor" (255, 255, 255) + hide "info" +} +{ + highlightCode on "sourceCode" line 0 row 0 + unhighlightGridCell "tb1[0][2]" after 0 ticks within 0 ticks + unhighlightGridCell "tb1[0][3]" after 0 ticks within 0 ticks + highlightGridCell "tb1[1][0]" after 100 ticks within 100 ticks + highlightGridCell "tb1[1][1]" after 100 ticks within 100 ticks + setGridValue "tb1[1][0]" "27" refresh + setGridValue "tb1[1][1]" "82" refresh +} +{ + unhighlightGridCell "tb1[1][0]" after 0 ticks within 0 ticks + unhighlightGridCell "tb1[1][1]" after 0 ticks within 0 ticks + unhighlightCode on "sourceCode" line 0 row 0 + highlightCode on "sourceCode" line 1 row 0 +} +{ + unhighlightCode on "sourceCode" line 1 row 0 + highlightCode on "sourceCode" line 4 row 0 +} +{ + unhighlightCode on "sourceCode" line 1 row 0 + unhighlightCode on "sourceCode" line 4 row 0 + highlightCode on "sourceCode" line 5 row 0 + highlightGridCell "tb1[1][2]" after 100 ticks within 100 ticks + highlightGridCell "tb1[1][3]" after 100 ticks within 100 ticks + setGridValue "tb1[1][2]" "Ja" refresh + setGridValue "tb1[1][3]" "82" refresh +} +{ + unhighlightCode on "sourceCode" line 5 row 0 + highlightCode on "sourceCode" line 0 row 0 + unhighlightGridCell "tb1[1][2]" after 0 ticks within 0 ticks + unhighlightGridCell "tb1[1][3]" after 0 ticks within 0 ticks + highlightGridCell "tb1[2][0]" after 100 ticks within 100 ticks + highlightGridCell "tb1[2][1]" after 100 ticks within 100 ticks + setGridValue "tb1[2][0]" "13" refresh + setGridValue "tb1[2][1]" "164" refresh +} +{ + unhighlightGridCell "tb1[2][0]" after 0 ticks within 0 ticks + unhighlightGridCell "tb1[2][1]" after 0 ticks within 0 ticks + unhighlightCode on "sourceCode" line 0 row 0 + highlightCode on "sourceCode" line 1 row 0 +} +{ + unhighlightCode on "sourceCode" line 1 row 0 + highlightCode on "sourceCode" line 4 row 0 +} +{ + unhighlightCode on "sourceCode" line 1 row 0 + unhighlightCode on "sourceCode" line 4 row 0 + highlightCode on "sourceCode" line 5 row 0 + highlightGridCell "tb1[2][2]" after 100 ticks within 100 ticks + highlightGridCell "tb1[2][3]" after 100 ticks within 100 ticks + setGridValue "tb1[2][2]" "Ja" refresh + setGridValue "tb1[2][3]" "82+164" refresh +} +{ + unhighlightCode on "sourceCode" line 5 row 0 + highlightCode on "sourceCode" line 0 row 0 + unhighlightGridCell "tb1[2][2]" after 0 ticks within 0 ticks + unhighlightGridCell "tb1[2][3]" after 0 ticks within 0 ticks + highlightGridCell "tb1[3][0]" after 100 ticks within 100 ticks + highlightGridCell "tb1[3][1]" after 100 ticks within 100 ticks + setGridValue "tb1[3][0]" "6" refresh + setGridValue "tb1[3][1]" "328" refresh +} +{ + unhighlightGridCell "tb1[3][0]" after 0 ticks within 0 ticks + unhighlightGridCell "tb1[3][1]" after 0 ticks within 0 ticks + unhighlightCode on "sourceCode" line 0 row 0 + highlightCode on "sourceCode" line 1 row 0 +} +{ + unhighlightCode on "sourceCode" line 1 row 0 + highlightCode on "sourceCode" line 4 row 0 +} +{ + unhighlightCode on "sourceCode" line 1 row 0 + unhighlightCode on "sourceCode" line 4 row 0 + highlightCode on "sourceCode" line 7 row 0 + highlightGridCell "tb1[3][2]" after 100 ticks within 100 ticks + highlightGridCell "tb1[3][3]" after 100 ticks within 100 ticks + setGridValue "tb1[3][2]" "Nein" refresh + setGridValue "tb1[3][3]" "82+164" refresh +} +{ + highlightCode on "sourceCode" line 0 row 0 + unhighlightCode on "sourceCode" line 7 row 0 + unhighlightGridCell "tb1[3][2]" after 0 ticks within 0 ticks + unhighlightGridCell "tb1[3][3]" after 0 ticks within 0 ticks + highlightGridCell "tb1[4][0]" after 100 ticks within 100 ticks + highlightGridCell "tb1[4][1]" after 100 ticks within 100 ticks + setGridValue "tb1[4][0]" "3" refresh + setGridValue "tb1[4][1]" "656" refresh +} +{ + unhighlightGridCell "tb1[4][0]" after 0 ticks within 0 ticks + unhighlightGridCell "tb1[4][1]" after 0 ticks within 0 ticks + unhighlightCode on "sourceCode" line 0 row 0 + highlightCode on "sourceCode" line 1 row 0 +} +{ + unhighlightCode on "sourceCode" line 1 row 0 + highlightCode on "sourceCode" line 4 row 0 +} +{ + unhighlightCode on "sourceCode" line 1 row 0 + unhighlightCode on "sourceCode" line 4 row 0 + highlightCode on "sourceCode" line 5 row 0 + highlightGridCell "tb1[4][2]" after 100 ticks within 100 ticks + highlightGridCell "tb1[4][3]" after 100 ticks within 100 ticks + setGridValue "tb1[4][2]" "Ja" refresh + setGridValue "tb1[4][3]" "82+164+656" refresh +} +{ + unhighlightCode on "sourceCode" line 5 row 0 + highlightCode on "sourceCode" line 0 row 0 + unhighlightGridCell "tb1[4][2]" after 0 ticks within 0 ticks + unhighlightGridCell "tb1[4][3]" after 0 ticks within 0 ticks + highlightGridCell "tb1[5][0]" after 100 ticks within 100 ticks + highlightGridCell "tb1[5][1]" after 100 ticks within 100 ticks + setGridValue "tb1[5][0]" "1" refresh + setGridValue "tb1[5][1]" "1312" refresh +} +{ + unhighlightGridCell "tb1[5][0]" after 0 ticks within 0 ticks + unhighlightGridCell "tb1[5][1]" after 0 ticks within 0 ticks + unhighlightCode on "sourceCode" line 0 row 0 + highlightCode on "sourceCode" line 1 row 0 +} +{ + unhighlightCode on "sourceCode" line 1 row 0 + highlightCode on "sourceCode" line 2 row 0 + highlightGridCell "tb1[5][2]" after 100 ticks within 100 ticks + highlightGridCell "tb1[5][3]" after 100 ticks within 100 ticks + setGridValue "tb1[5][2]" "Ja" refresh + setGridValue "tb1[5][3]" "82+164+656+1312" refresh + unhighlightGridCell "tb1[5][2]" after 0 ticks within 0 ticks + unhighlightGridCell "tb1[5][3]" after 0 ticks within 0 ticks + grid "tb2" offset (0, 10) from "tb1" SW lines 2 columns 1 color (0, 0, 0) elementColor (0, 0, 0) fillColor (0, 0, 0) highlightTextColor (0, 0, 0) highlightBackColor (0, 0, 0) depth 1 + setGridValue "tb2[0][0]" "Rekursion aufloesen:" + setGridValue "tb2[1][0]" "82+164+656+1312" refresh + color "tb2" type "fillColor" (255, 255, 255) +} +{ + unhighlightCode on "sourceCode" line 2 row 0 + unhighlightCode on "sourceCode" line 0 row 0 +} +{ + highlightCode on "sourceCode" line 5 row 0 + highlightGridCell "tb2[1][0]" after 100 ticks within 100 ticks + setGridValue "tb2[1][0]" "82+164+1968" refresh after 100 ticks within 100 ticks +} +{ + unhighlightGridCell "tb2[1][0]" after 0 ticks within 0 ticks + unhighlightCode on "sourceCode" line 5 row 0 +} +{ + highlightCode on "sourceCode" line 7 row 0 + setGridValue "tb2[1][0]" "82+164+1968" refresh after 100 ticks within 100 ticks +} +{ + unhighlightCode on "sourceCode" line 7 row 0 +} +{ + highlightCode on "sourceCode" line 5 row 0 + highlightGridCell "tb2[1][0]" after 100 ticks within 100 ticks + setGridValue "tb2[1][0]" "82+2132" refresh after 100 ticks within 100 ticks +} +{ + unhighlightGridCell "tb2[1][0]" after 0 ticks within 0 ticks + unhighlightCode on "sourceCode" line 5 row 0 +} +{ + highlightCode on "sourceCode" line 5 row 0 + highlightGridCell "tb2[1][0]" after 100 ticks within 100 ticks + setGridValue "tb2[1][0]" "2214" refresh after 100 ticks within 100 ticks +} +{ + unhighlightCode on "sourceCode" line 5 row 0 +} +{ + codegroup "statement" at (10, 75) color (0, 0, 0) highlightColor (0, 0, 0) contextColor (0, 0, 0) font SansSerif size 16 italic depth 1 + addCodeLine "Erklaerung:" to "statement" + addCodeLine "Die Idee des Verfahrens kann man mit Hilfe des Dualsystems verdeutlichen." to "statement" + addCodeLine "Hierbei wird eine Zahl in ihre Zweierpotenzen zerlegt." to "statement" + addCodeLine "" to "statement" + hide "tb1" "tb2" "sourceCode" +} +{ + addCodeLine "82 * 27 = 82 * (2^0 + 2^1 + 0 * 2^2 + 2^3 + 2^4 )" to "statement" +} +{ + addCodeLine "= 82 * 2^0 + 82 * 2^1 + 82 * 0 + 82 * 2^3 + 82 * 2^4" to "statement" indentation 4 +} +{ + addCodeLine "= 82 + 164 + 0 + 656 + 1312" to "statement" indentation 4 +} +{ + addCodeLine "= 2214" to "statement" indentation 4 +} + diff --git a/ss2012/AlgoAnim/Teil 4/MultiGenerator.java b/ss2012/AlgoAnim/Teil 4/MultiGenerator.java new file mode 100644 index 00000000..958fc820 --- /dev/null +++ b/ss2012/AlgoAnim/Teil 4/MultiGenerator.java @@ -0,0 +1,577 @@ +package generators.maths; + +import generators.framework.Generator; +import generators.framework.GeneratorType; + +import java.awt.Color; +import java.util.Locale; + +import algoanim.primitives.SourceCode; +import algoanim.primitives.StringMatrix; +import algoanim.primitives.generators.Language; +import algoanim.properties.AnimationPropertiesKeys; +import algoanim.properties.RectProperties; +import algoanim.properties.SourceCodeProperties; +import algoanim.properties.TextProperties; +import algoanim.util.Coordinates; +import algoanim.util.Offset; +import algoanim.util.Timing; + +import java.util.Hashtable; + +import de.ahrgr.animal.kohnert.asugen.Font; +import generators.framework.properties.AnimationPropertiesContainer; +import algoanim.animalscript.AnimalScript; + +public class MultiGenerator implements Generator { + + /** + * static variables -> simple testing + */ + static int A = 27; + static int B = 82; + static int HIGHLIGHTING_TIME = 100; //in ticks + static int UNHIGHLIGHTING_TIME = 0; //in ticks + +//========================================================================================================= + + /** + * The concrete language object used for creating output + */ + private Language lang; + + + /** + * The info text as a SourceCode object (first slide) + */ + private SourceCode info = null; + + /** + * The statement text as a SourceCode object (last several slides) + */ + private SourceCode statement = null; + + + /** + * The sourceCode + */ + private SourceCode sc = null; + + + /** + * The tables + */ + private StringMatrix tb1 = null; + private StringMatrix tb2 = null; + + + /** + * int-array with the values of b (only for animation) + */ + private int[] bArray = null; + + + /** + * recursionArray + */ + private int[] recursionArray = null; + + + /** + * unhighlightingTime + */ + private Timing unhighTime = new Timing(UNHIGHLIGHTING_TIME) { + + @Override + public String getUnit() { + // TODO Auto-generated method stub + return "ticks"; + } + }; + + + /** + * highlightTime + */ + private Timing highTime = new Timing(HIGHLIGHTING_TIME) { + + @Override + public String getUnit() { + // TODO Auto-generated method stub + return "ticks"; + } + }; + + + /** + * number of lines for tb1 + */ + private int linesOfTb1 = 0; + + +//========================================================================================================= + + + /** + * Builds the information text for the first page in the animation + */ + public void generateInfoText(){ + + //create first page of animation (info text) as a code group + SourceCodeProperties infoProps = new SourceCodeProperties(); + infoProps.set(AnimationPropertiesKeys.FONT_PROPERTY, new java.awt.Font("SansSerif", Font.SANSSERIF, 16)); + + this.info = lang.newSourceCode(new Coordinates(10, 75), "info", null, infoProps); + this.info.addCodeLine("Das hier vorgestellte Verfahren eignet sich fuer die Multiplikation zweier ganzer Zahlen.", null, 0, null); + this.info.addCodeLine("Die Funktionsweise laesst sich in die folgenden fuenf Schritte gliedern:", null, 0, null); + this.info.addCodeLine("1. Schreibe die beiden zu multiplizierenden Zahlen nebeneinander.", null, 1, null); + this.info.addCodeLine("2. Die linke Zahl wird halbiert (Reste werden abgerundet), die rechte Zahl wird verdoppelt.", null, 1, null); + this.info.addCodeLine(" Die beiden berechneten Zahlen werden in die darauffolgende Zeile geschrieben.", null, 2, null); + this.info.addCodeLine("3. Schritt 2 wird solange wiederholt, bis in der linken Spalte eine 1 steht.", null, 1, null); + this.info.addCodeLine("4. Nun streicht man alle Zeilen, in denen die linke Zahl gerade ist.", null, 1, null); + this.info.addCodeLine("5. Schlussendlich werden alle uebrigen Zahlen der rechten Spalte addiert.", null, 1, null); + } + + + /** + * Builds the header which is shown during the whole animation + */ + public void generateHeader(){ + + //head + TextProperties textProperties = new TextProperties(); + textProperties.set(AnimationPropertiesKeys.COLOR_PROPERTY, Color.BLACK); + textProperties.set(AnimationPropertiesKeys.DEPTH_PROPERTY, 1); + textProperties.set(AnimationPropertiesKeys.FONT_PROPERTY, new java.awt.Font("Serif", Font.SANSSERIF, 24)); + lang.newText(new Coordinates(11, 15), "Russische Bauernmultiplikation", "header", null, textProperties); + + //header background + RectProperties rectProperties = new RectProperties(); + rectProperties.set(AnimationPropertiesKeys.FILL_PROPERTY, Color.GRAY); + rectProperties.set(AnimationPropertiesKeys.FILLED_PROPERTY, true); + rectProperties.set(AnimationPropertiesKeys.DEPTH_PROPERTY, 2); + lang.newRect(new Offset(-5, -5, "header", + AnimalScript.DIRECTION_NW), new Offset(5, 5, "header", + AnimalScript.DIRECTION_SE), "headerBackground", null, + rectProperties); + } + + + /** + * Builds the SourceCode + */ + public void generateSourceCode(){ + + //set the visual properties for the source code + SourceCodeProperties scProps = new SourceCodeProperties(); + scProps.set(AnimationPropertiesKeys.HIGHLIGHTCOLOR_PROPERTY, Color.RED); + + //initialize source code object and add code lines + this.sc = lang.newSourceCode(new Coordinates(10, 147), "sourceCode", null, scProps); + this.sc.addCodeLine("public int russe(int a, int b){", null, 0, null); // 0 + this.sc.addCodeLine("if(a == 1){", null, 1, null); // 1 + this.sc.addCodeLine("return b;", null, 2, null); // 2 + this.sc.addCodeLine("}", null, 1, null); // 3 + this.sc.addCodeLine("if(a % 2 == 1){", null, 1, null); // 4 + this.sc.addCodeLine("return b + russe(a/2, b*2);", null, 2, null); // 5 + this.sc.addCodeLine("}else{", null, 1, null); // 6 + this.sc.addCodeLine("return russe(a/2, b*2);", null, 2, null); // 7 + this.sc.addCodeLine("}", null, 1, null); // 8 + this.sc.addCodeLine("}", null, 0, null); // 9 + + } + + + /** + * calculate needed lines -> animation is more dynamic + * @param a + * @param b + * @return int number of needed lines + */ + public void calculateLines(int a, int b){ + + //calculate needed lines -> animation is more dynamic + int aTemp = a; + int lines = 3; + while(aTemp != 1){ + aTemp = aTemp / 2; + lines++; + } + //initialize the bArray und the recursionArray + this.bArray = new int[lines-1]; + this.recursionArray = new int[lines-1]; + this.linesOfTb1 = lines; + } + + + /** + * Builds the table + * @param a + * @param b + * @param lines + */ + public void generateTableTb1(int a, int b, int lines){ + + //create String[][] data array for tb1 + String[][] tb1Data = new String[lines][4]; + + //fill all fields with "" + for(int i = 0; i < tb1Data.length; i++){ + for(int j = 0; j < tb1Data[i].length; j++){ + tb1Data[i][j] = ""; + } + } + + //fill the known fields + tb1Data[0][0] = "A-Seite"; + tb1Data[0][1] = "B-Seite"; + tb1Data[0][2] = "addieren"; + tb1Data[0][3] = "Summe"; + tb1Data[1][0] = a+""; + tb1Data[1][1] = b+""; + + //create table tb1 + this.tb1 = lang.newStringMatrix(new Coordinates(270, 100), tb1Data, "tb1", null); + this.tb1.changeColor(AnimationPropertiesKeys.FILL_PROPERTY, Color.WHITE, null, null); + + } + + /** + * builds the statement for the last several slides + */ + public void generateStatement(){ + //final statement + SourceCodeProperties statementProps = new SourceCodeProperties(); + statementProps.set(AnimationPropertiesKeys.FONT_PROPERTY, new java.awt.Font("SansSerif", Font.SANSSERIF, 16)); + + this.statement = lang.newSourceCode(new Coordinates(10, 75), "statement", null, statementProps); + this.statement.addCodeLine("Erklaerung:", null, 0, null); + this.statement.addCodeLine("Die Idee des Verfahrens kann man mit Hilfe des Dualsystems verdeutlichen.", null, 0, null); + this.statement.addCodeLine("Hierbei wird eine Zahl in ihre Zweierpotenzen zerlegt.", null, 0, null); + this.statement.addCodeLine("", null, 0, null); //empty line for vertical space + //STEP + lang.nextStep(); + this.statement.addCodeLine("82 * 27 = 82 * (2^0 + 2^1 + 0 * 2^2 + 2^3 + 2^4 )", null, 0, null); + //STEP + lang.nextStep(); + this.statement.addCodeLine("= 82 * 2^0 + 82 * 2^1 + 82 * 0 + 82 * 2^3 + 82 * 2^4", null, 4, null); + //STEP + lang.nextStep(); + this.statement.addCodeLine("= 82 + 164 + 0 + 656 + 1312", null, 4, null); + //STEP + lang.nextStep(); + this.statement.addCodeLine("= 2214", null, 4, null); + } + + + /** + * Draw the table tb2 + * @param bArrayLength + */ + public void drawTb2(int bArrayLength){ + + //create String[][] data array for tb2 + String[][] tb2Data = new String[2][1]; + tb2Data[0][0] = "Rekursion aufloesen:"; + + String tmp = ""; + for(int i = 1; i < bArrayLength; i++){ + if(this.bArray[i] != 0){ + tmp = tmp+this.bArray[i]; + if(i+1 != bArrayLength){ + tmp = tmp+"+"; + } + } + } + tb2Data[1][0] = tmp; + + + //create table tb2 + if(this.tb2 != null){ + this.tb2.put(1, 0, tmp, this.highTime, this.highTime); + }else{ + this.tb2 = lang.newStringMatrix(new Offset(0, 10, this.tb1, AnimalScript.DIRECTION_SW), tb2Data, "tb2", null); + this.tb2.changeColor(AnimationPropertiesKeys.FILL_PROPERTY, Color.WHITE, null, null); + } + } + + + /** + * Generates the animation of the recursion flow + */ + public void generateRecursion(){ + + //draw tb2 + drawTb2(this.bArray.length); + +//STEP + lang.nextStep(); + + int newLineNumber = 0; + int oldLineNumber = 0; + this.sc.unhighlight(2); //"return b" + for(int i = this.bArray.length-1; i > 1; i--){ + oldLineNumber = newLineNumber; + if(this.recursionArray[i-1] == 0){ + newLineNumber = 5; + }else{ + newLineNumber = 7; + } + if(oldLineNumber == 5){ + this.tb2.unhighlightCell(1, 0, this.unhighTime, this.unhighTime); + } + this.sc.unhighlight(oldLineNumber); +//STEP + lang.nextStep(); + this.sc.highlight(newLineNumber); + if(newLineNumber == 5){ + this.tb2.highlightCell(1, 0, this.highTime, this.highTime); + } + //update tb2 + this.bArray[i-1] = this.bArray[i-1] + this.bArray[i]; + drawTb2(i); +//STEP + lang.nextStep(); + } + this.sc.unhighlight(oldLineNumber); + } + + /** + * logical method: calls the needed methods for generating the animation + * @param a + * @param b + */ + public void multiply(int a, int b){ + + //generate information text and the header + generateInfoText(); + generateHeader(); + +//STEP + lang.nextStep(); + this.info.hide(); + + //generate SourceCode + generateSourceCode(); + + //calculate needed lines and generate table + calculateLines(a, b); + generateTableTb1(a, b, this.linesOfTb1); + +//STEP + lang.nextStep(); + + //higlight line 0 + this.sc.highlight(0); + + russe(a, b, sc, tb1, 1, ""); + + //unhighlight last line of tb1 + this.tb1.unhighlightCellColumnRange(this.linesOfTb1-2, 2, 3, this.unhighTime, this.unhighTime); + + //generate recursion animation + generateRecursion(); + +//STEP + lang.nextStep(); + this.tb1.hide(); + this.tb2.hide(); + this.sc.hide(); + + //generate statement + generateStatement(); + + } + + /** + * the algorithm which is used in the animation + * @param a + * @param b + * @param code + * @param tb1 + * @param line + * @param sum + * @return the product of a and b (a*b) + */ + public int russe(int a, int b, SourceCode code, StringMatrix tb1, int line, String sum){ + + int aTb = a; + int bTb = b; + + this.tb1.unhighlightCellColumnRange(line-1, 2, 3, this.unhighTime, this.unhighTime); + this.tb1.highlightCellColumnRange(line, 0, 1, this.highTime, this.highTime); + this.tb1.put(line, 0, a+"", null, null); //update column 0 (a) + this.tb1.put(line, 1, b+"", null, null); //update column 1 (b) + + //STEP + lang.nextStep(); + this.tb1.unhighlightCellColumnRange(line, 0, 1, this.unhighTime, this.unhighTime); + code.unhighlight(0); + code.highlight(1); + + //STEP + lang.nextStep(); + + if(a == 1){ + code.toggleHighlight(1, 2); + + //write last line + sum = sum+"+"+b; + //update table + this.tb1.highlightCellColumnRange(line, 2, 3, this.highTime, this.highTime); + this.tb1.put(line, 2, "Ja", null, null); //update column 2 (addieren) + this.tb1.put(line, 3, sum, null, null); //update column 3 (Summe) + this.bArray[line] = b; + return b; + } + if(line != 1){ // first line + aTb = aTb/2; + bTb = bTb*2; + } + code.toggleHighlight(1, 4); + + //STEP + lang.nextStep(); + code.unhighlight(1); + + if(a % 2 == 1){ + code.toggleHighlight(4, 5); + + if(line == 1){ + sum = b+""; + }else{ + if(sum.equals("")){ + sum = b+"";} + else{ + sum = sum+"+"+b; + } + } + //update table + this.tb1.highlightCellColumnRange(line, 2, 3, this.highTime, this.highTime); + this.tb1.put(line, 2, "Ja", null, null); //update column 2 (addieren) + this.tb1.put(line, 3, sum, null, null); //update column 3 (Summe) + + //STEP + lang.nextStep(); + code.unhighlight(5); + code.highlight(0); + //safe actual value of b in bArray + this.bArray[line] = b; + this.recursionArray[line] = 0; + return b + russe(a/2, b*2, code, tb1, line+1, sum); + } + else{ + code.toggleHighlight(4, 7); + //update table + this.tb1.highlightCellColumnRange(line, 2, 3, this.highTime, this.highTime); + this.tb1.put(line, 2, "Nein", null, null); //update column 2 (addieren) + this.tb1.put(line, 3, sum, null, null); //update column 3 (Summe) + + //STEP + lang.nextStep(); + code.highlight(0); + code.unhighlight(7); + //safe 0 in bArray + this.bArray[line] = 0; + this.recursionArray[line] = 1; + return russe(a/2, b*2, code, tb1, line+1, sum); + } + } + + + public void init(){ + lang = new AnimalScript("Russische Bauenmultiplikation [DE]", "Ulf Gebhardt, Michael Scholz", 800, 600); + } + + public String generate(AnimationPropertiesContainer props,Hashtable primitives) { + B = (Integer)primitives.get("b"); + A = (Integer)primitives.get("a"); + + init(); //initialize the language + + lang.setStepMode(true); + this.multiply(A, B); + + return lang.toString(); + } + + public String getName() { + return "Russische Bauenmultiplikation [DE]"; + } + + public String getAlgorithmName() { + return "Russische Bauenmultiplikation"; + } + + public String getAnimationAuthor() { + return "Ulf Gebhardt, Michael Scholz"; + } + + public String getDescription(){ + return "Das hier vorgestellte Verfahren eignete sich fŸr die Multiplikation zweier ganzer Zahlen. Es ist auch unter den" + +"\n" + +"Namen Ägyptischen Multiplizieren, Abessinische Bauernregel oder Verdopplungs-Halbierungs-Methode" + +"\n" + +"bekannt. Die Geschichte des vorgestellten Rechenverfahrens führt bis auf die Ägypter zurŸck. Sie" + +"\n" + +"nutzten diese Methode nachweislich zur Multiplikation zweier ganzer Zahlen. Das Verfahren baut auf dem Teile und Herrsche Prinzip" + +"\n" + +"(Divide et impera ) auf und lŠsst sich somit leicht mittels Rekursion implementieren.\n" + +"\n" + +"Die Funktionsweise lässt sich in die folgenden fünf Schritte gliedern:\n" + +"\n" + +"1. Schreibe die beiden zu multiplizierenden Zahlen nebeneinander.\n" + +"\n" + +"2. Die linke Zahl wird halbiert (Reste werden abgerundet), die rechte Zahl wird verdoppelt.\n" + +"\n" + +"\t Die beiden berechneten Zahlen werden in die darauffolgende Zeile geschrieben.\n" + +"\n" + +"3. Schritt 2 wird solange wiederholt, bis in der linken Spalte eine 1 steht.\n" + +"\n" + +"4. Nun streicht man alle Zeilen, in denen die linke Zahl gerade ist.\n" + +"\n" + +"5. Schlussendlich werden alle übrigen Zahlen der rechten Spalte addiert." + +"\n" + +" "; + } + + public String getCodeExample(){ + return "public int russe(int a, int b){" + +"\n" + +" if(a == 1){" + +"\n" + +" return b;" + +"\n" + +" }" + +"\n" + +" if(a % 2 == 1){" + +"\n" + +" return b + russe(a/2, b*2);" + +"\n" + +" }else{" + +"\n" + +" return russe(a/2, b*2);" + +"\n" + +" }" + +"\n" + +"}" + +"\n"; + } + + public String getFileExtension(){ + return "asu"; + } + + public Locale getContentLocale() { + return Locale.GERMAN; + } + + public GeneratorType getGeneratorType() { + return new GeneratorType(GeneratorType.GENERATOR_TYPE_MORE); + } + + public String getOutputLanguage() { + return Generator.JAVA_OUTPUT; + } + +} \ No newline at end of file diff --git a/ss2012/AlgoAnim/Teil 4/MultiGenerator.xml b/ss2012/AlgoAnim/Teil 4/MultiGenerator.xml new file mode 100644 index 00000000..48a286ba --- /dev/null +++ b/ss2012/AlgoAnim/Teil 4/MultiGenerator.xml @@ -0,0 +1,13 @@ + + + + + a + 27 + + + b + 82 + + + \ No newline at end of file diff --git a/ss2012/AlgoAnim/Teil 4/uebung_4.pdf b/ss2012/AlgoAnim/Teil 4/uebung_4.pdf index 599efbbc..9eb76394 100644 Binary files a/ss2012/AlgoAnim/Teil 4/uebung_4.pdf and b/ss2012/AlgoAnim/Teil 4/uebung_4.pdf differ diff --git a/ss2012/AlgoAnim/Teil 5/uebung_5.pdf b/ss2012/AlgoAnim/Teil 5/uebung_5.pdf index cc334b91..182e4be4 100644 Binary files a/ss2012/AlgoAnim/Teil 5/uebung_5.pdf and b/ss2012/AlgoAnim/Teil 5/uebung_5.pdf differ diff --git a/ss2012/IT Sicherheit/Folien/3-IAMPrivacy-01.pdf b/ss2012/IT Sicherheit/Folien/3,4-IAMPrivacy-01.pdf similarity index 100% rename from ss2012/IT Sicherheit/Folien/3-IAMPrivacy-01.pdf rename to ss2012/IT Sicherheit/Folien/3,4-IAMPrivacy-01.pdf diff --git a/ss2012/IT Sicherheit/Folien/5-SecurityEngineering-01.pdf b/ss2012/IT Sicherheit/Folien/5-SecurityEngineering-01.pdf new file mode 100644 index 00000000..471fb117 Binary files /dev/null and b/ss2012/IT Sicherheit/Folien/5-SecurityEngineering-01.pdf differ diff --git a/ss2012/IT Sicherheit/Gastvorträge/Jan_Camensich.pdf b/ss2012/IT Sicherheit/Gastvorträge/Jan_Camensich.pdf new file mode 100644 index 00000000..e6f43247 Binary files /dev/null and b/ss2012/IT Sicherheit/Gastvorträge/Jan_Camensich.pdf differ diff --git a/ss2012/IT Sicherheit/Uebungen/1/exercise1L.pdf b/ss2012/IT Sicherheit/Uebungen/1/exercise1L.pdf new file mode 100644 index 00000000..bb97e311 Binary files /dev/null and b/ss2012/IT Sicherheit/Uebungen/1/exercise1L.pdf differ diff --git a/ss2012/IT Sicherheit/Uebungen/2/exercise2.pdf b/ss2012/IT Sicherheit/Uebungen/2/exercise2.pdf new file mode 100644 index 00000000..c93216f4 Binary files /dev/null and b/ss2012/IT Sicherheit/Uebungen/2/exercise2.pdf differ diff --git a/ss2012/IT Sicherheit/Uebungen/2/exercise2L.pdf b/ss2012/IT Sicherheit/Uebungen/2/exercise2L.pdf new file mode 100644 index 00000000..80426ceb Binary files /dev/null and b/ss2012/IT Sicherheit/Uebungen/2/exercise2L.pdf differ diff --git a/ss2012/IT Sicherheit/Uebungen/2/hausuebung2.odt b/ss2012/IT Sicherheit/Uebungen/2/hausuebung2.odt new file mode 100644 index 00000000..9a794ba0 Binary files /dev/null and b/ss2012/IT Sicherheit/Uebungen/2/hausuebung2.odt differ diff --git a/ss2012/Mathe III/Klausurinfo.rtf b/ss2012/Mathe III/Klausurinfo.rtf new file mode 100644 index 00000000..56dd28ee --- /dev/null +++ b/ss2012/Mathe III/Klausurinfo.rtf @@ -0,0 +1,7 @@ +{\rtf1\ansi\ansicpg1252\cocoartf1138\cocoasubrtf320 +{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\paperw11900\paperh16840\margl1440\margr1440\vieww10800\viewh8400\viewkind0 +\pard\tx566\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803\pardirnatural + +\f0\fs24 \cf0 50 Prozent der Klausur wird aus Statistik und Stochastik bestehen (\'dcbungen 1-3)} \ No newline at end of file diff --git a/ss2012/Mathe III/Uebungen/Uebung01_LSG.pdf b/ss2012/Mathe III/Uebungen/Uebung01_LSG.pdf new file mode 100644 index 00000000..e6a9485d Binary files /dev/null and b/ss2012/Mathe III/Uebungen/Uebung01_LSG.pdf differ diff --git a/ss2012/Mathe III/Uebungen/Uebung02_LSG.pdf b/ss2012/Mathe III/Uebungen/Uebung02_LSG.pdf new file mode 100644 index 00000000..190c65d8 Binary files /dev/null and b/ss2012/Mathe III/Uebungen/Uebung02_LSG.pdf differ diff --git a/ss2012/Mathe III/Uebungen/Uebung03.pdf b/ss2012/Mathe III/Uebungen/Uebung03.pdf new file mode 100644 index 00000000..aaa76322 Binary files /dev/null and b/ss2012/Mathe III/Uebungen/Uebung03.pdf differ diff --git a/ss2012/Mathe III/Uebungen/Uebung04.pdf b/ss2012/Mathe III/Uebungen/Uebung04.pdf new file mode 100644 index 00000000..dd567d8c Binary files /dev/null and b/ss2012/Mathe III/Uebungen/Uebung04.pdf differ diff --git a/ss2012/Mathe III/Uebungen/Uebung05.pdf b/ss2012/Mathe III/Uebungen/Uebung05.pdf new file mode 100644 index 00000000..b0a121b2 Binary files /dev/null and b/ss2012/Mathe III/Uebungen/Uebung05.pdf differ diff --git a/ss2012/Mathe III/info2012.pdf b/ss2012/Mathe III/info2012.pdf index 86c15812..ac8a9562 100644 Binary files a/ss2012/Mathe III/info2012.pdf and b/ss2012/Mathe III/info2012.pdf differ diff --git a/ss2012/Mathe III/statistischeTabellen.pdf b/ss2012/Mathe III/statistischeTabellen.pdf new file mode 100644 index 00000000..a89a2318 Binary files /dev/null and b/ss2012/Mathe III/statistischeTabellen.pdf differ diff --git a/ws2011/BP/QS-Dokument/QS-Dokument.pdf b/ws2011/BP/QS-Dokument/QS-Dokument.pdf index 3ccbf99f..8d25996b 100644 Binary files a/ws2011/BP/QS-Dokument/QS-Dokument.pdf and b/ws2011/BP/QS-Dokument/QS-Dokument.pdf differ