<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://wiki.stageing.freitagsrunde.org//api.php?action=feedcontributions&amp;feedformat=atom&amp;user=DStulle</id>
	<title>FreitagsrundenWiki - Benutzerbeiträge [de]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.stageing.freitagsrunde.org//api.php?action=feedcontributions&amp;feedformat=atom&amp;user=DStulle"/>
	<link rel="alternate" type="text/html" href="wiki.stageing.freitagsrunde.org//Spezial:Beitr%C3%A4ge/DStulle"/>
	<updated>2026-10-29T08:32:36Z</updated>
	<subtitle>Benutzerbeiträge</subtitle>
	<generator>MediaWiki 1.45.6</generator>
	<entry>
		<id>wiki.stageing.freitagsrunde.org//index.php?title=C-Kurs/%C3%9Cbungsaufgaben&amp;diff=12595</id>
		<title>C-Kurs/Übungsaufgaben</title>
		<link rel="alternate" type="text/html" href="wiki.stageing.freitagsrunde.org//index.php?title=C-Kurs/%C3%9Cbungsaufgaben&amp;diff=12595"/>
		<updated>2009-09-24T12:55:53Z</updated>

		<summary type="html">&lt;p&gt;DStulle: /* Die Aufgaben */ Folien verlinkt&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Wir haben jeder Aufgabe eine Einschätzung ihrer Schwierigkeit auf einer Skala von 1 bis 10 vorangestellt. Bei dieser Einschätzung sind wir von einem Gehirn ausgegangen, für welches das jeweilige Themengebiet völlig neu ist, das jedoch schon ein ganz gutes Verständnis dafür hat wie eine Programmiersprache denn so funktioniert. &lt;br /&gt;
Entsprechend kann eine schwer bewertete Aufgabe aus einem frühen Themengebiet für manch einen sehr einfach oder eine leicht bewertete aus einem späten Themengebiet für einen anderen sehr schwer sein. Es ist nur ein Wert, der euch helfen soll eure nächste Aufgabe zu wählen. &lt;br /&gt;
&lt;br /&gt;
Falls ihr Anmerkungen zu den Aufgaben habt, könnt ihr die Diskussionsseiten der jeweiligen Aufgaben nutzen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Schwierigkeitsgrade ==&lt;br /&gt;
&lt;br /&gt;
#  Reines Tutorial. Man muss nicht viel selbst denken&lt;br /&gt;
#  ...&lt;br /&gt;
#  Leichte Übungsaufgabe. Studies, die noch eher unsicher sind werden hier gut begleitet.&lt;br /&gt;
#  ...&lt;br /&gt;
#  Typische Aufgabe. Man muss den Kopf benutzen, bekommt an schwierigen Stellen aber Hilfestellungen.&lt;br /&gt;
#  ...&lt;br /&gt;
#  Herausfordernd, eher etwas für Studies die etwas fitter sind.&lt;br /&gt;
#  ...&lt;br /&gt;
#  Auch erfahrene Programmierer werden hier ein bis zwei Übungen beschäftigt sein&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
#  Tja, die Idee war da. Wir finden sie auch gut, aber es könnte wirklich anstrengend werden.&lt;br /&gt;
&lt;br /&gt;
== Die Aufgaben ==&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;4&amp;quot; cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
 |- bgcolor=&amp;quot;#D8D8D8&amp;quot;&lt;br /&gt;
 !Aufgabe&lt;br /&gt;
 !Schwierigkeit&lt;br /&gt;
 !Vorwissen&lt;br /&gt;
 !Lerneffekte&lt;br /&gt;
 !Bearbeiter&lt;br /&gt;
 !Korrektur gelesen&lt;br /&gt;
 !Musterlösung&lt;br /&gt;
 |- bgcolor=&amp;quot;#F5F5F5&amp;quot;&lt;br /&gt;
 | [[Ckurs2009/Von der Konsole zum HelloWorld | Von der Konsole zum HelloWorld]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |1&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |1. VL&lt;br /&gt;
 | Konsole benutzen, Hello World&lt;br /&gt;
 | Sebastian D.&lt;br /&gt;
 | [[Benutzer:Mario|Mario]]&lt;br /&gt;
 | &lt;br /&gt;
 |- bgcolor=&amp;quot;#E8E8E8&amp;quot;&lt;br /&gt;
 | [[Ckurs2009/Fakultät | Fakultät]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |2&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |1. VL&lt;br /&gt;
 | Schleifen&lt;br /&gt;
 | Sebastian D.&lt;br /&gt;
 | Daniel&lt;br /&gt;
 |  &lt;br /&gt;
 |- bgcolor=&amp;quot;#F5F5F5&amp;quot;&lt;br /&gt;
 | [[Ckurs2009/Base64 | Base64]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |6&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |1. VL&lt;br /&gt;
 | Operatoren&lt;br /&gt;
 | Sebastian D.&lt;br /&gt;
 | &lt;br /&gt;
 | [[Ckurs2009/Base64/Musterlösung | Base64]]&lt;br /&gt;
 |- bgcolor=&amp;quot;#E8E8E8&amp;quot;&lt;br /&gt;
 | [[Ckurs2009/EingabeAusgabe | Ein- und Ausgabe]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |1&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |2. VL&lt;br /&gt;
 | Einlesen von Benutzereingaben&amp;lt;br&amp;gt;Ausgabe derselben&lt;br /&gt;
 | [[Benutzer:Mario|Mario]]&lt;br /&gt;
 | nion&lt;br /&gt;
 | [[Ckurs2009/EingabeAusgabe/Musterlösung | Ein- und Ausgabe]]&lt;br /&gt;
 |- bgcolor=&amp;quot;#F5F5F5&amp;quot;&lt;br /&gt;
 | [[Ckurs2009/Taschenrechner | Taschenrechner]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |3&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |2. VL&lt;br /&gt;
 | Eingabe+Ausgabe&amp;lt;br&amp;gt;Mathematische Operatoren&lt;br /&gt;
 | [[Benutzer:Mario|Mario]]&lt;br /&gt;
 | [[Benutzer:Tkroenert|TKroenert]]&lt;br /&gt;
 | [[Ckurs2009/Taschenrechner/Musterlösung | Taschenrechner]]&lt;br /&gt;
 |- bgcolor=&amp;quot;#E8E8E8&amp;quot;&lt;br /&gt;
 | [[Ckurs2009/VerschachtelteSchleifen | Verschachtelte Schleifen]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |3&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |2. VL&lt;br /&gt;
 | Umgang mit mehreren verschachtelten Schleifen&lt;br /&gt;
 | [[Benutzer:Dank|Daniel K.]]&lt;br /&gt;
 | AlexanderK&lt;br /&gt;
 |&lt;br /&gt;
 |- bgcolor=&amp;quot;#F5F5F5&amp;quot;&lt;br /&gt;
 | [[Ckurs2009/Glückspiel | Glücksspiel]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |3&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |2. VL&lt;br /&gt;
 | Anwenden von Fallunterscheidungen und Einlesen von Werten aus der Konsole&lt;br /&gt;
 | [[Benutzer:Dank|Daniel K.]]&lt;br /&gt;
 | AlexanderK&lt;br /&gt;
 | [[Ckurs2009/Glückspiel/Musterlösung | Glückspiel]]&lt;br /&gt;
 |- bgcolor=&amp;quot;#E8E8E8&amp;quot;&lt;br /&gt;
 | [[Ckurs2009/Wochentag | Wochentagsrechnung]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |5&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |2. VL&lt;br /&gt;
 | Einlesen von Benutzereingaben&amp;lt;br&amp;gt;Mathematikverständniss&lt;br /&gt;
 | [[Benutzer:Mario|Mario]]&lt;br /&gt;
 | nion (Musterlösung noch nicht vorhanden)&lt;br /&gt;
 | &lt;br /&gt;
 |- bgcolor=&amp;quot;#F5F5F5&amp;quot;&lt;br /&gt;
 | [[Ckurs2009/Taschenrechner2.0 | Taschenrechner &#039;&#039;2.0&#039;&#039;]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |8&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |2. VL&lt;br /&gt;
 | Knobeln&amp;lt;br&amp;gt;Komplexes Aufgaben lösen&lt;br /&gt;
 | [[Benutzer:Mario|Mario]]&lt;br /&gt;
 | Martin K.&lt;br /&gt;
 | [[Ckurs2009/Taschenrechner2.0/Musterlösung | Taschenrechner &#039;&#039;2.0&#039;&#039;]]&lt;br /&gt;
 |- bgcolor=&amp;quot;#E8E8E8&amp;quot;&lt;br /&gt;
 | [[Ckurs2009/Call by reference | Call by reference]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |4&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |3. VL&lt;br /&gt;
 | Einfache Anwendung von &amp;amp;/*&lt;br /&gt;
 | sping&lt;br /&gt;
 | nion&lt;br /&gt;
 | [[Ckurs2009/Call by reference/Musterlösung | Call by reference]]&lt;br /&gt;
 |- bgcolor=&amp;quot;#F5F5F5&amp;quot;&lt;br /&gt;
 | [[Ckurs2009/Text processing | Text processing]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |4, 6&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |3. VL&lt;br /&gt;
 | Strings&amp;lt;br&amp;gt;Pointer-Arithmetik&amp;lt;br&amp;gt;Pointer auf Pointer&amp;lt;br&amp;gt;Refactoring&lt;br /&gt;
 | sping&lt;br /&gt;
 | [[Benutzer:Mario|Mario]]&lt;br /&gt;
 | [[Ckurs2009/Text processing/Musterlösung | Text processing]]&lt;br /&gt;
 |- bgcolor=&amp;quot;#E8E8E8&amp;quot;&lt;br /&gt;
 | [[Ckurs2009/Palindrome | Palindrome]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |4&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |3. VL&lt;br /&gt;
 | Pointer und Strings&lt;br /&gt;
 | [[Benutzer:Dank|Daniel K.]]&lt;br /&gt;
 | nion&lt;br /&gt;
 | [[Ckurs2009/Palindrome/Musterlösung | Palindrome ]]&lt;br /&gt;
 | &lt;br /&gt;
 |- bgcolor=&amp;quot;#F5F5F5&amp;quot;&lt;br /&gt;
 | [[Ckurs2009/(Pointer) Swapping | (Pointer) Swapping]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |5&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |3. VL&lt;br /&gt;
 | Pointer und Arrays benutzen, generisches swap&lt;br /&gt;
 | Katrin&lt;br /&gt;
 |&lt;br /&gt;
 | [[Ckurs2009/(Pointer) Swapping/Musterlösung | (Pointer) Swapping]]&lt;br /&gt;
 |- bgcolor=&amp;quot;#E8E8E8&amp;quot;&lt;br /&gt;
 | [[Ckurs2009/Matrizenmultiplikation | Matrizenmultiplikation]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |6&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |3. VL&lt;br /&gt;
 | Mehrdimensionale Arrays&amp;lt;br&amp;gt;const correctness&lt;br /&gt;
 | sping&lt;br /&gt;
 | [[Benutzer:Mario|Mario]]&lt;br /&gt;
 | [[Ckurs2009/Matrizenmultiplikation/Musterlösung | Matrizenmultiplikation]]&lt;br /&gt;
 |- bgcolor=&amp;quot;#F5F5F5&amp;quot;&lt;br /&gt;
 | [[Ckurs2009/Arrayuebergabe | Arrayuebergabe]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |4/5&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; | 4. VL&lt;br /&gt;
 | Einlesen von Benutzereingaben&amp;lt;br&amp;gt;Pointer und Pointerarithmetik&lt;br /&gt;
 | nion&lt;br /&gt;
 | Martin K.&lt;br /&gt;
 | [[Ckurs2009/Arrayuebergabe/Musterlösung | Arrayuebergabe]]&lt;br /&gt;
 |- bgcolor=&amp;quot;#E8E8E8&amp;quot;&lt;br /&gt;
 | [[Ckurs2009/Studentendatenbank | Studentendatenbank]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |4&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; | 4. VL&lt;br /&gt;
 | struct, Pointer, Arrays&lt;br /&gt;
 | AlexanderK&lt;br /&gt;
 |&lt;br /&gt;
 | [[Ckurs2009/Studentendatenbank/Musterlösung | Studentendatenbank]]&lt;br /&gt;
 |- bgcolor=&amp;quot;#F5F5F5&amp;quot;&lt;br /&gt;
 | [[Ckurs2009/Sammelbestellung | Sammelbestellung]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |2-5&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |4. VL&lt;br /&gt;
 | Listen, Pointer, Speicherverwaltung&lt;br /&gt;
 | Florian S.&lt;br /&gt;
 | [[Benutzer:Mario|Mario]]&lt;br /&gt;
 |  [[Ckurs2009/Sammelbestellung/Musterlösung | Sammelbestellung]] &lt;br /&gt;
 |- bgcolor=&amp;quot;#E8E8E8&amp;quot;&lt;br /&gt;
 | [[Ckurs2009/Zahlen_sagen | Zahlen sagen]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |5&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |4. VL&lt;br /&gt;
 | Umgang mit Zeichenketten&lt;br /&gt;
 | Martin K.&lt;br /&gt;
 | &lt;br /&gt;
 | [[Ckurs2009/Zahlen_sagen/Musterlösung | Zahlen sagen]]&lt;br /&gt;
 |- bgcolor=&amp;quot;#E8E8E8&amp;quot;&lt;br /&gt;
 | [[Ckurs2009/Compiler, Präprozessor, Header Files | Compiler, Präprozessor, Header Files]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |3&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |5. VL&lt;br /&gt;
 | Arbeiten mit mehreren Quellcode-Dateien, Kompilieren und Linken, Header-Dateien und #include, debugging-Makro verwenden&lt;br /&gt;
 | Katrin&lt;br /&gt;
 | &lt;br /&gt;
 | [https://wiki.freitagsrunde.org/Ckurs2009/Vortrag05 siehe Folien]&lt;br /&gt;
 |- bgcolor=&amp;quot;#F5F5F5&amp;quot;&lt;br /&gt;
 | [[Ckurs2009/Bus Error | Bus Error]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |8&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |5. VL&lt;br /&gt;
 | Pointer, wie entsteht ein bus error&lt;br /&gt;
 | Katrin&lt;br /&gt;
 | &lt;br /&gt;
 | &lt;br /&gt;
 |- bgcolor=&amp;quot;#E8E8E8&amp;quot;&lt;br /&gt;
 | [[Ckurs2009/BubbleSortDebug | BubbleSort Debugging]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; | 5&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; | 6. VL&lt;br /&gt;
 | Debuggen eines Programmes mit gdb&lt;br /&gt;
 | aeichner&lt;br /&gt;
 |&lt;br /&gt;
 | [[Ckurs2009/BubbleSortDebug/Musterlösung | BubbleSort Debugging]]&lt;br /&gt;
 |- bgcolor=&amp;quot;#F5F5F5&amp;quot;&lt;br /&gt;
 | [[Ckurs2009/Debug | Debugging]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; | 1-8&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; | 6. VL&lt;br /&gt;
 | Debuggen einer Anwendung nach Wahl&lt;br /&gt;
 | aeichner&lt;br /&gt;
 |&lt;br /&gt;
 | &lt;br /&gt;
 |- bgcolor=&amp;quot;#E8E8E8&amp;quot;&lt;br /&gt;
 | [[Ckurs2009/Code Layout | Code Layout]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |3&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |7. VL&lt;br /&gt;
 | Kleinere Codeschipsel mit kleinen Unsauberkeiten&lt;br /&gt;
 | Daniel&lt;br /&gt;
 | &lt;br /&gt;
 | [[Ckurs2009/Code Layout/Musterlösung | Code Layout]]&lt;br /&gt;
 |- bgcolor=&amp;quot;#F5F5F5&amp;quot;&lt;br /&gt;
 | [[Ckurs2009/Refactoring | Refactoring]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |5-9&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |7. VL&lt;br /&gt;
 | Wie verbessere ich den Quellcode eines Programmes.&lt;br /&gt;
 | Daniel&lt;br /&gt;
 | &lt;br /&gt;
 | [[Ckurs2009/Refactoring/Musterlösung | Refactoring]]&lt;br /&gt;
 |- bgcolor=&amp;quot;#E8E8E8&amp;quot;&lt;br /&gt;
 | [[Ckurs2009/Cat | Cat]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; | 6&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; | ....&lt;br /&gt;
 | Arbeiten mit Dateien&amp;lt;br&amp;gt;Kommandozeilenparameter&lt;br /&gt;
 | nion&lt;br /&gt;
 | sping&lt;br /&gt;
 | vorhanden&lt;br /&gt;
 |- bgcolor=&amp;quot;#F5F5F5&amp;quot;&lt;br /&gt;
 | [[Ckurs2009/Pong | Pong]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; | 7&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; | ...&lt;br /&gt;
 | allgemeiner Programmablauf, fortgeschrittene Konsolenausgaben/eingaben&lt;br /&gt;
 | AlexanderK&lt;br /&gt;
 |&lt;br /&gt;
 | vorhanden &lt;br /&gt;
 |- bgcolor=&amp;quot;#E8E8E8&amp;quot;&lt;br /&gt;
 | [[Ckurs2009/Buchhaltung | Buchhaltung]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; | 6&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; | ....&lt;br /&gt;
 | Lesen aus Dateien&lt;br /&gt;
 | reiner&lt;br /&gt;
 | &lt;br /&gt;
 | &lt;br /&gt;
 |- bgcolor=&amp;quot;#F5F5F5&amp;quot;&lt;br /&gt;
 | [[Ckurs2009/StringArraySortieren | StringArraySortieren]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; | 7&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; | ...&lt;br /&gt;
 | Konsolparameter, Funktionspointer, stdlib&lt;br /&gt;
 | reiner&lt;br /&gt;
 |&lt;br /&gt;
 | vorhanden&lt;br /&gt;
 |- bgcolor=&amp;quot;#E8E8E8&amp;quot;&lt;br /&gt;
 | [[Ckurs/integral | integral]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; | 2&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; | ....&lt;br /&gt;
 | Funktionspointer&lt;br /&gt;
 | reiner&lt;br /&gt;
 | &lt;br /&gt;
 | vorhanden &lt;br /&gt;
 |- bgcolor=&amp;quot;#F5F5F5&amp;quot;&lt;br /&gt;
 | [[Ckurs/forschleife | forschleife]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; | 2&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; | ...&lt;br /&gt;
 | Bug&lt;br /&gt;
 | reiner&lt;br /&gt;
 | nion&lt;br /&gt;
 | vorhanden&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Kleine und große Probleme ==&lt;br /&gt;
&lt;br /&gt;
* Die Tubit-Accounts haben nicht /bin/bash als shell, so dass die &amp;lt;strong&amp;gt;Cursortasten&amp;lt;/strong&amp;gt; nicht funktionieren. Workaround: als erstes Kommando &#039;bash&#039; eingeben, man sieht dann auch in welchem Verzeichnis man gerade ist.&lt;br /&gt;
* wenn man nur den Promt &#039;bash-0.12&#039; oder so erhält, also ohne das Verzeichnis in dem man ist, folgendes Kommando eingeben: &amp;lt;tt&amp;gt;export PS1=&#039;\u@\h:\w$ &#039;&amp;lt;/tt&amp;gt; oder zum dauerhaften Speichern: &amp;lt;tt&amp;gt; echo &amp;quot;export PS1=&#039;\u@\h:\w$ &#039;&amp;quot; &amp;gt;&amp;gt; ~/.bashrc &amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Musterlösungen ==&lt;br /&gt;
Die Lösungen zu den Aufgaben werden nach den jeweiligen Übungen hier veröffentlicht. Falls dies nicht geschieht, bitte den zuständigen Tutor fragen.&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* [[Ckurs2009/Feedback|Feedback zum Kurs 2009]]&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:CKurs]]&lt;br /&gt;
[[Kategorie:CKurs Aufgaben]]&lt;/div&gt;</summary>
		<author><name>DStulle</name></author>
	</entry>
	<entry>
		<id>wiki.stageing.freitagsrunde.org//index.php?title=C-Kurs/%C3%9Cbungsaufgaben&amp;diff=12594</id>
		<title>C-Kurs/Übungsaufgaben</title>
		<link rel="alternate" type="text/html" href="wiki.stageing.freitagsrunde.org//index.php?title=C-Kurs/%C3%9Cbungsaufgaben&amp;diff=12594"/>
		<updated>2009-09-24T12:49:21Z</updated>

		<summary type="html">&lt;p&gt;DStulle: /* Die Aufgaben */ Musterlösung freigeschaltet&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Wir haben jeder Aufgabe eine Einschätzung ihrer Schwierigkeit auf einer Skala von 1 bis 10 vorangestellt. Bei dieser Einschätzung sind wir von einem Gehirn ausgegangen, für welches das jeweilige Themengebiet völlig neu ist, das jedoch schon ein ganz gutes Verständnis dafür hat wie eine Programmiersprache denn so funktioniert. &lt;br /&gt;
Entsprechend kann eine schwer bewertete Aufgabe aus einem frühen Themengebiet für manch einen sehr einfach oder eine leicht bewertete aus einem späten Themengebiet für einen anderen sehr schwer sein. Es ist nur ein Wert, der euch helfen soll eure nächste Aufgabe zu wählen. &lt;br /&gt;
&lt;br /&gt;
Falls ihr Anmerkungen zu den Aufgaben habt, könnt ihr die Diskussionsseiten der jeweiligen Aufgaben nutzen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Schwierigkeitsgrade ==&lt;br /&gt;
&lt;br /&gt;
#  Reines Tutorial. Man muss nicht viel selbst denken&lt;br /&gt;
#  ...&lt;br /&gt;
#  Leichte Übungsaufgabe. Studies, die noch eher unsicher sind werden hier gut begleitet.&lt;br /&gt;
#  ...&lt;br /&gt;
#  Typische Aufgabe. Man muss den Kopf benutzen, bekommt an schwierigen Stellen aber Hilfestellungen.&lt;br /&gt;
#  ...&lt;br /&gt;
#  Herausfordernd, eher etwas für Studies die etwas fitter sind.&lt;br /&gt;
#  ...&lt;br /&gt;
#  Auch erfahrene Programmierer werden hier ein bis zwei Übungen beschäftigt sein&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
#  Tja, die Idee war da. Wir finden sie auch gut, aber es könnte wirklich anstrengend werden.&lt;br /&gt;
&lt;br /&gt;
== Die Aufgaben ==&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;4&amp;quot; cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
 |- bgcolor=&amp;quot;#D8D8D8&amp;quot;&lt;br /&gt;
 !Aufgabe&lt;br /&gt;
 !Schwierigkeit&lt;br /&gt;
 !Vorwissen&lt;br /&gt;
 !Lerneffekte&lt;br /&gt;
 !Bearbeiter&lt;br /&gt;
 !Korrektur gelesen&lt;br /&gt;
 !Musterlösung&lt;br /&gt;
 |- bgcolor=&amp;quot;#F5F5F5&amp;quot;&lt;br /&gt;
 | [[Ckurs2009/Von der Konsole zum HelloWorld | Von der Konsole zum HelloWorld]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |1&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |1. VL&lt;br /&gt;
 | Konsole benutzen, Hello World&lt;br /&gt;
 | Sebastian D.&lt;br /&gt;
 | [[Benutzer:Mario|Mario]]&lt;br /&gt;
 | &lt;br /&gt;
 |- bgcolor=&amp;quot;#E8E8E8&amp;quot;&lt;br /&gt;
 | [[Ckurs2009/Fakultät | Fakultät]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |2&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |1. VL&lt;br /&gt;
 | Schleifen&lt;br /&gt;
 | Sebastian D.&lt;br /&gt;
 | Daniel&lt;br /&gt;
 |  &lt;br /&gt;
 |- bgcolor=&amp;quot;#F5F5F5&amp;quot;&lt;br /&gt;
 | [[Ckurs2009/Base64 | Base64]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |6&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |1. VL&lt;br /&gt;
 | Operatoren&lt;br /&gt;
 | Sebastian D.&lt;br /&gt;
 | &lt;br /&gt;
 | [[Ckurs2009/Base64/Musterlösung | Base64]]&lt;br /&gt;
 |- bgcolor=&amp;quot;#E8E8E8&amp;quot;&lt;br /&gt;
 | [[Ckurs2009/EingabeAusgabe | Ein- und Ausgabe]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |1&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |2. VL&lt;br /&gt;
 | Einlesen von Benutzereingaben&amp;lt;br&amp;gt;Ausgabe derselben&lt;br /&gt;
 | [[Benutzer:Mario|Mario]]&lt;br /&gt;
 | nion&lt;br /&gt;
 | [[Ckurs2009/EingabeAusgabe/Musterlösung | Ein- und Ausgabe]]&lt;br /&gt;
 |- bgcolor=&amp;quot;#F5F5F5&amp;quot;&lt;br /&gt;
 | [[Ckurs2009/Taschenrechner | Taschenrechner]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |3&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |2. VL&lt;br /&gt;
 | Eingabe+Ausgabe&amp;lt;br&amp;gt;Mathematische Operatoren&lt;br /&gt;
 | [[Benutzer:Mario|Mario]]&lt;br /&gt;
 | [[Benutzer:Tkroenert|TKroenert]]&lt;br /&gt;
 | [[Ckurs2009/Taschenrechner/Musterlösung | Taschenrechner]]&lt;br /&gt;
 |- bgcolor=&amp;quot;#E8E8E8&amp;quot;&lt;br /&gt;
 | [[Ckurs2009/VerschachtelteSchleifen | Verschachtelte Schleifen]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |3&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |2. VL&lt;br /&gt;
 | Umgang mit mehreren verschachtelten Schleifen&lt;br /&gt;
 | [[Benutzer:Dank|Daniel K.]]&lt;br /&gt;
 | AlexanderK&lt;br /&gt;
 |&lt;br /&gt;
 |- bgcolor=&amp;quot;#F5F5F5&amp;quot;&lt;br /&gt;
 | [[Ckurs2009/Glückspiel | Glücksspiel]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |3&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |2. VL&lt;br /&gt;
 | Anwenden von Fallunterscheidungen und Einlesen von Werten aus der Konsole&lt;br /&gt;
 | [[Benutzer:Dank|Daniel K.]]&lt;br /&gt;
 | AlexanderK&lt;br /&gt;
 | [[Ckurs2009/Glückspiel/Musterlösung | Glückspiel]]&lt;br /&gt;
 |- bgcolor=&amp;quot;#E8E8E8&amp;quot;&lt;br /&gt;
 | [[Ckurs2009/Wochentag | Wochentagsrechnung]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |5&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |2. VL&lt;br /&gt;
 | Einlesen von Benutzereingaben&amp;lt;br&amp;gt;Mathematikverständniss&lt;br /&gt;
 | [[Benutzer:Mario|Mario]]&lt;br /&gt;
 | nion (Musterlösung noch nicht vorhanden)&lt;br /&gt;
 | &lt;br /&gt;
 |- bgcolor=&amp;quot;#F5F5F5&amp;quot;&lt;br /&gt;
 | [[Ckurs2009/Taschenrechner2.0 | Taschenrechner &#039;&#039;2.0&#039;&#039;]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |8&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |2. VL&lt;br /&gt;
 | Knobeln&amp;lt;br&amp;gt;Komplexes Aufgaben lösen&lt;br /&gt;
 | [[Benutzer:Mario|Mario]]&lt;br /&gt;
 | Martin K.&lt;br /&gt;
 | [[Ckurs2009/Taschenrechner2.0/Musterlösung | Taschenrechner &#039;&#039;2.0&#039;&#039;]]&lt;br /&gt;
 |- bgcolor=&amp;quot;#E8E8E8&amp;quot;&lt;br /&gt;
 | [[Ckurs2009/Call by reference | Call by reference]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |4&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |3. VL&lt;br /&gt;
 | Einfache Anwendung von &amp;amp;/*&lt;br /&gt;
 | sping&lt;br /&gt;
 | nion&lt;br /&gt;
 | [[Ckurs2009/Call by reference/Musterlösung | Call by reference]]&lt;br /&gt;
 |- bgcolor=&amp;quot;#F5F5F5&amp;quot;&lt;br /&gt;
 | [[Ckurs2009/Text processing | Text processing]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |4, 6&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |3. VL&lt;br /&gt;
 | Strings&amp;lt;br&amp;gt;Pointer-Arithmetik&amp;lt;br&amp;gt;Pointer auf Pointer&amp;lt;br&amp;gt;Refactoring&lt;br /&gt;
 | sping&lt;br /&gt;
 | [[Benutzer:Mario|Mario]]&lt;br /&gt;
 | [[Ckurs2009/Text processing/Musterlösung | Text processing]]&lt;br /&gt;
 |- bgcolor=&amp;quot;#E8E8E8&amp;quot;&lt;br /&gt;
 | [[Ckurs2009/Palindrome | Palindrome]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |4&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |3. VL&lt;br /&gt;
 | Pointer und Strings&lt;br /&gt;
 | [[Benutzer:Dank|Daniel K.]]&lt;br /&gt;
 | nion&lt;br /&gt;
 | [[Ckurs2009/Palindrome/Musterlösung | Palindrome ]]&lt;br /&gt;
 | &lt;br /&gt;
 |- bgcolor=&amp;quot;#F5F5F5&amp;quot;&lt;br /&gt;
 | [[Ckurs2009/(Pointer) Swapping | (Pointer) Swapping]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |5&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |3. VL&lt;br /&gt;
 | Pointer und Arrays benutzen, generisches swap&lt;br /&gt;
 | Katrin&lt;br /&gt;
 |&lt;br /&gt;
 | [[Ckurs2009/(Pointer) Swapping/Musterlösung | (Pointer) Swapping]]&lt;br /&gt;
 |- bgcolor=&amp;quot;#E8E8E8&amp;quot;&lt;br /&gt;
 | [[Ckurs2009/Matrizenmultiplikation | Matrizenmultiplikation]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |6&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |3. VL&lt;br /&gt;
 | Mehrdimensionale Arrays&amp;lt;br&amp;gt;const correctness&lt;br /&gt;
 | sping&lt;br /&gt;
 | [[Benutzer:Mario|Mario]]&lt;br /&gt;
 | [[Ckurs2009/Matrizenmultiplikation/Musterlösung | Matrizenmultiplikation]]&lt;br /&gt;
 |- bgcolor=&amp;quot;#F5F5F5&amp;quot;&lt;br /&gt;
 | [[Ckurs2009/Arrayuebergabe | Arrayuebergabe]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |4/5&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; | 4. VL&lt;br /&gt;
 | Einlesen von Benutzereingaben&amp;lt;br&amp;gt;Pointer und Pointerarithmetik&lt;br /&gt;
 | nion&lt;br /&gt;
 | Martin K.&lt;br /&gt;
 | [[Ckurs2009/Arrayuebergabe/Musterlösung | Arrayuebergabe]]&lt;br /&gt;
 |- bgcolor=&amp;quot;#E8E8E8&amp;quot;&lt;br /&gt;
 | [[Ckurs2009/Studentendatenbank | Studentendatenbank]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |4&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; | 4. VL&lt;br /&gt;
 | struct, Pointer, Arrays&lt;br /&gt;
 | AlexanderK&lt;br /&gt;
 |&lt;br /&gt;
 | [[Ckurs2009/Studentendatenbank/Musterlösung | Studentendatenbank]]&lt;br /&gt;
 |- bgcolor=&amp;quot;#F5F5F5&amp;quot;&lt;br /&gt;
 | [[Ckurs2009/Sammelbestellung | Sammelbestellung]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |2-5&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |4. VL&lt;br /&gt;
 | Listen, Pointer, Speicherverwaltung&lt;br /&gt;
 | Florian S.&lt;br /&gt;
 | [[Benutzer:Mario|Mario]]&lt;br /&gt;
 |  [[Ckurs2009/Sammelbestellung/Musterlösung | Sammelbestellung]] &lt;br /&gt;
 |- bgcolor=&amp;quot;#E8E8E8&amp;quot;&lt;br /&gt;
 | [[Ckurs2009/Zahlen_sagen | Zahlen sagen]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |5&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |4. VL&lt;br /&gt;
 | Umgang mit Zeichenketten&lt;br /&gt;
 | Martin K.&lt;br /&gt;
 | &lt;br /&gt;
 | [[Ckurs2009/Zahlen_sagen/Musterlösung | Zahlen sagen]]&lt;br /&gt;
 |- bgcolor=&amp;quot;#E8E8E8&amp;quot;&lt;br /&gt;
 | [[Ckurs2009/Compiler, Präprozessor, Header Files | Compiler, Präprozessor, Header Files]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |3&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |5. VL&lt;br /&gt;
 | Arbeiten mit mehreren Quellcode-Dateien, Kompilieren und Linken, Header-Dateien und #include, debugging-Makro verwenden&lt;br /&gt;
 | Katrin&lt;br /&gt;
 | &lt;br /&gt;
 | siehe Folien&lt;br /&gt;
 |- bgcolor=&amp;quot;#F5F5F5&amp;quot;&lt;br /&gt;
 | [[Ckurs2009/Bus Error | Bus Error]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |8&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |5. VL&lt;br /&gt;
 | Pointer, wie entsteht ein bus error&lt;br /&gt;
 | Katrin&lt;br /&gt;
 | &lt;br /&gt;
 | &lt;br /&gt;
 |- bgcolor=&amp;quot;#E8E8E8&amp;quot;&lt;br /&gt;
 | [[Ckurs2009/BubbleSortDebug | BubbleSort Debugging]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; | 5&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; | 6. VL&lt;br /&gt;
 | Debuggen eines Programmes mit gdb&lt;br /&gt;
 | aeichner&lt;br /&gt;
 |&lt;br /&gt;
 | [[Ckurs2009/BubbleSortDebug/Musterlösung | BubbleSort Debugging]]&lt;br /&gt;
 |- bgcolor=&amp;quot;#F5F5F5&amp;quot;&lt;br /&gt;
 | [[Ckurs2009/Debug | Debugging]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; | 1-8&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; | 6. VL&lt;br /&gt;
 | Debuggen einer Anwendung nach Wahl&lt;br /&gt;
 | aeichner&lt;br /&gt;
 |&lt;br /&gt;
 | &lt;br /&gt;
 |- bgcolor=&amp;quot;#E8E8E8&amp;quot;&lt;br /&gt;
 | [[Ckurs2009/Code Layout | Code Layout]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |3&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |7. VL&lt;br /&gt;
 | Kleinere Codeschipsel mit kleinen Unsauberkeiten&lt;br /&gt;
 | Daniel&lt;br /&gt;
 | &lt;br /&gt;
 | [[Ckurs2009/Code Layout/Musterlösung | Code Layout]]&lt;br /&gt;
 |- bgcolor=&amp;quot;#F5F5F5&amp;quot;&lt;br /&gt;
 | [[Ckurs2009/Refactoring | Refactoring]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |5-9&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |7. VL&lt;br /&gt;
 | Wie verbessere ich den Quellcode eines Programmes.&lt;br /&gt;
 | Daniel&lt;br /&gt;
 | &lt;br /&gt;
 | [[Ckurs2009/Refactoring/Musterlösung | Refactoring]]&lt;br /&gt;
 |- bgcolor=&amp;quot;#E8E8E8&amp;quot;&lt;br /&gt;
 | [[Ckurs2009/Cat | Cat]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; | 6&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; | ....&lt;br /&gt;
 | Arbeiten mit Dateien&amp;lt;br&amp;gt;Kommandozeilenparameter&lt;br /&gt;
 | nion&lt;br /&gt;
 | sping&lt;br /&gt;
 | vorhanden&lt;br /&gt;
 |- bgcolor=&amp;quot;#F5F5F5&amp;quot;&lt;br /&gt;
 | [[Ckurs2009/Pong | Pong]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; | 7&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; | ...&lt;br /&gt;
 | allgemeiner Programmablauf, fortgeschrittene Konsolenausgaben/eingaben&lt;br /&gt;
 | AlexanderK&lt;br /&gt;
 |&lt;br /&gt;
 | vorhanden &lt;br /&gt;
 |- bgcolor=&amp;quot;#E8E8E8&amp;quot;&lt;br /&gt;
 | [[Ckurs2009/Buchhaltung | Buchhaltung]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; | 6&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; | ....&lt;br /&gt;
 | Lesen aus Dateien&lt;br /&gt;
 | reiner&lt;br /&gt;
 | &lt;br /&gt;
 | &lt;br /&gt;
 |- bgcolor=&amp;quot;#F5F5F5&amp;quot;&lt;br /&gt;
 | [[Ckurs2009/StringArraySortieren | StringArraySortieren]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; | 7&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; | ...&lt;br /&gt;
 | Konsolparameter, Funktionspointer, stdlib&lt;br /&gt;
 | reiner&lt;br /&gt;
 |&lt;br /&gt;
 | vorhanden&lt;br /&gt;
 |- bgcolor=&amp;quot;#E8E8E8&amp;quot;&lt;br /&gt;
 | [[Ckurs/integral | integral]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; | 2&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; | ....&lt;br /&gt;
 | Funktionspointer&lt;br /&gt;
 | reiner&lt;br /&gt;
 | &lt;br /&gt;
 | vorhanden &lt;br /&gt;
 |- bgcolor=&amp;quot;#F5F5F5&amp;quot;&lt;br /&gt;
 | [[Ckurs/forschleife | forschleife]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; | 2&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; | ...&lt;br /&gt;
 | Bug&lt;br /&gt;
 | reiner&lt;br /&gt;
 | nion&lt;br /&gt;
 | vorhanden&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Kleine und große Probleme ==&lt;br /&gt;
&lt;br /&gt;
* Die Tubit-Accounts haben nicht /bin/bash als shell, so dass die &amp;lt;strong&amp;gt;Cursortasten&amp;lt;/strong&amp;gt; nicht funktionieren. Workaround: als erstes Kommando &#039;bash&#039; eingeben, man sieht dann auch in welchem Verzeichnis man gerade ist.&lt;br /&gt;
* wenn man nur den Promt &#039;bash-0.12&#039; oder so erhält, also ohne das Verzeichnis in dem man ist, folgendes Kommando eingeben: &amp;lt;tt&amp;gt;export PS1=&#039;\u@\h:\w$ &#039;&amp;lt;/tt&amp;gt; oder zum dauerhaften Speichern: &amp;lt;tt&amp;gt; echo &amp;quot;export PS1=&#039;\u@\h:\w$ &#039;&amp;quot; &amp;gt;&amp;gt; ~/.bashrc &amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Musterlösungen ==&lt;br /&gt;
Die Lösungen zu den Aufgaben werden nach den jeweiligen Übungen hier veröffentlicht. Falls dies nicht geschieht, bitte den zuständigen Tutor fragen.&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* [[Ckurs2009/Feedback|Feedback zum Kurs 2009]]&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:CKurs]]&lt;br /&gt;
[[Kategorie:CKurs Aufgaben]]&lt;/div&gt;</summary>
		<author><name>DStulle</name></author>
	</entry>
	<entry>
		<id>wiki.stageing.freitagsrunde.org//index.php?title=C-Kurs/Refactoring&amp;diff=12589</id>
		<title>C-Kurs/Refactoring</title>
		<link rel="alternate" type="text/html" href="wiki.stageing.freitagsrunde.org//index.php?title=C-Kurs/Refactoring&amp;diff=12589"/>
		<updated>2009-09-24T10:05:18Z</updated>

		<summary type="html">&lt;p&gt;DStulle: /* Teil 1 */ warnung hinzugefügt&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Teil 1 =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;padding:10px;background:#FAA;&amp;quot;&amp;gt;&lt;br /&gt;
Bei dem Programm ist ein Problem aufgetreten, das scheinbar mit der Funktione fgetc() auf verschiedenen Systemen (Linux und Solaris) auftritt. Falls etwas nitcht so ganz hinhaut, verzweifelt nicht und macht einfach eine andere Aufgabe.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Das gegebene Programm ist eine Hashtabelle. Leider ist es etwas unübersichtlich, da es eine Funktion enthält, die ca. 150 Zeilen lang ist. Schaffe mehr Übersicht indem du zusammengehörige Codefragmente oder mehrfach im Quelltext auftauchen in kleinere Funktionen auslagerst. Wie zum Beispiel diese:&lt;br /&gt;
&lt;br /&gt;
 int calcHashKey(const char *pszHash)&lt;br /&gt;
 {&lt;br /&gt;
   &lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 PHASHITEM getItemFromHash(const char *pszHash)&lt;br /&gt;
 {&lt;br /&gt;
   &lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 void execGetHash(const char *pszHash)&lt;br /&gt;
 {&lt;br /&gt;
   &lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 void execRemoveHash(const char *pszHash)&lt;br /&gt;
 {&lt;br /&gt;
   &lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 void execInsertHash(const char *pszHash, char *pszData)&lt;br /&gt;
 {&lt;br /&gt;
   &lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 int parseCmd(const char *pszCmdLine)&lt;br /&gt;
 {&lt;br /&gt;
   &lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 char *readLine(size_t *pcbRead)&lt;br /&gt;
 {&lt;br /&gt;
   &lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Halte dich dabei an die Namenskonvention der [http://de.wikipedia.org/wiki/Ungarische_Notation Ungarischen Notation] und [http://de.wikipedia.org/wiki/Binnenmajuskel#Verwendung_in_Programmiersprachen Camel Case].&lt;br /&gt;
&lt;br /&gt;
Dokumentiere Jede Funktion und beschreiben genau, was sie macht und welche Ein- und Ausgaben sie hat.&lt;br /&gt;
&lt;br /&gt;
Hier ist die Vorlage: [http://docs.freitagsrunde.org/Veranstaltungen/ckurs_2009/vorgaben/HashTableRefactor.c HashTableRefactor.c]&lt;br /&gt;
&lt;br /&gt;
= Teil 2 =&lt;br /&gt;
&lt;br /&gt;
Den Algorithmus zum Codieren eines Strings nach base64 aus einer anderen [[Ckurs2009/Base64|Aufgabe]] kann man auch noch etwas eleganter und knapper schreiben.&lt;br /&gt;
&lt;br /&gt;
Das Programm erwatet genau einen Kommandozeilenparameter und convertiert diesen nach Base64.&lt;br /&gt;
&lt;br /&gt;
 $ ./base64 &amp;quot;Das ist ein Test&amp;quot;&lt;br /&gt;
 RGFzIGlzdCBlaW4gVGVzdA==&lt;br /&gt;
&lt;br /&gt;
Hier ist die Vorlage: [http://docs.freitagsrunde.org/Veranstaltungen/ckurs_2009/vorgaben/base64_refactor.c base64_refactor.c]&lt;br /&gt;
&lt;br /&gt;
Schreibe eine Funktion encode_block(), die die vier gegebenen encode_*_output() Funktionen ersetzt.&lt;br /&gt;
&lt;br /&gt;
 /**&lt;br /&gt;
  * Encodes three input chars into four output chars based on the base64 scheme.&lt;br /&gt;
  * @param in chararray with input characters&lt;br /&gt;
  * @param out chararray where the output is written to&lt;br /&gt;
  * @param len number of chars to be used from input&lt;br /&gt;
  */&lt;br /&gt;
 void encode_block( unsigned char in[3], unsigned char out[4], int len )&lt;br /&gt;
 {&lt;br /&gt;
   /* ... */&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Ersetze die Aufrufe der vier Funktionen an den drei Stellen im Code durch einen Aufruf der Funktion encode_block().&lt;br /&gt;
&lt;br /&gt;
== Zusatz ==&lt;br /&gt;
&lt;br /&gt;
Vereinfache den Code so, dass die Funktion encode_block() nur einmal aufgerufen wird. Lagere den Algorithmus zum Codieren in eine Funktion encode() aus. Initialisierung und Benutzerinteraktion soll in der main() umgesetzt werden.&lt;br /&gt;
&lt;br /&gt;
 /**&lt;br /&gt;
  * Encodes the input string into an output string based on the base64 scheme.&lt;br /&gt;
  * @param length size of input string&lt;br /&gt;
  * @param input string with input characters&lt;br /&gt;
  * @param output string where the output is written to. It has to be long enough to hold the output&lt;br /&gt;
  */&lt;br /&gt;
 void encode(int length, char *input, char *output)&lt;br /&gt;
 {&lt;br /&gt;
   /* ... */&lt;br /&gt;
 }&lt;/div&gt;</summary>
		<author><name>DStulle</name></author>
	</entry>
	<entry>
		<id>wiki.stageing.freitagsrunde.org//index.php?title=C-Kurs_2009/Vortrag07&amp;diff=12582</id>
		<title>C-Kurs 2009/Vortrag07</title>
		<link rel="alternate" type="text/html" href="wiki.stageing.freitagsrunde.org//index.php?title=C-Kurs_2009/Vortrag07&amp;diff=12582"/>
		<updated>2009-09-24T09:11:34Z</updated>

		<summary type="html">&lt;p&gt;DStulle: /* Themen */ Weblinks hinzugefügt&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Guter Code =&lt;br /&gt;
&lt;br /&gt;
Vortragende: &#039;&#039;&#039;Daniel S.&#039;&#039;&#039; &amp;lt;dstulle gmx.de&amp;gt; &lt;br /&gt;
&lt;br /&gt;
=== Themen ===&lt;br /&gt;
* Guter Code&lt;br /&gt;
&lt;br /&gt;
==== Links ====&lt;br /&gt;
&lt;br /&gt;
Hier sind einige weiterführende Links zum Vortag.&lt;br /&gt;
&lt;br /&gt;
Coding Standards:&lt;br /&gt;
&lt;br /&gt;
* [http://www.jetcafe.org/jim/c-style.html ANSI]&lt;br /&gt;
* [http://www.gnu.org/prep/standards/ GNU]&lt;br /&gt;
* [http://lxr.linux.no/#linux+v2.6.31/Documentation/CodingStyle Linux]&lt;br /&gt;
&lt;br /&gt;
Namenskonvention:&lt;br /&gt;
&lt;br /&gt;
* [http://de.wikipedia.org/wiki/Ungarische_Notation Ungarische]&lt;br /&gt;
&lt;br /&gt;
Automatische Generation der dokumentation aus Kommentaren:&lt;br /&gt;
&lt;br /&gt;
* [http://www.stack.nl/~dimitri/doxygen/ Doxygen]&lt;br /&gt;
&lt;br /&gt;
Refactoring und Testen:&lt;br /&gt;
&lt;br /&gt;
* [http://de.wikipedia.org/wiki/Refactoring Refactoring]&lt;br /&gt;
* [http://de.wikipedia.org/wiki/Unit-Test Testing]&lt;br /&gt;
&lt;br /&gt;
Tipps:&lt;br /&gt;
&lt;br /&gt;
* [http://www.joelonsoftware.com/articles/fog0000000043.html Der Joel Test] ([http://local.joelonsoftware.com/wiki/2000-Aug-09_Der_Joel-Test deutsch])&lt;br /&gt;
&lt;br /&gt;
=== Folien ===&lt;br /&gt;
* [http://docs.freitagsrunde.org/Veranstaltungen/ckurs_2009/vorlesungen/07-guter-code/c-kurs-guter-code-sturm.pdf c-kurs-guter-code-sturm.pdf]&lt;br /&gt;
&lt;br /&gt;
=== Aufgaben ===&lt;br /&gt;
&lt;br /&gt;
Passend zu dieser Vorlesung sind die folgenden Übungsaufgaben:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Ckurs2009/Code Layout | Code Layout]]&lt;br /&gt;
&lt;br /&gt;
[[Ckurs2009/Refactoring | Refactoring]]&lt;br /&gt;
&lt;br /&gt;
=== Mitschnitt ===&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:CKurs]]&lt;/div&gt;</summary>
		<author><name>DStulle</name></author>
	</entry>
	<entry>
		<id>wiki.stageing.freitagsrunde.org//index.php?title=C-Kurs/Code_Layout&amp;diff=12578</id>
		<title>C-Kurs/Code Layout</title>
		<link rel="alternate" type="text/html" href="wiki.stageing.freitagsrunde.org//index.php?title=C-Kurs/Code_Layout&amp;diff=12578"/>
		<updated>2009-09-24T08:54:07Z</updated>

		<summary type="html">&lt;p&gt;DStulle: Beispiele zum Programmaufruf hinzugefügt&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Aufgabenstellung =&lt;br /&gt;
&lt;br /&gt;
In dieser Aufgabe sind einige Codeschnipsel gegeben die zwar funktionieren, aber etwas unübersichtlich oder umständlich geschrieben sind. Deine Aufgabe ist es diese so um zu schreiben, dass sie übersichtlicher und einfacher sind. Vergleiche die Ergebnisse mit deinem Nachbarn und sprecht über eure Ergebnisse.&lt;br /&gt;
&lt;br /&gt;
== sum.c ==&lt;br /&gt;
&lt;br /&gt;
In der Funktion sum hat sich eine for-Schleife versteckt. Schreibe die Funktion so um, dass sie übersichtlicher ist. Gib den Variablen bei dieser Gelegenheit selbsterklärende Namen.&lt;br /&gt;
&lt;br /&gt;
 #define klaus jonny&lt;br /&gt;
 &lt;br /&gt;
 /**&lt;br /&gt;
  * Berechnet die summe der Zahlen im übergebenen array&lt;br /&gt;
  * @breite array mit den Zahlen&lt;br /&gt;
  * @hoehe länge des arrays&lt;br /&gt;
  */&lt;br /&gt;
 int sum(int *breiTee, int hoehe)&lt;br /&gt;
 {&lt;br /&gt;
 	int vorgabe = 0;&lt;br /&gt;
 	int i = 1;&lt;br /&gt;
 	do&lt;br /&gt;
 	{&lt;br /&gt;
 		int klaus = vorgabe + breiTee[i-1];&lt;br /&gt;
 		vorgabe = jonny;&lt;br /&gt;
 		i = i + 1;&lt;br /&gt;
 	} while (i &amp;lt;= hoehe);&lt;br /&gt;
 &lt;br /&gt;
 	return vorgabe;&lt;br /&gt;
 } &lt;br /&gt;
&lt;br /&gt;
Hier ist die Vorlage: [[http://docs.freitagsrunde.org/Veranstaltungen/ckurs_2009/vorgaben/sum_refactor.c sum_refactor.c]]&lt;br /&gt;
&lt;br /&gt;
So wird das programm benutzt:&lt;br /&gt;
&lt;br /&gt;
 $ gcc sum_refactor.c -o sum&lt;br /&gt;
 $ ./sum 23 42&lt;br /&gt;
 65&lt;br /&gt;
&lt;br /&gt;
== fac.c ==&lt;br /&gt;
&lt;br /&gt;
Die Fakultät kann auch Rekursiv berechnet werden, allerdings könnte man das auch bequem in zwei Zeilen machen, ohne dabei unübersichtlich zu werden.&lt;br /&gt;
&lt;br /&gt;
 /**&lt;br /&gt;
  * Brerechnet die Fakultät&lt;br /&gt;
  * @n Zahl von der die Fakultät berechnet werden soll&lt;br /&gt;
  * @return Fakultät von n&lt;br /&gt;
  */&lt;br /&gt;
 int faculty(int n){&lt;br /&gt;
   if (n &amp;lt; 2) return 1;&lt;br /&gt;
 &lt;br /&gt;
   if(n == 2)&lt;br /&gt;
   {&lt;br /&gt;
       return 2;&lt;br /&gt;
   } else {&lt;br /&gt;
     int m;&lt;br /&gt;
     m = n*faculty(n-1);&lt;br /&gt;
     return m;&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Hier ist die Vorlage: [[http://docs.freitagsrunde.org/Veranstaltungen/ckurs_2009/vorgaben/fac_refactor.c fac_refactor.c]]&lt;br /&gt;
&lt;br /&gt;
So wird das programm benutzt:&lt;br /&gt;
&lt;br /&gt;
 $ gcc fac_refactor.c -o fac&lt;br /&gt;
 $ ./fac 4&lt;br /&gt;
 4! = 24&lt;br /&gt;
&lt;br /&gt;
= Kommentare =&lt;/div&gt;</summary>
		<author><name>DStulle</name></author>
	</entry>
	<entry>
		<id>wiki.stageing.freitagsrunde.org//index.php?title=C-Kurs/Refactoring&amp;diff=12570</id>
		<title>C-Kurs/Refactoring</title>
		<link rel="alternate" type="text/html" href="wiki.stageing.freitagsrunde.org//index.php?title=C-Kurs/Refactoring&amp;diff=12570"/>
		<updated>2009-09-23T21:10:20Z</updated>

		<summary type="html">&lt;p&gt;DStulle: /* Teil 1 */ Aufgabenstellung aktuallisiert&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Teil 1 =&lt;br /&gt;
&lt;br /&gt;
Das gegebene Programm ist eine Hashtabelle. Leider ist es etwas unübersichtlich, da es eine Funktion enthält, die ca. 150 Zeilen lang ist. Schaffe mehr Übersicht indem du zusammengehörige Codefragmente oder mehrfach im Quelltext auftauchen in kleinere Funktionen auslagerst. Wie zum Beispiel diese:&lt;br /&gt;
&lt;br /&gt;
 int calcHashKey(const char *pszHash)&lt;br /&gt;
 {&lt;br /&gt;
   &lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 PHASHITEM getItemFromHash(const char *pszHash)&lt;br /&gt;
 {&lt;br /&gt;
   &lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 void execGetHash(const char *pszHash)&lt;br /&gt;
 {&lt;br /&gt;
   &lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 void execRemoveHash(const char *pszHash)&lt;br /&gt;
 {&lt;br /&gt;
   &lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 void execInsertHash(const char *pszHash, char *pszData)&lt;br /&gt;
 {&lt;br /&gt;
   &lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 int parseCmd(const char *pszCmdLine)&lt;br /&gt;
 {&lt;br /&gt;
   &lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 char *readLine(size_t *pcbRead)&lt;br /&gt;
 {&lt;br /&gt;
   &lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Halte dich dabei an die Namenskonvention der [http://de.wikipedia.org/wiki/Ungarische_Notation Ungarischen Notation] und [http://de.wikipedia.org/wiki/Binnenmajuskel#Verwendung_in_Programmiersprachen Camel Case].&lt;br /&gt;
&lt;br /&gt;
Dokumentiere Jede Funktion und beschreiben genau, was sie macht und welche Ein- und Ausgaben sie hat.&lt;br /&gt;
&lt;br /&gt;
Hier ist die Vorlage: [http://docs.freitagsrunde.org/Veranstaltungen/ckurs_2009/vorgaben/HashTableRefactor.c HashTableRefactor.c]&lt;br /&gt;
&lt;br /&gt;
= Teil 2 =&lt;br /&gt;
&lt;br /&gt;
Den Algorithmus zum Codieren eines Strings nach base64 aus einer anderen [[Ckurs2009/Base64|Aufgabe]] kann man auch noch etwas eleganter und knapper schreiben.&lt;br /&gt;
&lt;br /&gt;
Das Programm erwatet genau einen Kommandozeilenparameter und convertiert diesen nach Base64.&lt;br /&gt;
&lt;br /&gt;
 $ ./base64 &amp;quot;Das ist ein Test&amp;quot;&lt;br /&gt;
 RGFzIGlzdCBlaW4gVGVzdA==&lt;br /&gt;
&lt;br /&gt;
Hier ist die Vorlage: [http://docs.freitagsrunde.org/Veranstaltungen/ckurs_2009/vorgaben/base64_refactor.c base64_refactor.c]&lt;br /&gt;
&lt;br /&gt;
Schreibe eine Funktion encode_block(), die die vier gegebenen encode_*_output() Funktionen ersetzt.&lt;br /&gt;
&lt;br /&gt;
 /**&lt;br /&gt;
  * Encodes three input chars into four output chars based on the base64 scheme.&lt;br /&gt;
  * @param in chararray with input characters&lt;br /&gt;
  * @param out chararray where the output is written to&lt;br /&gt;
  * @param len number of chars to be used from input&lt;br /&gt;
  */&lt;br /&gt;
 void encode_block( unsigned char in[3], unsigned char out[4], int len )&lt;br /&gt;
 {&lt;br /&gt;
   /* ... */&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Ersetze die Aufrufe der vier Funktionen an den drei Stellen im Code durch einen Aufruf der Funktion encode_block().&lt;br /&gt;
&lt;br /&gt;
== Zusatz ==&lt;br /&gt;
&lt;br /&gt;
Vereinfache den Code so, dass die Funktion encode_block() nur einmal aufgerufen wird. Lagere den Algorithmus zum Codieren in eine Funktion encode() aus. Initialisierung und Benutzerinteraktion soll in der main() umgesetzt werden.&lt;br /&gt;
&lt;br /&gt;
 /**&lt;br /&gt;
  * Encodes the input string into an output string based on the base64 scheme.&lt;br /&gt;
  * @param length size of input string&lt;br /&gt;
  * @param input string with input characters&lt;br /&gt;
  * @param output string where the output is written to. It has to be long enough to hold the output&lt;br /&gt;
  */&lt;br /&gt;
 void encode(int length, char *input, char *output)&lt;br /&gt;
 {&lt;br /&gt;
   /* ... */&lt;br /&gt;
 }&lt;/div&gt;</summary>
		<author><name>DStulle</name></author>
	</entry>
	<entry>
		<id>wiki.stageing.freitagsrunde.org//index.php?title=C-Kurs/Refactoring&amp;diff=12569</id>
		<title>C-Kurs/Refactoring</title>
		<link rel="alternate" type="text/html" href="wiki.stageing.freitagsrunde.org//index.php?title=C-Kurs/Refactoring&amp;diff=12569"/>
		<updated>2009-09-23T21:08:25Z</updated>

		<summary type="html">&lt;p&gt;DStulle: /* Teil 1 */ Aufgabenstellung aktuallisiert&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Teil 1 =&lt;br /&gt;
&lt;br /&gt;
Das gegebene Programm ist eine Hashtabelle. Leider ist es etwas unübersichtlich, da es eine Funktion enthält, die ca. 150 Zeilen lang ist. Schaffe mehr Übersicht indem du zusammengehörige Codefragmente oder mehrfach im Quelltext auftauchen in kleinere Funktionen auslagerst. Wie zum Beispiel diese:&lt;br /&gt;
&lt;br /&gt;
 int calcHashKey(const char *pszHash);&lt;br /&gt;
 PHASHITEM getItemFromHash(const char *pszHash);&lt;br /&gt;
 void execGetHash(const char *pszHash);&lt;br /&gt;
 void execRemoveHash(const char *pszHash);&lt;br /&gt;
 void execInsertHash(const char *pszHash, char *pszData);&lt;br /&gt;
 int parseCmd(const char *pszCmdLine);&lt;br /&gt;
 char *readLine(size_t *pcbRead);&lt;br /&gt;
&lt;br /&gt;
Halte dich dabei an die Namenskonvention der [http://de.wikipedia.org/wiki/Ungarische_Notation Ungarischen Notation] und [http://de.wikipedia.org/wiki/Binnenmajuskel#Verwendung_in_Programmiersprachen Camel Case].&lt;br /&gt;
&lt;br /&gt;
Dokumentiere Jede Funktion und beschreiben genau, was sie macht und welche Ein- und Ausgaben sie hat.&lt;br /&gt;
&lt;br /&gt;
Hier ist die Vorlage: [http://docs.freitagsrunde.org/Veranstaltungen/ckurs_2009/vorgaben/HashTableRefactor.c HashTableRefactor.c]&lt;br /&gt;
&lt;br /&gt;
= Teil 2 =&lt;br /&gt;
&lt;br /&gt;
Den Algorithmus zum Codieren eines Strings nach base64 aus einer anderen [[Ckurs2009/Base64|Aufgabe]] kann man auch noch etwas eleganter und knapper schreiben.&lt;br /&gt;
&lt;br /&gt;
Das Programm erwatet genau einen Kommandozeilenparameter und convertiert diesen nach Base64.&lt;br /&gt;
&lt;br /&gt;
 $ ./base64 &amp;quot;Das ist ein Test&amp;quot;&lt;br /&gt;
 RGFzIGlzdCBlaW4gVGVzdA==&lt;br /&gt;
&lt;br /&gt;
Hier ist die Vorlage: [http://docs.freitagsrunde.org/Veranstaltungen/ckurs_2009/vorgaben/base64_refactor.c base64_refactor.c]&lt;br /&gt;
&lt;br /&gt;
Schreibe eine Funktion encode_block(), die die vier gegebenen encode_*_output() Funktionen ersetzt.&lt;br /&gt;
&lt;br /&gt;
 /**&lt;br /&gt;
  * Encodes three input chars into four output chars based on the base64 scheme.&lt;br /&gt;
  * @param in chararray with input characters&lt;br /&gt;
  * @param out chararray where the output is written to&lt;br /&gt;
  * @param len number of chars to be used from input&lt;br /&gt;
  */&lt;br /&gt;
 void encode_block( unsigned char in[3], unsigned char out[4], int len )&lt;br /&gt;
 {&lt;br /&gt;
   /* ... */&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Ersetze die Aufrufe der vier Funktionen an den drei Stellen im Code durch einen Aufruf der Funktion encode_block().&lt;br /&gt;
&lt;br /&gt;
== Zusatz ==&lt;br /&gt;
&lt;br /&gt;
Vereinfache den Code so, dass die Funktion encode_block() nur einmal aufgerufen wird. Lagere den Algorithmus zum Codieren in eine Funktion encode() aus. Initialisierung und Benutzerinteraktion soll in der main() umgesetzt werden.&lt;br /&gt;
&lt;br /&gt;
 /**&lt;br /&gt;
  * Encodes the input string into an output string based on the base64 scheme.&lt;br /&gt;
  * @param length size of input string&lt;br /&gt;
  * @param input string with input characters&lt;br /&gt;
  * @param output string where the output is written to. It has to be long enough to hold the output&lt;br /&gt;
  */&lt;br /&gt;
 void encode(int length, char *input, char *output)&lt;br /&gt;
 {&lt;br /&gt;
   /* ... */&lt;br /&gt;
 }&lt;/div&gt;</summary>
		<author><name>DStulle</name></author>
	</entry>
	<entry>
		<id>wiki.stageing.freitagsrunde.org//index.php?title=C-Kurs_2009/Vortrag07&amp;diff=12568</id>
		<title>C-Kurs 2009/Vortrag07</title>
		<link rel="alternate" type="text/html" href="wiki.stageing.freitagsrunde.org//index.php?title=C-Kurs_2009/Vortrag07&amp;diff=12568"/>
		<updated>2009-09-23T20:50:12Z</updated>

		<summary type="html">&lt;p&gt;DStulle: /* Aufgaben */ Übungsaufgaben verlinkt&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Guter Code =&lt;br /&gt;
&lt;br /&gt;
Vortragende: &#039;&#039;&#039;Daniel S.&#039;&#039;&#039; &amp;lt;dstulle gmx.de&amp;gt; &lt;br /&gt;
&lt;br /&gt;
=== Themen ===&lt;br /&gt;
* Guter Code&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Folien ===&lt;br /&gt;
* [http://docs.freitagsrunde.org/Veranstaltungen/ckurs_2009/vorlesungen/07-guter-code/c-kurs-guter-code-sturm.pdf c-kurs-guter-code-sturm.pdf] (Alpha Version)&lt;br /&gt;
&lt;br /&gt;
=== Aufgaben ===&lt;br /&gt;
&lt;br /&gt;
Passend zu dieser Vorlesung sind die folgenden Übungsaufgaben:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Ckurs2009/Code Layout | Code Layout]]&lt;br /&gt;
&lt;br /&gt;
[[Ckurs2009/Refactoring | Refactoring]]&lt;br /&gt;
&lt;br /&gt;
=== Mitschnitt ===&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:CKurs]]&lt;/div&gt;</summary>
		<author><name>DStulle</name></author>
	</entry>
	<entry>
		<id>wiki.stageing.freitagsrunde.org//index.php?title=C-Kurs_2009/Vortrag07/Gedanken&amp;diff=12567</id>
		<title>C-Kurs 2009/Vortrag07/Gedanken</title>
		<link rel="alternate" type="text/html" href="wiki.stageing.freitagsrunde.org//index.php?title=C-Kurs_2009/Vortrag07/Gedanken&amp;diff=12567"/>
		<updated>2009-09-23T20:47:40Z</updated>

		<summary type="html">&lt;p&gt;DStulle: Gedanken ausgelagert&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
==== Ein paar Genanken ====&lt;br /&gt;
&lt;br /&gt;
Guter Code? Was ist gut?&lt;br /&gt;
Die frage ob etwas gut oder schlecht ist, definiert sich über das Ziel, dass man hat.&lt;br /&gt;
&lt;br /&gt;
Erst wenn man sich darüber im klaren ist, was man für ein Ziel hat kann man sich die Frage stellen ob etwas gut ist. z.B.: was für ein Auto ist gut? Ein Bus, ein Lastwagen, ein Rennwagen? Es kommt ganz darauf an ob man viele Leute mitnehmen will, viel Krams mitnehmen will oder einfach schnell sein will.&lt;br /&gt;
&lt;br /&gt;
Was will man üblicher weise erreichen wenn man Programmiert.&lt;br /&gt;
Zunächst einmal will man der Maschine sagen was sie tun soll. Aber ist das alles?&lt;br /&gt;
&lt;br /&gt;
Meistens will man den Code selber später nochmal lesen und verstehen. Also schreibt man ihn auch für sich.&lt;br /&gt;
&lt;br /&gt;
Sehr oft schreibt man den Code mit anderen zusammen oder als Teil eines Projektes mit Anderen. Also schreibt man ihn auch für andere.&lt;br /&gt;
&lt;br /&gt;
Warum ist guter Code, gutes Layout wichtig?&lt;br /&gt;
&lt;br /&gt;
Ihr schreibt den Programmcode nicht für den Computer sondern für euch und andere Menschen. Sonst könntet ihr das ganze gleich in Assembler rein hacken und es dann vergessen.&lt;br /&gt;
&lt;br /&gt;
Programmieren uns Softwareengineering ist bis auf wenige ausnahmen ein sehr kommunikativer und zwischenmenschlicher Prozess. Deswegen haben Informatiker auch eine so hohe Sozialkompetenz (Kein Scherz)&lt;br /&gt;
&lt;br /&gt;
Ihr schreibt den Code, damit ihn andere Leute oder ihr selber später mal lesen könnt. Programmieren ist eine besondere Art der Kommunikation. Genau wie die Menschliche Sprache ein Medium für Informationen, Gedanken und Konzepten ist, wird die Programmiersprache genau dazu benutzt mit der Besonderheit dass sie sogar ein Computer verstehen kann, aber das ist eigentlich nebensächlich ;-).&lt;br /&gt;
&lt;br /&gt;
Guter Code ist sehr hilfreich beim Auffinden von Fehlern.&lt;br /&gt;
&lt;br /&gt;
Guter Code lässt sich leichter ändern und anpassen.&lt;br /&gt;
&lt;br /&gt;
Ihr seht also es ist wichtig sich beim Schreiben von Code an bestimmte Regeln zu halten. Ein Programm zu schreiben was nur der Compiler versteht uns sonst niemand anders ist keine Kunst und obendrein nutzlos.&lt;br /&gt;
&lt;br /&gt;
Die frage ob ein Code gut ist oder nicht, kann man nicht so leicht beantworten, da es kein Maß gibt, und keine Methode um dies zu ermitteln.&lt;br /&gt;
&lt;br /&gt;
Für guten Code braucht man ein Gutes design. Guter Code fängt beim design der Funktionen, Prozeduren, Modulen, Strukturen und dessen Zusammenspiel an.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Verschiedene Stufen der Code Qualität:&lt;br /&gt;
* Laufender Code (Compiler)&lt;br /&gt;
* Richtiger Code (Beweise / Test)&lt;br /&gt;
* Guter Code (Intuition / Geschmack)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Woran erkennt man guten Code?&lt;br /&gt;
&lt;br /&gt;
* Guter Code ist einfach zu lesen und leicht zu verstehen, auch wenn man die Sprache nicht kennt.&lt;br /&gt;
* Guter Code ist kurz und einfach.&lt;br /&gt;
* Bei gutem Code muss man nicht lange darüber um ihn zu verstehen.&lt;br /&gt;
* Guter Code ist in sich geschlossen.&lt;br /&gt;
* Guter Code lässt sich einfach ändern und anpassen.&lt;br /&gt;
* Guter Code hat keine unnötigen Wiederholungen.&lt;br /&gt;
* Guter Code tut das, was er soll.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Stichworte: Einfachheit, Lesbarkeit, Modularität, Schichten, Design, Effizienz, Eleganz, und Klarheit&lt;br /&gt;
&lt;br /&gt;
Bezeichner (Variablen-, Funktionen): Eindeutig, Selbsterklärend,&lt;br /&gt;
Konventionen: Ungarische Notation (Apps Hungarian, Systems Hungarian)&lt;br /&gt;
&lt;br /&gt;
Versionsverwaltung kann hilfreich sein um guten Code zu erzeugen.&lt;/div&gt;</summary>
		<author><name>DStulle</name></author>
	</entry>
	<entry>
		<id>wiki.stageing.freitagsrunde.org//index.php?title=C-Kurs_2009/Vortrag07&amp;diff=12566</id>
		<title>C-Kurs 2009/Vortrag07</title>
		<link rel="alternate" type="text/html" href="wiki.stageing.freitagsrunde.org//index.php?title=C-Kurs_2009/Vortrag07&amp;diff=12566"/>
		<updated>2009-09-23T20:47:13Z</updated>

		<summary type="html">&lt;p&gt;DStulle: /* Guter Code */ Gedanken ausgelagert&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Guter Code =&lt;br /&gt;
&lt;br /&gt;
Vortragende: &#039;&#039;&#039;Daniel S.&#039;&#039;&#039; &amp;lt;dstulle gmx.de&amp;gt; &lt;br /&gt;
&lt;br /&gt;
=== Themen ===&lt;br /&gt;
* Guter Code&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Folien ===&lt;br /&gt;
* [http://docs.freitagsrunde.org/Veranstaltungen/ckurs_2009/vorlesungen/07-guter-code/c-kurs-guter-code-sturm.pdf c-kurs-guter-code-sturm.pdf] (Alpha Version)&lt;br /&gt;
&lt;br /&gt;
=== Aufgaben ===&lt;br /&gt;
&lt;br /&gt;
==== Ein paar Gedanken ====&lt;br /&gt;
Die aufgaben sollten im Team gelöst werden, bzw als interaktion zwischen mehreren Teilnehmern. Kommunikation sollte irgendwie eine rolle spielen.&lt;br /&gt;
&lt;br /&gt;
=== Mitschnitt ===&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:CKurs]]&lt;/div&gt;</summary>
		<author><name>DStulle</name></author>
	</entry>
	<entry>
		<id>wiki.stageing.freitagsrunde.org//index.php?title=C-Kurs/Code_Layout/Musterl%C3%B6sung&amp;diff=12561</id>
		<title>C-Kurs/Code Layout/Musterlösung</title>
		<link rel="alternate" type="text/html" href="wiki.stageing.freitagsrunde.org//index.php?title=C-Kurs/Code_Layout/Musterl%C3%B6sung&amp;diff=12561"/>
		<updated>2009-09-23T13:35:00Z</updated>

		<summary type="html">&lt;p&gt;DStulle: Einzeilige Lösung hinzugefügt&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[http://docs.freitagsrunde.org/Veranstaltungen/ckurs_2009/loesungen/sum_refactor_done.c sum_refactor_done.c]&lt;br /&gt;
&lt;br /&gt;
[http://docs.freitagsrunde.org/Veranstaltungen/ckurs_2009/loesungen/fac_refactor_done.c fac_refactor_done.c]&lt;br /&gt;
&lt;br /&gt;
Alternativ könnte man auch nur eine Zeiel nutzen:&lt;br /&gt;
&lt;br /&gt;
 int faculty(int n){&lt;br /&gt;
     return 1==n ? 1 : n*faculty(n-1);&lt;br /&gt;
 }&lt;/div&gt;</summary>
		<author><name>DStulle</name></author>
	</entry>
	<entry>
		<id>wiki.stageing.freitagsrunde.org//index.php?title=C-Kurs/BubbleSortDebug/Musterl%C3%B6sung&amp;diff=12560</id>
		<title>C-Kurs/BubbleSortDebug/Musterlösung</title>
		<link rel="alternate" type="text/html" href="wiki.stageing.freitagsrunde.org//index.php?title=C-Kurs/BubbleSortDebug/Musterl%C3%B6sung&amp;diff=12560"/>
		<updated>2009-09-23T13:26:29Z</updated>

		<summary type="html">&lt;p&gt;DStulle: Zeilennummern entfernt&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Der erste Bug verursacht einen Segmentation fault oder eine falsche Ausgabe. Er befindet sich in Zeile 23. Die Abbruchbedingung ist j &amp;lt; 5, dass heisst j geht bis 4. Der darauffolgende Test greift durch j+1 auf das 6. Element in dem Array gibt, obwohl es nur 5 gibt. cItems gibt muss auf (cItems-1) geändert werden, damit es funktioniert.&lt;br /&gt;
&lt;br /&gt;
Der zweite Bug verursacht einen vorzeitigen Abbruch der äußeren for-Schleife (Zeile 23), wodurch das array nicht komplett sortiert wird. in Zeile 36 wird citems dekrementiert. Dadurch wird auch die Abbruchbedingung verändert.&lt;br /&gt;
Es gibt zwei Methoden diesen Bug zu beheben:&lt;br /&gt;
1. Einfach: Zeile 36 entfernen. Allerdings ist Bubblesort jetzt noch ineffizienter&lt;br /&gt;
2. cItems in Zeile 26 und 36 durch ein neue ersetzen, welche verhindert das cItems konstant bleibt.&lt;br /&gt;
&lt;br /&gt;
Korrigierter Code:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 #include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 typedef struct&lt;br /&gt;
 {&lt;br /&gt;
    char *data;&lt;br /&gt;
    int key;&lt;br /&gt;
 } item;&lt;br /&gt;
&lt;br /&gt;
 item array[] =&lt;br /&gt;
 {&lt;br /&gt;
     {&amp;quot;bill&amp;quot;, 3},&lt;br /&gt;
     {&amp;quot;neil&amp;quot;, 4},&lt;br /&gt;
     {&amp;quot;john&amp;quot;, 2},&lt;br /&gt;
     {&amp;quot;rick&amp;quot;, 5},&lt;br /&gt;
     {&amp;quot;alex&amp;quot;, 1},&lt;br /&gt;
 };&lt;br /&gt;
 &lt;br /&gt;
 void sort(item *paItems, unsigned cItems)&lt;br /&gt;
 {&lt;br /&gt;
     int i = 0, j = 0;&lt;br /&gt;
     int s = 1;&lt;br /&gt;
     int cLeft = cItems - 1;&lt;br /&gt;
     for (i = 0; i &amp;lt; cItems &amp;amp;&amp;amp; s != 0; i++)&lt;br /&gt;
     {&lt;br /&gt;
         s = 0;&lt;br /&gt;
         for (j = 0; j &amp;lt; cLeft; j++)&lt;br /&gt;
         {&lt;br /&gt;
             if (paItems[j].key &amp;gt; paItems[j+1].key)&lt;br /&gt;
             {&lt;br /&gt;
                 item Temp = paItems[j];&lt;br /&gt;
                 paItems[j] = paItems[j+1];&lt;br /&gt;
                 paItems[j+1] = Temp;&lt;br /&gt;
                 s++;&lt;br /&gt;
             }&lt;br /&gt;
         }&lt;br /&gt;
         cLeft--;&lt;br /&gt;
     }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
 int main(void)&lt;br /&gt;
 {&lt;br /&gt;
     int i = 0;&lt;br /&gt;
&lt;br /&gt;
     sort(array, 5);&lt;br /&gt;
     for (i = 0; i &amp;lt; 5; i++)&lt;br /&gt;
     {&lt;br /&gt;
         printf(&amp;quot;array[%d] == {%s, %d}\n&amp;quot;,&lt;br /&gt;
                i, array[i].data, array[i].key);&lt;br /&gt;
     }&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>DStulle</name></author>
	</entry>
	<entry>
		<id>wiki.stageing.freitagsrunde.org//index.php?title=C-Kurs/Code_Layout&amp;diff=12559</id>
		<title>C-Kurs/Code Layout</title>
		<link rel="alternate" type="text/html" href="wiki.stageing.freitagsrunde.org//index.php?title=C-Kurs/Code_Layout&amp;diff=12559"/>
		<updated>2009-09-23T13:17:04Z</updated>

		<summary type="html">&lt;p&gt;DStulle: typos&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Aufgabenstellung =&lt;br /&gt;
&lt;br /&gt;
In dieser Aufgabe sind einige Codeschnipsel gegeben die zwar funktionieren, aber etwas unübersichtlich oder umständlich geschrieben sind. Deine Aufgabe ist es diese so um zu schreiben, dass sie übersichtlicher und einfacher sind. Vergleiche die Ergebnisse mit deinem Nachbarn und sprecht über eure Ergebnisse.&lt;br /&gt;
&lt;br /&gt;
== sum.c ==&lt;br /&gt;
&lt;br /&gt;
In der Funktion sum hat sich eine for-Schleife versteckt. Schreibe die Funktion so um, dass sie übersichtlicher ist. Gib den Variablen bei dieser Gelegenheit selbsterklärende Namen.&lt;br /&gt;
&lt;br /&gt;
 #define klaus jonny&lt;br /&gt;
 &lt;br /&gt;
 /**&lt;br /&gt;
  * Berechnet die summe der Zahlen im übergebenen array&lt;br /&gt;
  * @breite array mit den Zahlen&lt;br /&gt;
  * @hoehe länge des arrays&lt;br /&gt;
  */&lt;br /&gt;
 int sum(int *breiTee, int hoehe)&lt;br /&gt;
 {&lt;br /&gt;
 	int vorgabe = 0;&lt;br /&gt;
 	int i = 1;&lt;br /&gt;
 	do&lt;br /&gt;
 	{&lt;br /&gt;
 		int klaus = vorgabe + breiTee[i-1];&lt;br /&gt;
 		vorgabe = jonny;&lt;br /&gt;
 		i = i + 1;&lt;br /&gt;
 	} while (i &amp;lt;= hoehe);&lt;br /&gt;
 &lt;br /&gt;
 	return vorgabe;&lt;br /&gt;
 } &lt;br /&gt;
&lt;br /&gt;
Hier ist die Vorlage: [[http://docs.freitagsrunde.org/Veranstaltungen/ckurs_2009/vorgaben/sum_refactor.c sum_refactor.c]]&lt;br /&gt;
&lt;br /&gt;
== fac.c ==&lt;br /&gt;
&lt;br /&gt;
Die Fakultät kann auch Rekursiv berechnet werden, allerdings könnte man das auch bequem in zwei Zeilen machen, ohne dabei unübersichtlich zu werden.&lt;br /&gt;
&lt;br /&gt;
 /**&lt;br /&gt;
  * Brerechnet die Fakultät&lt;br /&gt;
  * @n Zahl von der die Fakultät berechnet werden soll&lt;br /&gt;
  * @return Fakultät von n&lt;br /&gt;
  */&lt;br /&gt;
 int faculty(int n){&lt;br /&gt;
   if (n &amp;lt; 2) return 1;&lt;br /&gt;
 &lt;br /&gt;
   if(n == 2)&lt;br /&gt;
   {&lt;br /&gt;
       return 2;&lt;br /&gt;
   } else {&lt;br /&gt;
     int m;&lt;br /&gt;
     m = n*faculty(n-1);&lt;br /&gt;
     return m;&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Hier ist die Vorlage: [[http://docs.freitagsrunde.org/Veranstaltungen/ckurs_2009/vorgaben/fac_refactor.c fac_refactor.c]]&lt;br /&gt;
&lt;br /&gt;
= Kommentare =&lt;/div&gt;</summary>
		<author><name>DStulle</name></author>
	</entry>
	<entry>
		<id>wiki.stageing.freitagsrunde.org//index.php?title=C-Kurs_2009/Vortrag06&amp;diff=12557</id>
		<title>C-Kurs 2009/Vortrag06</title>
		<link rel="alternate" type="text/html" href="wiki.stageing.freitagsrunde.org//index.php?title=C-Kurs_2009/Vortrag06&amp;diff=12557"/>
		<updated>2009-09-23T12:48:54Z</updated>

		<summary type="html">&lt;p&gt;DStulle: /* Debugging I */ irgend eine gdb reference, die ich irgendwo gefunden habe verlinkt.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Debugging I =&lt;br /&gt;
&lt;br /&gt;
Vortragender: &#039;&#039;&#039;Alex E.&#039;&#039;&#039; &amp;lt;aeichner freitagsrunde.org&amp;gt; &lt;br /&gt;
&lt;br /&gt;
=== Themen ===&lt;br /&gt;
* Arten von Bugs&lt;br /&gt;
* beliebte Fehler in C&lt;br /&gt;
* Möglichkeiten zum Debuggen&lt;br /&gt;
* GDB (GNU Debugger)&lt;br /&gt;
&lt;br /&gt;
=== Folien ===&lt;br /&gt;
* [http://docs.freitagsrunde.org/Veranstaltungen/ckurs_2009/vorlesungen/06-debugging-1/06-debugging.pdf Folien]&lt;br /&gt;
&lt;br /&gt;
=== Mitschnitt ===&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:CKurs]]&lt;br /&gt;
&lt;br /&gt;
=== Material ===&lt;br /&gt;
&lt;br /&gt;
[http://users.ece.utexas.edu/~adnan/gdb-refcard.pdf GDB-Reference]&lt;/div&gt;</summary>
		<author><name>DStulle</name></author>
	</entry>
	<entry>
		<id>wiki.stageing.freitagsrunde.org//index.php?title=C-Kurs_2009/Vortrag07&amp;diff=12556</id>
		<title>C-Kurs 2009/Vortrag07</title>
		<link rel="alternate" type="text/html" href="wiki.stageing.freitagsrunde.org//index.php?title=C-Kurs_2009/Vortrag07&amp;diff=12556"/>
		<updated>2009-09-23T12:39:11Z</updated>

		<summary type="html">&lt;p&gt;DStulle: /* Folien */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Guter Code =&lt;br /&gt;
&lt;br /&gt;
Vortragende: &#039;&#039;&#039;Daniel S.&#039;&#039;&#039; &amp;lt;dstulle gmx.de&amp;gt; &lt;br /&gt;
&lt;br /&gt;
=== Themen ===&lt;br /&gt;
* Guter Code&lt;br /&gt;
&lt;br /&gt;
==== Ein paar Genanken ====&lt;br /&gt;
&lt;br /&gt;
Guter Code? Was ist gut?&lt;br /&gt;
Die frage ob etwas gut oder schlecht ist, definiert sich über das Ziel, dass man hat.&lt;br /&gt;
&lt;br /&gt;
Erst wenn man sich darüber im klaren ist, was man für ein Ziel hat kann man sich die Frage stellen ob etwas gut ist. z.B.: was für ein Auto ist gut? Ein Bus, ein Lastwagen, ein Rennwagen? Es kommt ganz darauf an ob man viele Leute mitnehmen will, viel Krams mitnehmen will oder einfach schnell sein will.&lt;br /&gt;
&lt;br /&gt;
Was will man üblicher weise erreichen wenn man Programmiert.&lt;br /&gt;
Zunächst einmal will man der Maschine sagen was sie tun soll. Aber ist das alles?&lt;br /&gt;
&lt;br /&gt;
Meistens will man den Code selber später nochmal lesen und verstehen. Also schreibt man ihn auch für sich.&lt;br /&gt;
&lt;br /&gt;
Sehr oft schreibt man den Code mit anderen zusammen oder als Teil eines Projektes mit Anderen. Also schreibt man ihn auch für andere.&lt;br /&gt;
&lt;br /&gt;
Warum ist guter Code, gutes Layout wichtig?&lt;br /&gt;
&lt;br /&gt;
Ihr schreibt den Programmcode nicht für den Computer sondern für euch und andere Menschen. Sonst könntet ihr das ganze gleich in Assembler rein hacken und es dann vergessen.&lt;br /&gt;
&lt;br /&gt;
Programmieren uns Softwareengineering ist bis auf wenige ausnahmen ein sehr kommunikativer und zwischenmenschlicher Prozess. Deswegen haben Informatiker auch eine so hohe Sozialkompetenz (Kein Scherz)&lt;br /&gt;
&lt;br /&gt;
Ihr schreibt den Code, damit ihn andere Leute oder ihr selber später mal lesen könnt. Programmieren ist eine besondere Art der Kommunikation. Genau wie die Menschliche Sprache ein Medium für Informationen, Gedanken und Konzepten ist, wird die Programmiersprache genau dazu benutzt mit der Besonderheit dass sie sogar ein Computer verstehen kann, aber das ist eigentlich nebensächlich ;-).&lt;br /&gt;
&lt;br /&gt;
Guter Code ist sehr hilfreich beim Auffinden von Fehlern.&lt;br /&gt;
&lt;br /&gt;
Guter Code lässt sich leichter ändern und anpassen.&lt;br /&gt;
&lt;br /&gt;
Ihr seht also es ist wichtig sich beim Schreiben von Code an bestimmte Regeln zu halten. Ein Programm zu schreiben was nur der Compiler versteht uns sonst niemand anders ist keine Kunst und obendrein nutzlos.&lt;br /&gt;
&lt;br /&gt;
Die frage ob ein Code gut ist oder nicht, kann man nicht so leicht beantworten, da es kein Maß gibt, und keine Methode um dies zu ermitteln.&lt;br /&gt;
&lt;br /&gt;
Für guten Code braucht man ein Gutes design. Guter Code fängt beim design der Funktionen, Prozeduren, Modulen, Strukturen und dessen Zusammenspiel an.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Verschiedene Stufen der Code Qualität:&lt;br /&gt;
* Laufender Code (Compiler)&lt;br /&gt;
* Richtiger Code (Beweise / Test)&lt;br /&gt;
* Guter Code (Intuition / Geschmack)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Woran erkennt man guten Code?&lt;br /&gt;
&lt;br /&gt;
* Guter Code ist einfach zu lesen und leicht zu verstehen, auch wenn man die Sprache nicht kennt.&lt;br /&gt;
* Guter Code ist kurz und einfach.&lt;br /&gt;
* Bei gutem Code muss man nicht lange darüber um ihn zu verstehen.&lt;br /&gt;
* Guter Code ist in sich geschlossen.&lt;br /&gt;
* Guter Code lässt sich einfach ändern und anpassen.&lt;br /&gt;
* Guter Code hat keine unnötigen Wiederholungen.&lt;br /&gt;
* Guter Code tut das, was er soll.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Stichworte: Einfachheit, Lesbarkeit, Modularität, Schichten, Design, Effizienz, Eleganz, und Klarheit&lt;br /&gt;
&lt;br /&gt;
Bezeichner (Variablen-, Funktionen): Eindeutig, Selbsterklärend,&lt;br /&gt;
Konventionen: Ungarische Notation (Apps Hungarian, Systems Hungarian)&lt;br /&gt;
&lt;br /&gt;
Versionsverwaltung kann hilfreich sein um guten Code zu erzeugen.&lt;br /&gt;
&lt;br /&gt;
=== Folien ===&lt;br /&gt;
* [http://docs.freitagsrunde.org/Veranstaltungen/ckurs_2009/vorlesungen/07-guter-code/c-kurs-guter-code-sturm.pdf c-kurs-guter-code-sturm.pdf] (Alpha Version)&lt;br /&gt;
&lt;br /&gt;
=== Aufgaben ===&lt;br /&gt;
&lt;br /&gt;
==== Ein paar Gedanken ====&lt;br /&gt;
Die aufgaben sollten im Team gelöst werden, bzw als interaktion zwischen mehreren Teilnehmern. Kommunikation sollte irgendwie eine rolle spielen.&lt;br /&gt;
&lt;br /&gt;
=== Mitschnitt ===&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:CKurs]]&lt;/div&gt;</summary>
		<author><name>DStulle</name></author>
	</entry>
	<entry>
		<id>wiki.stageing.freitagsrunde.org//index.php?title=C-Kurs/Code_Layout&amp;diff=12539</id>
		<title>C-Kurs/Code Layout</title>
		<link rel="alternate" type="text/html" href="wiki.stageing.freitagsrunde.org//index.php?title=C-Kurs/Code_Layout&amp;diff=12539"/>
		<updated>2009-09-23T08:47:38Z</updated>

		<summary type="html">&lt;p&gt;DStulle: /* fac.c */ Kommentar hinzugefügt&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Aufgabenstellung =&lt;br /&gt;
&lt;br /&gt;
In dieser Aufgabe sind einige Codeschnipsel gegeben die zwar funktionieren, aber etwas unübersichtlich oder umständlich geschrieben sind. Deine Aufgabe ist es diese so um zu schreiben, dass sie übersichtlicher und einfacher sind. Vergleiche die Ergebnisse mit deinem Nachbarn und sprecht über eure Ergebnisse.&lt;br /&gt;
&lt;br /&gt;
== sum.c ==&lt;br /&gt;
&lt;br /&gt;
In der Funktion sum hat sich eine for-Schleife versteckt. Schreibe die Funktion so um, dass sie übersichtlicher ist. Gib den variablen bei dieser gelegenheit selbsterklärende Namen&lt;br /&gt;
&lt;br /&gt;
 #define klaus jonny&lt;br /&gt;
 &lt;br /&gt;
 /**&lt;br /&gt;
  * Berechnet die summe der Zahlen im übergebenen array&lt;br /&gt;
  * @breite array mit den Zahlen&lt;br /&gt;
  * @hoehe länge des arrays&lt;br /&gt;
  */&lt;br /&gt;
 int sum(int *breiTee, int hoehe)&lt;br /&gt;
 {&lt;br /&gt;
 	int vorgabe = 0;&lt;br /&gt;
 	int i = 1;&lt;br /&gt;
 	do&lt;br /&gt;
 	{&lt;br /&gt;
 		int klaus = vorgabe + breiTee[i-1];&lt;br /&gt;
 		vorgabe = jonny;&lt;br /&gt;
 		i = i + 1;&lt;br /&gt;
 	} while (i &amp;lt;= hoehe);&lt;br /&gt;
 &lt;br /&gt;
 	return vorgabe;&lt;br /&gt;
 } &lt;br /&gt;
&lt;br /&gt;
Hier ist die Vorlage: [[http://docs.freitagsrunde.org/Veranstaltungen/ckurs_2009/vorgaben/sum_refactor.c sum_refactor.c]]&lt;br /&gt;
&lt;br /&gt;
== fac.c ==&lt;br /&gt;
&lt;br /&gt;
Die Fakultät kann auch Rekursiv berechnet werden, allerdings könnte man das auch bequem in zwei Zeilen machen, ohne dabei unübersichtlich zu werden.&lt;br /&gt;
&lt;br /&gt;
 /**&lt;br /&gt;
  * Brerechnet die Fakultät&lt;br /&gt;
  * @n Zahl von der die Fakultät berechnet werden soll&lt;br /&gt;
  * @return Fakultät von n&lt;br /&gt;
  */&lt;br /&gt;
 int faculty(int n){&lt;br /&gt;
   if (n &amp;lt; 2) return 1;&lt;br /&gt;
 &lt;br /&gt;
   if(n == 2)&lt;br /&gt;
   {&lt;br /&gt;
       return 2;&lt;br /&gt;
   } else {&lt;br /&gt;
     int m;&lt;br /&gt;
     m = n*faculty(n-1);&lt;br /&gt;
     return m;&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Hier ist die Vorlage: [[http://docs.freitagsrunde.org/Veranstaltungen/ckurs_2009/vorgaben/fac_refactor.c fac_refactor.c]]&lt;br /&gt;
&lt;br /&gt;
= Kommentare =&lt;/div&gt;</summary>
		<author><name>DStulle</name></author>
	</entry>
	<entry>
		<id>wiki.stageing.freitagsrunde.org//index.php?title=C-Kurs/Code_Layout&amp;diff=12538</id>
		<title>C-Kurs/Code Layout</title>
		<link rel="alternate" type="text/html" href="wiki.stageing.freitagsrunde.org//index.php?title=C-Kurs/Code_Layout&amp;diff=12538"/>
		<updated>2009-09-23T08:45:45Z</updated>

		<summary type="html">&lt;p&gt;DStulle: /* Aufgabenstellung */ vorgabe für fac.c verlinkt&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Aufgabenstellung =&lt;br /&gt;
&lt;br /&gt;
In dieser Aufgabe sind einige Codeschnipsel gegeben die zwar funktionieren, aber etwas unübersichtlich oder umständlich geschrieben sind. Deine Aufgabe ist es diese so um zu schreiben, dass sie übersichtlicher und einfacher sind. Vergleiche die Ergebnisse mit deinem Nachbarn und sprecht über eure Ergebnisse.&lt;br /&gt;
&lt;br /&gt;
== sum.c ==&lt;br /&gt;
&lt;br /&gt;
In der Funktion sum hat sich eine for-Schleife versteckt. Schreibe die Funktion so um, dass sie übersichtlicher ist. Gib den variablen bei dieser gelegenheit selbsterklärende Namen&lt;br /&gt;
&lt;br /&gt;
 #define klaus jonny&lt;br /&gt;
 &lt;br /&gt;
 /**&lt;br /&gt;
  * Berechnet die summe der Zahlen im übergebenen array&lt;br /&gt;
  * @breite array mit den Zahlen&lt;br /&gt;
  * @hoehe länge des arrays&lt;br /&gt;
  */&lt;br /&gt;
 int sum(int *breiTee, int hoehe)&lt;br /&gt;
 {&lt;br /&gt;
 	int vorgabe = 0;&lt;br /&gt;
 	int i = 1;&lt;br /&gt;
 	do&lt;br /&gt;
 	{&lt;br /&gt;
 		int klaus = vorgabe + breiTee[i-1];&lt;br /&gt;
 		vorgabe = jonny;&lt;br /&gt;
 		i = i + 1;&lt;br /&gt;
 	} while (i &amp;lt;= hoehe);&lt;br /&gt;
 &lt;br /&gt;
 	return vorgabe;&lt;br /&gt;
 } &lt;br /&gt;
&lt;br /&gt;
Hier ist die Vorlage: [[http://docs.freitagsrunde.org/Veranstaltungen/ckurs_2009/vorgaben/sum_refactor.c sum_refactor.c]]&lt;br /&gt;
&lt;br /&gt;
== fac.c ==&lt;br /&gt;
&lt;br /&gt;
Die Fakultät kann auch Rekursiv berechnet werden, allerdings könnte man das auch bequem in zwei Zeilen machen, ohne dabei unübersichtlich zu werden.&lt;br /&gt;
&lt;br /&gt;
 int faculty(int n){&lt;br /&gt;
   if (n &amp;lt; 2) return 1;&lt;br /&gt;
 &lt;br /&gt;
   if(n == 2)&lt;br /&gt;
   {&lt;br /&gt;
       return 2;&lt;br /&gt;
   } else {&lt;br /&gt;
     int m;&lt;br /&gt;
     m = n*faculty(n-1);&lt;br /&gt;
     return m;&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Hier ist die Vorlage: [[http://docs.freitagsrunde.org/Veranstaltungen/ckurs_2009/vorgaben/fac_refactor.c fac_refactor.c]]&lt;br /&gt;
&lt;br /&gt;
= Kommentare =&lt;/div&gt;</summary>
		<author><name>DStulle</name></author>
	</entry>
	<entry>
		<id>wiki.stageing.freitagsrunde.org//index.php?title=C-Kurs/Code_Layout/Musterl%C3%B6sung&amp;diff=12537</id>
		<title>C-Kurs/Code Layout/Musterlösung</title>
		<link rel="alternate" type="text/html" href="wiki.stageing.freitagsrunde.org//index.php?title=C-Kurs/Code_Layout/Musterl%C3%B6sung&amp;diff=12537"/>
		<updated>2009-09-23T08:44:10Z</updated>

		<summary type="html">&lt;p&gt;DStulle: Überflüssige Klammern entfernt&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[http://docs.freitagsrunde.org/Veranstaltungen/ckurs_2009/loesungen/sum_refactor_done.c sum_refactor_done.c]&lt;br /&gt;
&lt;br /&gt;
[http://docs.freitagsrunde.org/Veranstaltungen/ckurs_2009/loesungen/fac_refactor_done.c fac_refactor_done.c]&lt;/div&gt;</summary>
		<author><name>DStulle</name></author>
	</entry>
	<entry>
		<id>wiki.stageing.freitagsrunde.org//index.php?title=C-Kurs/Code_Layout/Musterl%C3%B6sung&amp;diff=12536</id>
		<title>C-Kurs/Code Layout/Musterlösung</title>
		<link rel="alternate" type="text/html" href="wiki.stageing.freitagsrunde.org//index.php?title=C-Kurs/Code_Layout/Musterl%C3%B6sung&amp;diff=12536"/>
		<updated>2009-09-23T08:43:34Z</updated>

		<summary type="html">&lt;p&gt;DStulle: Lösungsdateien verlinkt&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[http://docs.freitagsrunde.org/Veranstaltungen/ckurs_2009/loesungen/sum_refactor_done.c sum_refactor_done.c]]&lt;br /&gt;
&lt;br /&gt;
[[http://docs.freitagsrunde.org/Veranstaltungen/ckurs_2009/loesungen/fac_refactor_done.c fac_refactor_done.c]]&lt;/div&gt;</summary>
		<author><name>DStulle</name></author>
	</entry>
	<entry>
		<id>wiki.stageing.freitagsrunde.org//index.php?title=C-Kurs/%C3%9Cbungsaufgaben&amp;diff=12534</id>
		<title>C-Kurs/Übungsaufgaben</title>
		<link rel="alternate" type="text/html" href="wiki.stageing.freitagsrunde.org//index.php?title=C-Kurs/%C3%9Cbungsaufgaben&amp;diff=12534"/>
		<updated>2009-09-23T08:17:09Z</updated>

		<summary type="html">&lt;p&gt;DStulle: /* Die Aufgaben */ Musterlösungen zur Vorlesung 4. unlocked&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Wir haben jeder Aufgabe eine Einschätzung ihrer Schwierigkeit auf einer Skala von 1 bis 10 vorangestellt. Bei dieser Einschätzung sind wir von einem Gehirn ausgegangen, für welches das jeweilige Themengebiet völlig neu ist, das jedoch schon ein ganz gutes Verständnis dafür hat wie eine Programmiersprache denn so funktioniert. &lt;br /&gt;
Entsprechend kann eine schwer bewertete Aufgabe aus einem frühen Themengebiet für manch einen sehr einfach oder eine leicht bewertete aus einem späten Themengebiet für einen anderen sehr schwer sein. Es ist nur ein Wert, der euch helfen soll eure nächste Aufgabe zu wählen. &lt;br /&gt;
&lt;br /&gt;
Falls ihr Anmerkungen zu den Aufgaben habt, könnt ihr die Diskussionsseiten der jeweiligen Aufgaben nutzen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Schwierigkeitsgrade ==&lt;br /&gt;
&lt;br /&gt;
#  Reines Tutorial. Man muss nicht viel selbst denken&lt;br /&gt;
#  ...&lt;br /&gt;
#  Leichte Übungsaufgabe. Studies, die noch eher unsicher sind werden hier gut begleitet.&lt;br /&gt;
#  ...&lt;br /&gt;
#  Typische Aufgabe. Man muss den Kopf benutzen, bekommt an schwierigen Stellen aber Hilfestellungen.&lt;br /&gt;
#  ...&lt;br /&gt;
#  Herausfordernd, eher etwas für Studies die etwas fitter sind.&lt;br /&gt;
#  ...&lt;br /&gt;
#  Auch erfahrene Programmierer werden hier ein bis zwei Übungen beschäftigt sein&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
#  Tja, die Idee war da. Wir finden sie auch gut, aber es könnte wirklich anstrengend werden.&lt;br /&gt;
&lt;br /&gt;
== Die Aufgaben ==&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;4&amp;quot; cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
 |- bgcolor=&amp;quot;#D8D8D8&amp;quot;&lt;br /&gt;
 !Aufgabe&lt;br /&gt;
 !Schwierigkeit&lt;br /&gt;
 !Vorwissen&lt;br /&gt;
 !Lerneffekte&lt;br /&gt;
 !Bearbeiter&lt;br /&gt;
 !Korrektur gelesen&lt;br /&gt;
 !Musterlösung&lt;br /&gt;
 |- bgcolor=&amp;quot;#F5F5F5&amp;quot;&lt;br /&gt;
 | [[Ckurs2009/Von der Konsole zum HelloWorld | Von der Konsole zum HelloWorld]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |1&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |1. VL&lt;br /&gt;
 | Konsole benutzen, Hello World&lt;br /&gt;
 | Sebastian D.&lt;br /&gt;
 | [[Benutzer:Mario|Mario]]&lt;br /&gt;
 | &lt;br /&gt;
 |- bgcolor=&amp;quot;#E8E8E8&amp;quot;&lt;br /&gt;
 | [[Ckurs2009/Fakultät | Fakultät]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |2&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |1. VL&lt;br /&gt;
 | Schleifen&lt;br /&gt;
 | Sebastian D.&lt;br /&gt;
 | Daniel&lt;br /&gt;
 |  &lt;br /&gt;
 |- bgcolor=&amp;quot;#F5F5F5&amp;quot;&lt;br /&gt;
 | [[Ckurs2009/Base64 | Base64]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |6&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |1. VL&lt;br /&gt;
 | Operatoren&lt;br /&gt;
 | Sebastian D.&lt;br /&gt;
 | &lt;br /&gt;
 | [[Ckurs2009/Base64/Musterlösung | Base64]]&lt;br /&gt;
 |- bgcolor=&amp;quot;#E8E8E8&amp;quot;&lt;br /&gt;
 | [[Ckurs2009/EingabeAusgabe | Ein- und Ausgabe]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |1&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |2. VL&lt;br /&gt;
 | Einlesen von Benutzereingaben&amp;lt;br&amp;gt;Ausgabe derselben&lt;br /&gt;
 | [[Benutzer:Mario|Mario]]&lt;br /&gt;
 | nion&lt;br /&gt;
 | [[Ckurs2009/EingabeAusgabe/Musterlösung | Ein- und Ausgabe]]&lt;br /&gt;
 |- bgcolor=&amp;quot;#F5F5F5&amp;quot;&lt;br /&gt;
 | [[Ckurs2009/Taschenrechner | Taschenrechner]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |3&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |2. VL&lt;br /&gt;
 | Eingabe+Ausgabe&amp;lt;br&amp;gt;Mathematische Operatoren&lt;br /&gt;
 | [[Benutzer:Mario|Mario]]&lt;br /&gt;
 | [[Benutzer:Tkroenert|TKroenert]]&lt;br /&gt;
 | [[Ckurs2009/Taschenrechner/Musterlösung | Taschenrechner]]&lt;br /&gt;
 |- bgcolor=&amp;quot;#E8E8E8&amp;quot;&lt;br /&gt;
 | [[Ckurs2009/VerschachtelteSchleifen | Verschachtelte Schleifen]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |3&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |2. VL&lt;br /&gt;
 | Umgang mit mehreren verschachtelten Schleifen&lt;br /&gt;
 | [[Benutzer:Dank|Daniel K.]]&lt;br /&gt;
 | AlexanderK&lt;br /&gt;
 |&lt;br /&gt;
 |- bgcolor=&amp;quot;#F5F5F5&amp;quot;&lt;br /&gt;
 | [[Ckurs2009/Glückspiel | Glücksspiel]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |3&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |2. VL&lt;br /&gt;
 | Anwenden von Fallunterscheidungen und Einlesen von Werten aus der Konsole&lt;br /&gt;
 | [[Benutzer:Dank|Daniel K.]]&lt;br /&gt;
 | AlexanderK&lt;br /&gt;
 | &lt;br /&gt;
 |- bgcolor=&amp;quot;#E8E8E8&amp;quot;&lt;br /&gt;
 | [[Ckurs2009/Wochentag | Wochentagsrechnung]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |5&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |2. VL&lt;br /&gt;
 | Einlesen von Benutzereingaben&amp;lt;br&amp;gt;Mathematikverständniss&lt;br /&gt;
 | [[Benutzer:Mario|Mario]]&lt;br /&gt;
 | nion (Musterlösung noch nicht vorhanden)&lt;br /&gt;
 | &lt;br /&gt;
 |- bgcolor=&amp;quot;#F5F5F5&amp;quot;&lt;br /&gt;
 | [[Ckurs2009/Taschenrechner2.0 | Taschenrechner &#039;&#039;2.0&#039;&#039;]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |8&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |2. VL&lt;br /&gt;
 | Knobeln&amp;lt;br&amp;gt;Komplexes Aufgaben lösen&lt;br /&gt;
 | [[Benutzer:Mario|Mario]]&lt;br /&gt;
 | Martin K.&lt;br /&gt;
 | [[Ckurs2009/Taschenrechner2.0/Musterlösung | Taschenrechner &#039;&#039;2.0&#039;&#039;]]&lt;br /&gt;
 |- bgcolor=&amp;quot;#E8E8E8&amp;quot;&lt;br /&gt;
 | [[Ckurs2009/Call by reference | Call by reference]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |4&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |3. VL&lt;br /&gt;
 | Einfache Anwendung von &amp;amp;/*&lt;br /&gt;
 | sping&lt;br /&gt;
 | nion&lt;br /&gt;
 | [[Ckurs2009/Call by reference/Musterlösung | Call by reference]]&lt;br /&gt;
 |- bgcolor=&amp;quot;#F5F5F5&amp;quot;&lt;br /&gt;
 | [[Ckurs2009/Text processing | Text processing]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |4, 6&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |3. VL&lt;br /&gt;
 | Strings&amp;lt;br&amp;gt;Pointer-Arithmetik&amp;lt;br&amp;gt;Pointer auf Pointer&amp;lt;br&amp;gt;Refactoring&lt;br /&gt;
 | sping&lt;br /&gt;
 | [[Benutzer:Mario|Mario]]&lt;br /&gt;
 | [[Ckurs2009/Text processing/Musterlösung | Text processing]]&lt;br /&gt;
 |- bgcolor=&amp;quot;#E8E8E8&amp;quot;&lt;br /&gt;
 | [[Ckurs2009/Palindrome | Palindrome]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |4&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |3. VL&lt;br /&gt;
 | Pointer und Strings&lt;br /&gt;
 | [[Benutzer:Dank|Daniel K.]]&lt;br /&gt;
 |&lt;br /&gt;
 | &lt;br /&gt;
 |- bgcolor=&amp;quot;#F5F5F5&amp;quot;&lt;br /&gt;
 | [[Ckurs2009/(Pointer) Swapping | (Pointer) Swapping]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |5&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |3. VL&lt;br /&gt;
 | Pointer und Arrays benutzen, generisches swap&lt;br /&gt;
 | Katrin&lt;br /&gt;
 |&lt;br /&gt;
 | &lt;br /&gt;
 |- bgcolor=&amp;quot;#E8E8E8&amp;quot;&lt;br /&gt;
 | [[Ckurs2009/Matrizenmultiplikation | Matrizenmultiplikation]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |6&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |3. VL&lt;br /&gt;
 | Mehrdimensionale Arrays&amp;lt;br&amp;gt;const correctness&lt;br /&gt;
 | sping&lt;br /&gt;
 | [[Benutzer:Mario|Mario]]&lt;br /&gt;
 | [[Ckurs2009/Matrizenmultiplikation/Musterlösung | Matrizenmultiplikation]]&lt;br /&gt;
 |- bgcolor=&amp;quot;#F5F5F5&amp;quot;&lt;br /&gt;
 | [[Ckurs2009/Arrayuebergabe | Arrayuebergabe]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |4/5&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; | 4. VL&lt;br /&gt;
 | Einlesen von Benutzereingaben&amp;lt;br&amp;gt;Pointer und Pointerarithmetik&lt;br /&gt;
 | nion&lt;br /&gt;
 | Martin K.&lt;br /&gt;
 | [[Ckurs2009/Arrayuebergabe/Musterlösung | Arrayuebergabe]]&lt;br /&gt;
 |- bgcolor=&amp;quot;#E8E8E8&amp;quot;&lt;br /&gt;
 | [[Ckurs2009/Studentendatenbank | Studentendatenbank]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |4&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; | 4. VL&lt;br /&gt;
 | struct, Pointer, Arrays&lt;br /&gt;
 | AlexanderK&lt;br /&gt;
 |&lt;br /&gt;
 | [[Ckurs2009/Studentendatenbank/Musterlösung | Studentendatenbank]]&lt;br /&gt;
 |- bgcolor=&amp;quot;#F5F5F5&amp;quot;&lt;br /&gt;
 | [[Ckurs2009/Sammelbestellung | Sammelbestellung]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |2-5&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |4. VL&lt;br /&gt;
 | Listen, Pointer, Speicherverwaltung&lt;br /&gt;
 | Florian S.&lt;br /&gt;
 | [[Benutzer:Mario|Mario]]&lt;br /&gt;
 | &lt;br /&gt;
 |- bgcolor=&amp;quot;#E8E8E8&amp;quot;&lt;br /&gt;
 | [[Ckurs2009/Zahlen_sagen | Zahlen sagen]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |5&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |4. VL&lt;br /&gt;
 | Umgang mit Zeichenketten&lt;br /&gt;
 | Martin K.&lt;br /&gt;
 | &lt;br /&gt;
 | [[Ckurs2009/Zahlen_sagen/Musterlösung | Zahlen sagen]]&lt;br /&gt;
 |- bgcolor=&amp;quot;#E8E8E8&amp;quot;&lt;br /&gt;
 | [[Ckurs2009/Compiler, Präprozessor, Header Files | Compiler, Präprozessor, Header Files]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |3&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |5. VL&lt;br /&gt;
 | Arbeiten mit mehreren Quellcode-Dateien, Kompilieren und Linken, Header-Dateien und #include, debugging-Makro verwenden&lt;br /&gt;
 | Katrin&lt;br /&gt;
 | &lt;br /&gt;
 | siehe Folien&lt;br /&gt;
 |- bgcolor=&amp;quot;#F5F5F5&amp;quot;&lt;br /&gt;
 | [[Ckurs2009/Bus Error | Bus Error]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |8&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |5. VL&lt;br /&gt;
 | Pointer, wie entsteht ein bus error&lt;br /&gt;
 | Katrin&lt;br /&gt;
 | &lt;br /&gt;
 |&lt;br /&gt;
 |- bgcolor=&amp;quot;#E8E8E8&amp;quot;&lt;br /&gt;
 | [[Ckurs2009/BubbleSortDebug | BubbleSort Debugging]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; | 5&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; | 6. VL&lt;br /&gt;
 | Debuggen eines Programmes mit gdb&lt;br /&gt;
 | aeichner&lt;br /&gt;
 |&lt;br /&gt;
 | vorhanden&lt;br /&gt;
 |- bgcolor=&amp;quot;#F5F5F5&amp;quot;&lt;br /&gt;
 | [[Ckurs2009/Debug | Debugging]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; | 1-8&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; | 6. VL&lt;br /&gt;
 | Debuggen einer Anwendung nach Wahl&lt;br /&gt;
 | aeichner&lt;br /&gt;
 |&lt;br /&gt;
 | gibt es nicht&lt;br /&gt;
 |- bgcolor=&amp;quot;#E8E8E8&amp;quot;&lt;br /&gt;
 | [[Ckurs2009/Code Layout | Code Layout]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |3&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |7. VL&lt;br /&gt;
 | Kleinere Codeschipsel mit kleinen Unsauberkeiten&lt;br /&gt;
 | Daniel&lt;br /&gt;
 | &lt;br /&gt;
 |&lt;br /&gt;
 |- bgcolor=&amp;quot;#F5F5F5&amp;quot;&lt;br /&gt;
 | [[Ckurs2009/Refactoring | Refactoring]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |5-9&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |7. VL&lt;br /&gt;
 | Wie verbessere ich den Quellcode eines Programmes.&lt;br /&gt;
 | Daniel&lt;br /&gt;
 | &lt;br /&gt;
 | vorhanden&lt;br /&gt;
 |- bgcolor=&amp;quot;#E8E8E8&amp;quot;&lt;br /&gt;
 | [[Ckurs2009/Cat | Cat]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; | 6&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; | ....&lt;br /&gt;
 | Arbeiten mit Dateien&amp;lt;br&amp;gt;Kommandozeilenparameter&lt;br /&gt;
 | nion&lt;br /&gt;
 | sping&lt;br /&gt;
 | vorhanden&lt;br /&gt;
 |- bgcolor=&amp;quot;#F5F5F5&amp;quot;&lt;br /&gt;
 | [[Ckurs2009/Pong | Pong]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; | 7&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; | ...&lt;br /&gt;
 | allgemeiner Programmablauf, fortgeschrittene Konsolenausgaben/eingaben&lt;br /&gt;
 | AlexanderK&lt;br /&gt;
 |&lt;br /&gt;
 | vorhanden &lt;br /&gt;
 |- bgcolor=&amp;quot;#E8E8E8&amp;quot;&lt;br /&gt;
 | [[Ckurs2009/Buchhaltung | Buchhaltung]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; | 6&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; | ....&lt;br /&gt;
 | Lesen aus Dateien&lt;br /&gt;
 | reiner&lt;br /&gt;
 | &lt;br /&gt;
 | &lt;br /&gt;
 |- bgcolor=&amp;quot;#F5F5F5&amp;quot;&lt;br /&gt;
 | [[Ckurs2009/StringArraySortieren | StringArraySortieren]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; | 7&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; | ...&lt;br /&gt;
 | Konsolparameter, Funktionspointer, stdlib&lt;br /&gt;
 | reiner&lt;br /&gt;
 |&lt;br /&gt;
 | vorhanden&lt;br /&gt;
 |- bgcolor=&amp;quot;#E8E8E8&amp;quot;&lt;br /&gt;
 | [[Ckurs/integral | integral]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; | 2&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; | ....&lt;br /&gt;
 | Funktionspointer&lt;br /&gt;
 | reiner&lt;br /&gt;
 | &lt;br /&gt;
 | &lt;br /&gt;
 |- bgcolor=&amp;quot;#F5F5F5&amp;quot;&lt;br /&gt;
 | [[Ckurs/forschleife | forschleife]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; | 2&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; | ...&lt;br /&gt;
 | Bug&lt;br /&gt;
 | reiner&lt;br /&gt;
 | nion&lt;br /&gt;
 | vorhanden&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Kleine und große Probleme ==&lt;br /&gt;
&lt;br /&gt;
* Die Tubit-Accounts haben nicht /bin/bash als shell, so dass die &amp;lt;strong&amp;gt;Cursortasten&amp;lt;/strong&amp;gt; nicht funktionieren. Workaround: als erstes Kommando &#039;bash&#039; eingeben, man sieht dann auch in welchem Verzeichnis man gerade ist.&lt;br /&gt;
* wenn man nur den Promt &#039;bash-0.12&#039; oder so erhält, also ohne das Verzeichnis in dem man ist, folgendes Kommando eingeben: &amp;lt;tt&amp;gt;export PS1=&#039;\u@\h:\w$ &#039;&amp;lt;/tt&amp;gt; oder zum dauerhaften Speichern: &amp;lt;tt&amp;gt; echo &amp;quot;export PS1=&#039;\u@\h:\w$ &#039;&amp;quot; &amp;gt;&amp;gt; ~/.bashrc &amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Musterlösungen ==&lt;br /&gt;
Die Lösungen zu den Aufgaben werden nach den jeweiligen Übungen hier veröffentlicht. Falls dies nicht geschieht, bitte den zuständigen Tutor fragen.&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* [[Ckurs2009/Feedback|Feedback zum Kurs 2009]]&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:CKurs]]&lt;br /&gt;
[[Kategorie:CKurs Aufgaben]]&lt;/div&gt;</summary>
		<author><name>DStulle</name></author>
	</entry>
	<entry>
		<id>wiki.stageing.freitagsrunde.org//index.php?title=C-Kurs_2009/Vortrag07&amp;diff=12527</id>
		<title>C-Kurs 2009/Vortrag07</title>
		<link rel="alternate" type="text/html" href="wiki.stageing.freitagsrunde.org//index.php?title=C-Kurs_2009/Vortrag07&amp;diff=12527"/>
		<updated>2009-09-23T01:55:21Z</updated>

		<summary type="html">&lt;p&gt;DStulle: /* Folien */ Folien verlinkt&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Guter Code =&lt;br /&gt;
&lt;br /&gt;
Vortragende: &#039;&#039;&#039;Daniel S.&#039;&#039;&#039; &amp;lt;dstulle gmx.de&amp;gt; &lt;br /&gt;
&lt;br /&gt;
=== Themen ===&lt;br /&gt;
* Guter Code&lt;br /&gt;
&lt;br /&gt;
==== Ein paar Genanken ====&lt;br /&gt;
&lt;br /&gt;
Guter Code? Was ist gut?&lt;br /&gt;
Die frage ob etwas gut oder schlecht ist, definiert sich über das Ziel, dass man hat.&lt;br /&gt;
&lt;br /&gt;
Erst wenn man sich darüber im klaren ist, was man für ein Ziel hat kann man sich die Frage stellen ob etwas gut ist. z.B.: was für ein Auto ist gut? Ein Bus, ein Lastwagen, ein Rennwagen? Es kommt ganz darauf an ob man viele Leute mitnehmen will, viel Krams mitnehmen will oder einfach schnell sein will.&lt;br /&gt;
&lt;br /&gt;
Was will man üblicher weise erreichen wenn man Programmiert.&lt;br /&gt;
Zunächst einmal will man der Maschine sagen was sie tun soll. Aber ist das alles?&lt;br /&gt;
&lt;br /&gt;
Meistens will man den Code selber später nochmal lesen und verstehen. Also schreibt man ihn auch für sich.&lt;br /&gt;
&lt;br /&gt;
Sehr oft schreibt man den Code mit anderen zusammen oder als Teil eines Projektes mit Anderen. Also schreibt man ihn auch für andere.&lt;br /&gt;
&lt;br /&gt;
Warum ist guter Code, gutes Layout wichtig?&lt;br /&gt;
&lt;br /&gt;
Ihr schreibt den Programmcode nicht für den Computer sondern für euch und andere Menschen. Sonst könntet ihr das ganze gleich in Assembler rein hacken und es dann vergessen.&lt;br /&gt;
&lt;br /&gt;
Programmieren uns Softwareengineering ist bis auf wenige ausnahmen ein sehr kommunikativer und zwischenmenschlicher Prozess. Deswegen haben Informatiker auch eine so hohe Sozialkompetenz (Kein Scherz)&lt;br /&gt;
&lt;br /&gt;
Ihr schreibt den Code, damit ihn andere Leute oder ihr selber später mal lesen könnt. Programmieren ist eine besondere Art der Kommunikation. Genau wie die Menschliche Sprache ein Medium für Informationen, Gedanken und Konzepten ist, wird die Programmiersprache genau dazu benutzt mit der Besonderheit dass sie sogar ein Computer verstehen kann, aber das ist eigentlich nebensächlich ;-).&lt;br /&gt;
&lt;br /&gt;
Guter Code ist sehr hilfreich beim Auffinden von Fehlern.&lt;br /&gt;
&lt;br /&gt;
Guter Code lässt sich leichter ändern und anpassen.&lt;br /&gt;
&lt;br /&gt;
Ihr seht also es ist wichtig sich beim Schreiben von Code an bestimmte Regeln zu halten. Ein Programm zu schreiben was nur der Compiler versteht uns sonst niemand anders ist keine Kunst und obendrein nutzlos.&lt;br /&gt;
&lt;br /&gt;
Die frage ob ein Code gut ist oder nicht, kann man nicht so leicht beantworten, da es kein Maß gibt, und keine Methode um dies zu ermitteln.&lt;br /&gt;
&lt;br /&gt;
Für guten Code braucht man ein Gutes design. Guter Code fängt beim design der Funktionen, Prozeduren, Modulen, Strukturen und dessen Zusammenspiel an.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Verschiedene Stufen der Code Qualität:&lt;br /&gt;
* Laufender Code (Compiler)&lt;br /&gt;
* Richtiger Code (Beweise / Test)&lt;br /&gt;
* Guter Code (Intuition / Geschmack)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Woran erkennt man guten Code?&lt;br /&gt;
&lt;br /&gt;
* Guter Code ist einfach zu lesen und leicht zu verstehen, auch wenn man die Sprache nicht kennt.&lt;br /&gt;
* Guter Code ist kurz und einfach.&lt;br /&gt;
* Bei gutem Code muss man nicht lange darüber um ihn zu verstehen.&lt;br /&gt;
* Guter Code ist in sich geschlossen.&lt;br /&gt;
* Guter Code lässt sich einfach ändern und anpassen.&lt;br /&gt;
* Guter Code hat keine unnötigen Wiederholungen.&lt;br /&gt;
* Guter Code tut das, was er soll.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Stichworte: Einfachheit, Lesbarkeit, Modularität, Schichten, Design, Effizienz, Eleganz, und Klarheit&lt;br /&gt;
&lt;br /&gt;
Bezeichner (Variablen-, Funktionen): Eindeutig, Selbsterklärend,&lt;br /&gt;
Konventionen: Ungarische Notation (Apps Hungarian, Systems Hungarian)&lt;br /&gt;
&lt;br /&gt;
Versionsverwaltung kann hilfreich sein um guten Code zu erzeugen.&lt;br /&gt;
&lt;br /&gt;
=== Folien ===&lt;br /&gt;
* [http://docs.freitagsrunde.org/Veranstaltungen/ckurs_2009/vorlesungen/07-guter-code/c-kurs-guter-code-sturm.pdf c-kurs-guter-code-sturm.pdf]&lt;br /&gt;
&lt;br /&gt;
=== Aufgaben ===&lt;br /&gt;
&lt;br /&gt;
==== Ein paar Gedanken ====&lt;br /&gt;
Die aufgaben sollten im Team gelöst werden, bzw als interaktion zwischen mehreren Teilnehmern. Kommunikation sollte irgendwie eine rolle spielen.&lt;br /&gt;
&lt;br /&gt;
=== Mitschnitt ===&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:CKurs]]&lt;/div&gt;</summary>
		<author><name>DStulle</name></author>
	</entry>
	<entry>
		<id>wiki.stageing.freitagsrunde.org//index.php?title=C-Kurs/Refactoring&amp;diff=12523</id>
		<title>C-Kurs/Refactoring</title>
		<link rel="alternate" type="text/html" href="wiki.stageing.freitagsrunde.org//index.php?title=C-Kurs/Refactoring&amp;diff=12523"/>
		<updated>2009-09-22T18:24:35Z</updated>

		<summary type="html">&lt;p&gt;DStulle: /* Teil 2 */ zusatzteil Markiert&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Teil 1 =&lt;br /&gt;
&lt;br /&gt;
Das gegebene Programm ist eine Hashtabelle. Leider ist es etwas unübersichtlich, da es eine Funktion enthält, die ca. 150 Zeilen lang ist. Schaffe mehr Übersicht indem du zusammengehörige Codefragmente oder mehrfach im Quelltext auftauchen in kleinere Funktionen auslagerst. Wie zum Beispiel diese:&lt;br /&gt;
&lt;br /&gt;
 static int calcHashKey(const char *pszHash);&lt;br /&gt;
 static PHASHITEM getItemFromHash(const char *pszHash);&lt;br /&gt;
 static void execGetHash(const char *pszHash);&lt;br /&gt;
 static void execRemoveHash(const char *pszHash);&lt;br /&gt;
 static void execInsertHash(const char *pszHash, char *pszData);&lt;br /&gt;
 static int parseCmd(const char *pszCmdLine);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Halte dich dabei an die Namenskonvention der [http://de.wikipedia.org/wiki/Ungarische_Notation Ungarischen Notation] und [http://de.wikipedia.org/wiki/Binnenmajuskel#Verwendung_in_Programmiersprachen Camel Case].&lt;br /&gt;
&lt;br /&gt;
Hier ist die Vorlage: [http://docs.freitagsrunde.org/Veranstaltungen/ckurs_2009/vorgaben/HashTableRefactor.c HashTableRefactor.c]&lt;br /&gt;
&lt;br /&gt;
= Teil 2 =&lt;br /&gt;
&lt;br /&gt;
Den Algorithmus zum Codieren eines Strings nach base64 aus einer anderen [[Ckurs2009/Base64|Aufgabe]] kann man auch noch etwas eleganter und knapper schreiben.&lt;br /&gt;
&lt;br /&gt;
Das Programm erwatet genau einen Kommandozeilenparameter und convertiert diesen nach Base64.&lt;br /&gt;
&lt;br /&gt;
 $ ./base64 &amp;quot;Das ist ein Test&amp;quot;&lt;br /&gt;
 RGFzIGlzdCBlaW4gVGVzdA==&lt;br /&gt;
&lt;br /&gt;
Hier ist die Vorlage: [http://docs.freitagsrunde.org/Veranstaltungen/ckurs_2009/vorgaben/base64_refactor.c base64_refactor.c]&lt;br /&gt;
&lt;br /&gt;
Schreibe eine Funktion encode_block(), die die vier gegebenen encode_*_output() Funktionen ersetzt.&lt;br /&gt;
&lt;br /&gt;
 /**&lt;br /&gt;
  * Encodes three input chars into four output chars based on the base64 scheme.&lt;br /&gt;
  * @param in chararray with input characters&lt;br /&gt;
  * @param out chararray where the output is written to&lt;br /&gt;
  * @param len number of chars to be used from input&lt;br /&gt;
  */&lt;br /&gt;
 void encode_block( unsigned char in[3], unsigned char out[4], int len )&lt;br /&gt;
 {&lt;br /&gt;
   /* ... */&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Ersetze die Aufrufe der vier Funktionen an den drei Stellen im Code durch einen Aufruf der Funktion encode_block().&lt;br /&gt;
&lt;br /&gt;
== Zusatz ==&lt;br /&gt;
&lt;br /&gt;
Vereinfache den Code so, dass die Funktion encode_block() nur einmal aufgerufen wird. Lagere den Algorithmus zum Codieren in eine Funktion encode() aus. Initialisierung und Benutzerinteraktion soll in der main() umgesetzt werden.&lt;br /&gt;
&lt;br /&gt;
 /**&lt;br /&gt;
  * Encodes the input string into an output string based on the base64 scheme.&lt;br /&gt;
  * @param length size of input string&lt;br /&gt;
  * @param input string with input characters&lt;br /&gt;
  * @param output string where the output is written to. It has to be long enough to hold the output&lt;br /&gt;
  */&lt;br /&gt;
 void encode(int length, char *input, char *output)&lt;br /&gt;
 {&lt;br /&gt;
   /* ... */&lt;br /&gt;
 }&lt;/div&gt;</summary>
		<author><name>DStulle</name></author>
	</entry>
	<entry>
		<id>wiki.stageing.freitagsrunde.org//index.php?title=C-Kurs/Code_Layout&amp;diff=12519</id>
		<title>C-Kurs/Code Layout</title>
		<link rel="alternate" type="text/html" href="wiki.stageing.freitagsrunde.org//index.php?title=C-Kurs/Code_Layout&amp;diff=12519"/>
		<updated>2009-09-22T15:05:10Z</updated>

		<summary type="html">&lt;p&gt;DStulle: Aufgabenteil sum hinzugefügt&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Aufgabenstellung =&lt;br /&gt;
&lt;br /&gt;
In dieser Aufgabe sind einige Codeschnipsel gegeben die zwar funktionieren, aber etwas unübersichtlich oder umständlich geschrieben sind. Deine Aufgabe ist es diese so um zu schreiben, dass sie übersichtlicher und einfacher sind. Vergleiche die Ergebnisse mit deinem Nachbarn und sprecht über eure Ergebnisse.&lt;br /&gt;
&lt;br /&gt;
== sum.c ==&lt;br /&gt;
&lt;br /&gt;
In der Funktion sum hat sich eine for-Schleife versteckt. Schreibe die Funktion so um, dass sie übersichtlicher ist. Gib den variablen bei dieser gelegenheit selbsterklärende Namen&lt;br /&gt;
&lt;br /&gt;
 #define klaus jonny&lt;br /&gt;
 &lt;br /&gt;
 /**&lt;br /&gt;
  * Berechnet die summe der Zahlen im übergebenen array&lt;br /&gt;
  * @breite array mit den Zahlen&lt;br /&gt;
  * @hoehe länge des arrays&lt;br /&gt;
  */&lt;br /&gt;
 int sum(int *breiTee, int hoehe)&lt;br /&gt;
 {&lt;br /&gt;
 	int vorgabe = 0;&lt;br /&gt;
 	int i = 1;&lt;br /&gt;
 	do&lt;br /&gt;
 	{&lt;br /&gt;
 		int klaus = vorgabe + breiTee[i-1];&lt;br /&gt;
 		vorgabe = jonny;&lt;br /&gt;
 		i = i + 1;&lt;br /&gt;
 	} while (i &amp;lt;= hoehe);&lt;br /&gt;
 &lt;br /&gt;
 	return vorgabe;&lt;br /&gt;
 } &lt;br /&gt;
&lt;br /&gt;
Hier ist die Vorlage: [[http://docs.freitagsrunde.org/Veranstaltungen/ckurs_2009/vorgaben/sum_refactor.c sum_refactor.c]]&lt;br /&gt;
&lt;br /&gt;
== fac.c ==&lt;br /&gt;
&lt;br /&gt;
Die Fakultät kann auch Rekursiv berechnet werden, allerdings könnte man das auch bequem in zwei Zeilen machen, ohne dabei unübersichtlich zu werden.&lt;br /&gt;
&lt;br /&gt;
 int faculty(int n){&lt;br /&gt;
   if (n &amp;lt; 2) return 1;&lt;br /&gt;
 &lt;br /&gt;
   if(n == 2)&lt;br /&gt;
   {&lt;br /&gt;
       return 2;&lt;br /&gt;
   } else {&lt;br /&gt;
     int m;&lt;br /&gt;
     m = n*faculty(n-1);&lt;br /&gt;
     return m;&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
= Kommentare =&lt;/div&gt;</summary>
		<author><name>DStulle</name></author>
	</entry>
	<entry>
		<id>wiki.stageing.freitagsrunde.org//index.php?title=C-Kurs/%C3%9Cbungsaufgaben&amp;diff=12508</id>
		<title>C-Kurs/Übungsaufgaben</title>
		<link rel="alternate" type="text/html" href="wiki.stageing.freitagsrunde.org//index.php?title=C-Kurs/%C3%9Cbungsaufgaben&amp;diff=12508"/>
		<updated>2009-09-22T12:59:39Z</updated>

		<summary type="html">&lt;p&gt;DStulle: /* Die Aufgaben */ vorhandene Musterlösungen verlinkt&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Wir haben jeder Aufgabe eine Einschätzung ihrer Schwierigkeit auf einer Skala von 1 bis 10 vorangestellt. Bei dieser Einschätzung sind wir von einem Gehirn ausgegangen, für welches das jeweilige Themengebiet völlig neu ist, das jedoch schon ein ganz gutes Verständnis dafür hat wie eine Programmiersprache denn so funktioniert. &lt;br /&gt;
Entsprechend kann eine schwer bewertete Aufgabe aus einem frühen Themengebiet für manch einen sehr einfach oder eine leicht bewertete aus einem späten Themengebiet für einen anderen sehr schwer sein. Es ist nur ein Wert, der euch helfen soll eure nächste Aufgabe zu wählen. &lt;br /&gt;
&lt;br /&gt;
Falls ihr Anmerkungen zu den Aufgaben habt, könnt ihr die Diskussionsseiten der jeweiligen Aufgaben nutzen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Schwierigkeitsgrade ==&lt;br /&gt;
&lt;br /&gt;
#  Reines Tutorial. Man muss nicht viel selbst denken&lt;br /&gt;
#  ...&lt;br /&gt;
#  Leichte Übungsaufgabe. Studies, die noch eher unsicher sind werden hier gut begleitet.&lt;br /&gt;
#  ...&lt;br /&gt;
#  Typische Aufgabe. Man muss den Kopf benutzen, bekommt an schwierigen Stellen aber Hilfestellungen.&lt;br /&gt;
#  ...&lt;br /&gt;
#  Herausfordernd, eher etwas für Studies die etwas fitter sind.&lt;br /&gt;
#  ...&lt;br /&gt;
#  Auch erfahrene Programmierer werden hier ein bis zwei Übungen beschäftigt sein&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
#  Tja, die Idee war da. Wir finden sie auch gut, aber es könnte wirklich anstrengend werden.&lt;br /&gt;
&lt;br /&gt;
== Die Aufgaben ==&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;4&amp;quot; cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
 |- bgcolor=&amp;quot;#D8D8D8&amp;quot;&lt;br /&gt;
 !Aufgabe&lt;br /&gt;
 !Schwierigkeit&lt;br /&gt;
 !Vorwissen&lt;br /&gt;
 !Lerneffekte&lt;br /&gt;
 !Bearbeiter&lt;br /&gt;
 !Korrektur gelesen&lt;br /&gt;
 !Musterlösung&lt;br /&gt;
 |- bgcolor=&amp;quot;#F5F5F5&amp;quot;&lt;br /&gt;
 | [[Ckurs2009/Von der Konsole zum HelloWorld | Von der Konsole zum HelloWorld]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |1&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |1. VL&lt;br /&gt;
 | Konsole benutzen, Hello World&lt;br /&gt;
 | Sebastian D.&lt;br /&gt;
 | [[Benutzer:Mario|Mario]]&lt;br /&gt;
 | &lt;br /&gt;
 |- bgcolor=&amp;quot;#E8E8E8&amp;quot;&lt;br /&gt;
 | [[Ckurs2009/Fakultät | Fakultät]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |2&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |1. VL&lt;br /&gt;
 | Schleifen&lt;br /&gt;
 | Sebastian D.&lt;br /&gt;
 | Daniel&lt;br /&gt;
 |  &lt;br /&gt;
 |- bgcolor=&amp;quot;#F5F5F5&amp;quot;&lt;br /&gt;
 | [[Ckurs2009/Base64 | Base64]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |6&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |1. VL&lt;br /&gt;
 | Operatoren&lt;br /&gt;
 | Sebastian D.&lt;br /&gt;
 | &lt;br /&gt;
 | [[Ckurs2009/Base64/Musterlösung | Base64]]&lt;br /&gt;
 |- bgcolor=&amp;quot;#E8E8E8&amp;quot;&lt;br /&gt;
 | [[Ckurs2009/EingabeAusgabe | Ein- und Ausgabe]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |1&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |2. VL&lt;br /&gt;
 | Einlesen von Benutzereingaben&amp;lt;br&amp;gt;Ausgabe derselben&lt;br /&gt;
 | [[Benutzer:Mario|Mario]]&lt;br /&gt;
 | nion&lt;br /&gt;
 | [[Ckurs2009/EingabeAusgabe/Musterlösung | Ein- und Ausgabe]]&lt;br /&gt;
 |- bgcolor=&amp;quot;#F5F5F5&amp;quot;&lt;br /&gt;
 | [[Ckurs2009/Taschenrechner | Taschenrechner]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |3&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |2. VL&lt;br /&gt;
 | Eingabe+Ausgabe&amp;lt;br&amp;gt;Mathematische Operatoren&lt;br /&gt;
 | [[Benutzer:Mario|Mario]]&lt;br /&gt;
 | [[Benutzer:Tkroenert|TKroenert]]&lt;br /&gt;
 | [[Ckurs2009/Taschenrechner/Musterlösung | Taschenrechner]]&lt;br /&gt;
 |- bgcolor=&amp;quot;#E8E8E8&amp;quot;&lt;br /&gt;
 | [[Ckurs2009/VerschachtelteSchleifen | Verschachtelte Schleifen]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |3&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |2. VL&lt;br /&gt;
 | Umgang mit mehreren verschachtelten Schleifen&lt;br /&gt;
 | [[Benutzer:Dank|Daniel K.]]&lt;br /&gt;
 | AlexanderK&lt;br /&gt;
 |&lt;br /&gt;
 |- bgcolor=&amp;quot;#F5F5F5&amp;quot;&lt;br /&gt;
 | [[Ckurs2009/Glückspiel | Glücksspiel]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |3&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |2. VL&lt;br /&gt;
 | Anwenden von Fallunterscheidungen und Einlesen von Werten aus der Konsole&lt;br /&gt;
 | [[Benutzer:Dank|Daniel K.]]&lt;br /&gt;
 | AlexanderK&lt;br /&gt;
 | &lt;br /&gt;
 |- bgcolor=&amp;quot;#E8E8E8&amp;quot;&lt;br /&gt;
 | [[Ckurs2009/Wochentag | Wochentagsrechnung]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |5&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |2. VL&lt;br /&gt;
 | Einlesen von Benutzereingaben&amp;lt;br&amp;gt;Mathematikverständniss&lt;br /&gt;
 | [[Benutzer:Mario|Mario]]&lt;br /&gt;
 | nion (Musterlösung noch nicht vorhanden)&lt;br /&gt;
 | &lt;br /&gt;
 |- bgcolor=&amp;quot;#F5F5F5&amp;quot;&lt;br /&gt;
 | [[Ckurs2009/Taschenrechner2.0 | Taschenrechner &#039;&#039;2.0&#039;&#039;]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |8&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |2. VL&lt;br /&gt;
 | Knobeln&amp;lt;br&amp;gt;Komplexes Aufgaben lösen&lt;br /&gt;
 | [[Benutzer:Mario|Mario]]&lt;br /&gt;
 | Martin K.&lt;br /&gt;
 | [[Ckurs2009/Taschenrechner2.0/Musterlösung | Taschenrechner &#039;&#039;2.0&#039;&#039;]]&lt;br /&gt;
 |- bgcolor=&amp;quot;#E8E8E8&amp;quot;&lt;br /&gt;
 | [[Ckurs2009/Call by reference | Call by reference]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |4&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |3. VL&lt;br /&gt;
 | Einfache Anwendung von &amp;amp;/*&lt;br /&gt;
 | sping&lt;br /&gt;
 | nion&lt;br /&gt;
 | [[Ckurs2009/Call by reference/Musterlösung | Call by reference]]&lt;br /&gt;
 |- bgcolor=&amp;quot;#F5F5F5&amp;quot;&lt;br /&gt;
 | [[Ckurs2009/Text processing | Text processing]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |4, 6&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |3. VL&lt;br /&gt;
 | Strings&amp;lt;br&amp;gt;Pointer-Arithmetik&amp;lt;br&amp;gt;Pointer auf Pointer&amp;lt;br&amp;gt;Refactoring&lt;br /&gt;
 | sping&lt;br /&gt;
 | [[Benutzer:Mario|Mario]]&lt;br /&gt;
 | [[Ckurs2009/Text processing/Musterlösung | Text processing]]&lt;br /&gt;
 |- bgcolor=&amp;quot;#E8E8E8&amp;quot;&lt;br /&gt;
 | [[Ckurs2009/Palindrome | Palindrome]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |4&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |3. VL&lt;br /&gt;
 | Pointer und Strings&lt;br /&gt;
 | [[Benutzer:Dank|Daniel K.]]&lt;br /&gt;
 |&lt;br /&gt;
 | &lt;br /&gt;
 |- bgcolor=&amp;quot;#F5F5F5&amp;quot;&lt;br /&gt;
 | [[Ckurs2009/(Pointer) Swapping | (Pointer) Swapping]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |5&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |3. VL&lt;br /&gt;
 | Pointer und Arrays benutzen, generisches swap&lt;br /&gt;
 | Katrin&lt;br /&gt;
 |&lt;br /&gt;
 | &lt;br /&gt;
 |- bgcolor=&amp;quot;#E8E8E8&amp;quot;&lt;br /&gt;
 | [[Ckurs2009/Matrizenmultiplikation | Matrizenmultiplikation]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |6&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |3. VL&lt;br /&gt;
 | Mehrdimensionale Arrays&amp;lt;br&amp;gt;const correctness&lt;br /&gt;
 | sping&lt;br /&gt;
 | [[Benutzer:Mario|Mario]]&lt;br /&gt;
 | [[Ckurs2009/Matrizenmultiplikation/Musterlösung | Matrizenmultiplikation]]&lt;br /&gt;
 |- bgcolor=&amp;quot;#F5F5F5&amp;quot;&lt;br /&gt;
 | [[Ckurs2009/Arrayuebergabe | Arrayuebergabe]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |4/5&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; | 4. VL&lt;br /&gt;
 | Einlesen von Benutzereingaben&amp;lt;br&amp;gt;Pointer und Pointerarithmetik&lt;br /&gt;
 | nion&lt;br /&gt;
 | Martin K.&lt;br /&gt;
 | vorhanden&lt;br /&gt;
 |- bgcolor=&amp;quot;#E8E8E8&amp;quot;&lt;br /&gt;
 | [[Ckurs2009/Studentendatenbank | Studentendatenbank]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |4&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; | 4. VL&lt;br /&gt;
 | struct, Pointer, Arrays&lt;br /&gt;
 | AlexanderK&lt;br /&gt;
 |&lt;br /&gt;
 | vorhanden&lt;br /&gt;
 |- bgcolor=&amp;quot;#F5F5F5&amp;quot;&lt;br /&gt;
 | [[Ckurs2009/Sammelbestellung | Sammelbestellung]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |2-5&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |4. VL&lt;br /&gt;
 | Listen, Pointer, Speicherverwaltung&lt;br /&gt;
 | Florian S.&lt;br /&gt;
 | [[Benutzer:Mario|Mario]]&lt;br /&gt;
 | Teilweise vorhanden&lt;br /&gt;
 |- bgcolor=&amp;quot;#E8E8E8&amp;quot;&lt;br /&gt;
 | [[Ckurs2009/Zahlen_sagen | Zahlen sagen]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |5&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |4. VL&lt;br /&gt;
 | Umgang mit Zeichenketten&lt;br /&gt;
 | Martin K.&lt;br /&gt;
 | &lt;br /&gt;
 | vorhanden&lt;br /&gt;
 |- bgcolor=&amp;quot;#E8E8E8&amp;quot;&lt;br /&gt;
 | [[Ckurs2009/Compiler, Präprozessor, Header Files | Compiler, Präprozessor, Header Files]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |3&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |5. VL&lt;br /&gt;
 | Arbeiten mit mehreren Quellcode-Dateien, Kompilieren und Linken, Header-Dateien und #include, debugging-Makro verwenden&lt;br /&gt;
 | Katrin&lt;br /&gt;
 | &lt;br /&gt;
 | siehe Folien&lt;br /&gt;
 |- bgcolor=&amp;quot;#F5F5F5&amp;quot;&lt;br /&gt;
 | [[Ckurs2009/Bus Error | Bus Error]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |8&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |5. VL&lt;br /&gt;
 | Pointer, wie entsteht ein bus error&lt;br /&gt;
 | Katrin&lt;br /&gt;
 | &lt;br /&gt;
 |&lt;br /&gt;
 |- bgcolor=&amp;quot;#E8E8E8&amp;quot;&lt;br /&gt;
 | [[Ckurs2009/Code Layout | Code Layout]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |3&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |7. VL&lt;br /&gt;
 | Kleinere Codeschipsel mit kleinen unsauberkeiten&lt;br /&gt;
 | Daniel&lt;br /&gt;
 | &lt;br /&gt;
 |&lt;br /&gt;
 |- bgcolor=&amp;quot;#F5F5F5&amp;quot;&lt;br /&gt;
 | [[Ckurs2009/Refactoring | Refactoring]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |5-9&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |7. VL&lt;br /&gt;
 | Wie verbessere ich den Quellcode eines Programmes.&lt;br /&gt;
 | Daniel&lt;br /&gt;
 | &lt;br /&gt;
 | vorhanden&lt;br /&gt;
 |- bgcolor=&amp;quot;#E8E8E8&amp;quot;&lt;br /&gt;
 | [[Ckurs2009/Cat | Cat]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; | 6&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; | ....&lt;br /&gt;
 | Arbeiten mit Dateien&amp;lt;br&amp;gt;Kommandozeilenparameter&lt;br /&gt;
 | nion&lt;br /&gt;
 | sping&lt;br /&gt;
 | vorhanden&lt;br /&gt;
 |- bgcolor=&amp;quot;#F5F5F5&amp;quot;&lt;br /&gt;
 | [[Ckurs2009/Pong | Pong]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; | 7&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; | ...&lt;br /&gt;
 | allgemeiner Programmablauf, fortgeschrittene Konsolenausgaben/eingaben&lt;br /&gt;
 | AlexanderK&lt;br /&gt;
 |&lt;br /&gt;
 | vorhanden &lt;br /&gt;
 |- bgcolor=&amp;quot;#E8E8E8&amp;quot;&lt;br /&gt;
 | [[Ckurs2009/Buchhaltung | Buchhaltung]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; | 6&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; | ....&lt;br /&gt;
 | Lesen aus Dateien&lt;br /&gt;
 | reiner&lt;br /&gt;
 | &lt;br /&gt;
 | &lt;br /&gt;
 |- bgcolor=&amp;quot;#F5F5F5&amp;quot;&lt;br /&gt;
 | [[Ckurs2009/StringArraySortieren | StringArraySortieren]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; | 7&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; | ...&lt;br /&gt;
 | Konsolparameter, Funktionspointer, stdlib&lt;br /&gt;
 | reiner&lt;br /&gt;
 |&lt;br /&gt;
 | vorhanden&lt;br /&gt;
 |- bgcolor=&amp;quot;#E8E8E8&amp;quot;&lt;br /&gt;
 | [[Ckurs/integral | integral]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; | 2&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; | ....&lt;br /&gt;
 | Funktionspointer&lt;br /&gt;
 | reiner&lt;br /&gt;
 | &lt;br /&gt;
 | &lt;br /&gt;
 |- bgcolor=&amp;quot;#F5F5F5&amp;quot;&lt;br /&gt;
 | [[Ckurs/forschleife | forschleife]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; | 2&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; | ...&lt;br /&gt;
 | Bug&lt;br /&gt;
 | reiner&lt;br /&gt;
 | nion&lt;br /&gt;
 | vorhanden&lt;br /&gt;
 | &lt;br /&gt;
 | &lt;br /&gt;
 |- bgcolor=&amp;quot;#F5F5F5&amp;quot;&lt;br /&gt;
 | [[Ckurs2009/BubbleSortDebug | BubbleSort Debugging]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; | 5&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; | 6. VL&lt;br /&gt;
 | Bug&lt;br /&gt;
 | aeichner&lt;br /&gt;
 |&lt;br /&gt;
 | vorhanden&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Kleine und große Probleme ==&lt;br /&gt;
&lt;br /&gt;
* Die Tubit-Accounts haben nicht /bin/bash als shell, so dass die &amp;lt;strong&amp;gt;Cursortasten&amp;lt;/strong&amp;gt; nicht funktionieren. Workaround: als erstes Kommando &#039;bash&#039; eingeben, man sieht dann auch in welchem Verzeichnis man gerade ist.&lt;br /&gt;
* wenn man nur den Promt &#039;bash-0.12&#039; oder so erhält, also ohne das Verzeichnis in dem man ist, folgendes Kommando eingeben: &amp;lt;tt&amp;gt;export PS1=&#039;\u@\h:\w$ &#039;&amp;lt;/tt&amp;gt; oder zum dauerhaften Speichern: &amp;lt;tt&amp;gt; echo &amp;quot;export PS1=&#039;\u@\h:\w$ &#039;&amp;quot; &amp;gt;&amp;gt; ~/.bashrc &amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Musterlösungen ==&lt;br /&gt;
Die Lösungen zu den Aufgaben werden nach den jeweiligen Übungen hier veröffentlicht. Falls dies nicht geschieht, bitte den zuständigen Tutor fragen.&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* [[Ckurs2009/Feedback|Feedback zum Kurs 2009]]&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:CKurs]]&lt;br /&gt;
[[Kategorie:CKurs Aufgaben]]&lt;/div&gt;</summary>
		<author><name>DStulle</name></author>
	</entry>
	<entry>
		<id>wiki.stageing.freitagsrunde.org//index.php?title=C-Kurs/Base64/Musterl%C3%B6sung&amp;diff=12498</id>
		<title>C-Kurs/Base64/Musterlösung</title>
		<link rel="alternate" type="text/html" href="wiki.stageing.freitagsrunde.org//index.php?title=C-Kurs/Base64/Musterl%C3%B6sung&amp;diff=12498"/>
		<updated>2009-09-22T09:16:45Z</updated>

		<summary type="html">&lt;p&gt;DStulle: Dateilink aktuallisiert&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[http://docs.freitagsrunde.org/Veranstaltungen/ckurs_2009/loesungen/base64_done.c base64.done.c]&lt;/div&gt;</summary>
		<author><name>DStulle</name></author>
	</entry>
	<entry>
		<id>wiki.stageing.freitagsrunde.org//index.php?title=C-Kurs/Refactoring&amp;diff=12497</id>
		<title>C-Kurs/Refactoring</title>
		<link rel="alternate" type="text/html" href="wiki.stageing.freitagsrunde.org//index.php?title=C-Kurs/Refactoring&amp;diff=12497"/>
		<updated>2009-09-22T09:14:09Z</updated>

		<summary type="html">&lt;p&gt;DStulle: /* Teil 1 */ typos&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Teil 1 =&lt;br /&gt;
&lt;br /&gt;
Das gegebene Programm ist eine Hashtabelle. Leider ist es etwas unübersichtlich, da es eine Funktion enthält, die ca. 150 Zeilen lang ist. Schaffe mehr übersicht indem du Codefragmente die zusammengehören oder mehrmals im Quelltext auftauchen in kleinere Funktionen auslagerst. Wie zum beispiel diese:&lt;br /&gt;
&lt;br /&gt;
 static int calcHashKey(const char *pszHash);&lt;br /&gt;
 static PHASHITEM getItemFromHash(const char *pszHash);&lt;br /&gt;
 static void execGetHash(const char *pszHash);&lt;br /&gt;
 static void execRemoveHash(const char *pszHash);&lt;br /&gt;
 static void execInsertHash(const char *pszHash, char *pszData);&lt;br /&gt;
 static int parseCmd(const char *pszCmdLine);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
halte dich dabei an die Namenskonvention der [http://de.wikipedia.org/wiki/Ungarische_Notation Ungarischen Notation] und [http://de.wikipedia.org/wiki/Binnenmajuskel#Verwendung_in_Programmiersprachen Camel Case].&lt;br /&gt;
&lt;br /&gt;
Hier ist die Vorlage: [http://docs.freitagsrunde.org/Veranstaltungen/ckurs_2009/vorgaben/HashTableRefactor.c HashTableRefactor.c]&lt;br /&gt;
&lt;br /&gt;
= Teil 2 =&lt;br /&gt;
&lt;br /&gt;
Den Algorythmus zum encodieren eines Strings nach base64 aus einer anderen [[Ckurs2009/Base64|Aufgabe]] kann man auch noch etwas eleganter und knapper schreiben.&lt;br /&gt;
&lt;br /&gt;
Das Programm erwatet genau einen Kommandozeilenparameter und convertiert diesen nach Base64.&lt;br /&gt;
&lt;br /&gt;
 $ ./base64 &amp;quot;Das ist ein Test&amp;quot;&lt;br /&gt;
 RGFzIGlzdCBlaW4gVGVzdA==&lt;br /&gt;
&lt;br /&gt;
Hier ist die Vorlage: [http://docs.freitagsrunde.org/Veranstaltungen/ckurs_2009/vorgaben/base64_refactor.c base64_refactor.c]&lt;br /&gt;
&lt;br /&gt;
== Schritt 1 ==&lt;br /&gt;
&lt;br /&gt;
Schreibe eine Funktion encode_block(), die die vier gegebenen encode_*_output() Funktionen ersetzt.&lt;br /&gt;
&lt;br /&gt;
 /**&lt;br /&gt;
  * Encodes three input chars into four output chars based on the base64 scheme.&lt;br /&gt;
  * @param in chararray with input characters&lt;br /&gt;
  * @param out chararray where the output is written to&lt;br /&gt;
  * @param len number of chars to be used from input&lt;br /&gt;
  */&lt;br /&gt;
 void encode_block( unsigned char in[3], unsigned char out[4], int len )&lt;br /&gt;
 {&lt;br /&gt;
   /* ... */&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Ersetze die Aufrufe der vier Funktionen an den drei stellen im Code durch den einmaligen Aufruf der Funktion encode_block().&lt;br /&gt;
&lt;br /&gt;
== Schritt 2 ==&lt;br /&gt;
&lt;br /&gt;
Vereinfache den Code so, dass die Funktion encode_block() nur ein einziges mal aufgerufen wird. Lagere den Algorithmus zum encodieren in eine Extra Funktion encode() aus. Alles was die ein und Ausgabe mit dem Benutzer und Initialisierung von Variablen betrifft soll in der Funktion main() bleiben.&lt;br /&gt;
&lt;br /&gt;
 /**&lt;br /&gt;
  * Encodes the input string into an output string based on the base64 scheme.&lt;br /&gt;
  * @param length size of input string&lt;br /&gt;
  * @param input string with input characters&lt;br /&gt;
  * @param output string where the output is written to. It has to be long enough to hold the output&lt;br /&gt;
  */&lt;br /&gt;
 void encode(int length, char *input, char *output)&lt;br /&gt;
 {&lt;br /&gt;
   /* ... */&lt;br /&gt;
 }&lt;/div&gt;</summary>
		<author><name>DStulle</name></author>
	</entry>
	<entry>
		<id>wiki.stageing.freitagsrunde.org//index.php?title=C-Kurs/Refactoring&amp;diff=12496</id>
		<title>C-Kurs/Refactoring</title>
		<link rel="alternate" type="text/html" href="wiki.stageing.freitagsrunde.org//index.php?title=C-Kurs/Refactoring&amp;diff=12496"/>
		<updated>2009-09-22T08:53:26Z</updated>

		<summary type="html">&lt;p&gt;DStulle: Teil 1 hinzugefügt.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Teil 1 =&lt;br /&gt;
&lt;br /&gt;
Das gegebene Programm ist eine Hashtabelle. Leider ist es etwas unübersichtlich, da es eine Funktion enthält, die ca. 150 Zeilen lang ist. Schaffe mehr übersicht indem du Codefragmente die zusammengehören oder mehrmals im Quelltext auftauche in kleinere Funktionen auslagerst. Wie zum beispiel diese:&lt;br /&gt;
&lt;br /&gt;
 static int calcHashKey(const char *pszHash);&lt;br /&gt;
 static PHASHITEM getItemFromHash(const char *pszHash);&lt;br /&gt;
 static void execGetHash(const char *pszHash);&lt;br /&gt;
 static void execRemoveHash(const char *pszHash);&lt;br /&gt;
 static void execInsertHash(const char *pszHash, char *pszData);&lt;br /&gt;
 static int parseCmd(const char *pszCmdLine);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
halte dich dabei an die Namenskonvention der [http://de.wikipedia.org/wiki/Ungarische_Notation Ungarischen Notation] und [http://de.wikipedia.org/wiki/Binnenmajuskel#Verwendung_in_Programmiersprachen Camel Case].&lt;br /&gt;
&lt;br /&gt;
Hier ist die Vorlage: [http://docs.freitagsrunde.org/Veranstaltungen/ckurs_2009/vorgaben/HashTableRefactor.c HashTableRefactor.c]&lt;br /&gt;
&lt;br /&gt;
= Teil 2 =&lt;br /&gt;
&lt;br /&gt;
Den Algorythmus zum encodieren eines Strings nach base64 aus einer anderen [[Ckurs2009/Base64|Aufgabe]] kann man auch noch etwas eleganter und knapper schreiben.&lt;br /&gt;
&lt;br /&gt;
Das Programm erwatet genau einen Kommandozeilenparameter und convertiert diesen nach Base64.&lt;br /&gt;
&lt;br /&gt;
 $ ./base64 &amp;quot;Das ist ein Test&amp;quot;&lt;br /&gt;
 RGFzIGlzdCBlaW4gVGVzdA==&lt;br /&gt;
&lt;br /&gt;
Hier ist die Vorlage: [http://docs.freitagsrunde.org/Veranstaltungen/ckurs_2009/vorgaben/base64_refactor.c base64_refactor.c]&lt;br /&gt;
&lt;br /&gt;
== Schritt 1 ==&lt;br /&gt;
&lt;br /&gt;
Schreibe eine Funktion encode_block(), die die vier gegebenen encode_*_output() Funktionen ersetzt.&lt;br /&gt;
&lt;br /&gt;
 /**&lt;br /&gt;
  * Encodes three input chars into four output chars based on the base64 scheme.&lt;br /&gt;
  * @param in chararray with input characters&lt;br /&gt;
  * @param out chararray where the output is written to&lt;br /&gt;
  * @param len number of chars to be used from input&lt;br /&gt;
  */&lt;br /&gt;
 void encode_block( unsigned char in[3], unsigned char out[4], int len )&lt;br /&gt;
 {&lt;br /&gt;
   /* ... */&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Ersetze die Aufrufe der vier Funktionen an den drei stellen im Code durch den einmaligen Aufruf der Funktion encode_block().&lt;br /&gt;
&lt;br /&gt;
== Schritt 2 ==&lt;br /&gt;
&lt;br /&gt;
Vereinfache den Code so, dass die Funktion encode_block() nur ein einziges mal aufgerufen wird. Lagere den Algorithmus zum encodieren in eine Extra Funktion encode() aus. Alles was die ein und Ausgabe mit dem Benutzer und Initialisierung von Variablen betrifft soll in der Funktion main() bleiben.&lt;br /&gt;
&lt;br /&gt;
 /**&lt;br /&gt;
  * Encodes the input string into an output string based on the base64 scheme.&lt;br /&gt;
  * @param length size of input string&lt;br /&gt;
  * @param input string with input characters&lt;br /&gt;
  * @param output string where the output is written to. It has to be long enough to hold the output&lt;br /&gt;
  */&lt;br /&gt;
 void encode(int length, char *input, char *output)&lt;br /&gt;
 {&lt;br /&gt;
   /* ... */&lt;br /&gt;
 }&lt;/div&gt;</summary>
		<author><name>DStulle</name></author>
	</entry>
	<entry>
		<id>wiki.stageing.freitagsrunde.org//index.php?title=C-Kurs/Refactoring/Musterl%C3%B6sung&amp;diff=12494</id>
		<title>C-Kurs/Refactoring/Musterlösung</title>
		<link rel="alternate" type="text/html" href="wiki.stageing.freitagsrunde.org//index.php?title=C-Kurs/Refactoring/Musterl%C3%B6sung&amp;diff=12494"/>
		<updated>2009-09-22T08:35:52Z</updated>

		<summary type="html">&lt;p&gt;DStulle: Teil 1 hinzugefügt und Verlinkung aktualisiert.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Teil 1 =&lt;br /&gt;
&lt;br /&gt;
[http://docs.freitagsrunde.org/Veranstaltungen/ckurs_2009/loesungen/HashTableRefactorDone.c HashTableRefactorDone.c]&lt;br /&gt;
&lt;br /&gt;
= Teil 2 =&lt;br /&gt;
&lt;br /&gt;
[http://docs.freitagsrunde.org/Veranstaltungen/ckurs_2009/loesungen/base64_refactor_done.c base64_refactor_done.c]&lt;/div&gt;</summary>
		<author><name>DStulle</name></author>
	</entry>
	<entry>
		<id>wiki.stageing.freitagsrunde.org//index.php?title=C-Kurs/Refactoring&amp;diff=12491</id>
		<title>C-Kurs/Refactoring</title>
		<link rel="alternate" type="text/html" href="wiki.stageing.freitagsrunde.org//index.php?title=C-Kurs/Refactoring&amp;diff=12491"/>
		<updated>2009-09-22T02:00:06Z</updated>

		<summary type="html">&lt;p&gt;DStulle: /* Schritt 1 */ Satz beendet&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Teil 1 =&lt;br /&gt;
&lt;br /&gt;
(In Bearbeitung)&lt;br /&gt;
&lt;br /&gt;
= Teil 2 =&lt;br /&gt;
&lt;br /&gt;
Den Algorythmus zum encodieren eines Strings nach base64 aus einer anderen [[Ckurs2009/Base64|Aufgabe]] kann man auch noch etwas eleganter und knapper schreiben.&lt;br /&gt;
&lt;br /&gt;
Das Programm erwatet genau einen Kommandozeilenparameter und convertiert diesen nach Base64.&lt;br /&gt;
&lt;br /&gt;
 $ ./base64 &amp;quot;Das ist ein Test&amp;quot;&lt;br /&gt;
 RGFzIGlzdCBlaW4gVGVzdA==&lt;br /&gt;
&lt;br /&gt;
Hier ist die Vorlage: [http://docs.freitagsrunde.org/Veranstaltungen/ckurs_2009/vorgaben/base64_refactor.c base64_refactor.c]&lt;br /&gt;
&lt;br /&gt;
== Schritt 1 ==&lt;br /&gt;
&lt;br /&gt;
Schreibe eine Funktion encode_block(), die die vier gegebenen encode_*_output() Funktionen ersetzt.&lt;br /&gt;
&lt;br /&gt;
 /**&lt;br /&gt;
  * Encodes three input chars into four output chars based on the base64 scheme.&lt;br /&gt;
  * @param in chararray with input characters&lt;br /&gt;
  * @param out chararray where the output is written to&lt;br /&gt;
  * @param len number of chars to be used from input&lt;br /&gt;
  */&lt;br /&gt;
 void encode_block( unsigned char in[3], unsigned char out[4], int len )&lt;br /&gt;
 {&lt;br /&gt;
   /* ... */&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Ersetze die Aufrufe der vier Funktionen an den drei stellen im Code durch den einmaligen Aufruf der Funktion encode_block().&lt;br /&gt;
&lt;br /&gt;
== Schritt 2 ==&lt;br /&gt;
&lt;br /&gt;
Vereinfache den Code so, dass die Funktion encode_block() nur ein einziges mal aufgerufen wird. Lagere den Algorithmus zum encodieren in eine Extra Funktion encode() aus. Alles was die ein und Ausgabe mit dem Benutzer und Initialisierung von Variablen betrifft soll in der Funktion main() bleiben.&lt;br /&gt;
&lt;br /&gt;
 /**&lt;br /&gt;
  * Encodes the input string into an output string based on the base64 scheme.&lt;br /&gt;
  * @param length size of input string&lt;br /&gt;
  * @param input string with input characters&lt;br /&gt;
  * @param output string where the output is written to. It has to be long enough to hold the output&lt;br /&gt;
  */&lt;br /&gt;
 void encode(int length, char *input, char *output)&lt;br /&gt;
 {&lt;br /&gt;
   /* ... */&lt;br /&gt;
 }&lt;/div&gt;</summary>
		<author><name>DStulle</name></author>
	</entry>
	<entry>
		<id>wiki.stageing.freitagsrunde.org//index.php?title=C-Kurs/Refactoring/Musterl%C3%B6sung&amp;diff=12490</id>
		<title>C-Kurs/Refactoring/Musterlösung</title>
		<link rel="alternate" type="text/html" href="wiki.stageing.freitagsrunde.org//index.php?title=C-Kurs/Refactoring/Musterl%C3%B6sung&amp;diff=12490"/>
		<updated>2009-09-22T01:59:03Z</updated>

		<summary type="html">&lt;p&gt;DStulle: Lösungen für Teil 2 verlinkt&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Teil 2 =&lt;br /&gt;
&lt;br /&gt;
[http://docs.freitagsrunde.org/ckurs2009/vorgaben/base64_refactor_done.c base64_refactor_done.c]&lt;/div&gt;</summary>
		<author><name>DStulle</name></author>
	</entry>
	<entry>
		<id>wiki.stageing.freitagsrunde.org//index.php?title=C-Kurs/Refactoring&amp;diff=12489</id>
		<title>C-Kurs/Refactoring</title>
		<link rel="alternate" type="text/html" href="wiki.stageing.freitagsrunde.org//index.php?title=C-Kurs/Refactoring&amp;diff=12489"/>
		<updated>2009-09-22T01:58:09Z</updated>

		<summary type="html">&lt;p&gt;DStulle: Dateiverlinkung korrigert&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Teil 1 =&lt;br /&gt;
&lt;br /&gt;
(In Bearbeitung)&lt;br /&gt;
&lt;br /&gt;
= Teil 2 =&lt;br /&gt;
&lt;br /&gt;
Den Algorythmus zum encodieren eines Strings nach base64 aus einer anderen [[Ckurs2009/Base64|Aufgabe]] kann man auch noch etwas eleganter und knapper schreiben.&lt;br /&gt;
&lt;br /&gt;
Das Programm erwatet genau einen Kommandozeilenparameter und convertiert diesen nach Base64.&lt;br /&gt;
&lt;br /&gt;
 $ ./base64 &amp;quot;Das ist ein Test&amp;quot;&lt;br /&gt;
 RGFzIGlzdCBlaW4gVGVzdA==&lt;br /&gt;
&lt;br /&gt;
Hier ist die Vorlage: [http://docs.freitagsrunde.org/Veranstaltungen/ckurs_2009/vorgaben/base64_refactor.c base64_refactor.c]&lt;br /&gt;
&lt;br /&gt;
== Schritt 1 ==&lt;br /&gt;
&lt;br /&gt;
Schreibe eine Funktion encodeblock(), die die vier gegebenen encode_*_output() Funktionen ersetzt.&lt;br /&gt;
&lt;br /&gt;
 /**&lt;br /&gt;
  * Encodes three input chars into four output chars based on the base64 scheme.&lt;br /&gt;
  * @param in chararray with input characters&lt;br /&gt;
  * @param out chararray where the output is written to&lt;br /&gt;
  * @param len number of chars to be used from input&lt;br /&gt;
  */&lt;br /&gt;
 void encode_block( unsigned char in[3], unsigned char out[4], int len )&lt;br /&gt;
 {&lt;br /&gt;
   /* ... */&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
ersetze die Aufrufe der vier Funktionen an den drei stellen im Code durch den einmaligen Aufruf der&lt;br /&gt;
&lt;br /&gt;
== Schritt 2 ==&lt;br /&gt;
&lt;br /&gt;
Vereinfache den Code so, dass die Funktion encode_block() nur ein einziges mal aufgerufen wird. Lagere den Algorithmus zum encodieren in eine Extra Funktion encode() aus. Alles was die ein und Ausgabe mit dem Benutzer und Initialisierung von Variablen betrifft soll in der Funktion main() bleiben.&lt;br /&gt;
&lt;br /&gt;
 /**&lt;br /&gt;
  * Encodes the input string into an output string based on the base64 scheme.&lt;br /&gt;
  * @param length size of input string&lt;br /&gt;
  * @param input string with input characters&lt;br /&gt;
  * @param output string where the output is written to. It has to be long enough to hold the output&lt;br /&gt;
  */&lt;br /&gt;
 void encode(int length, char *input, char *output)&lt;br /&gt;
 {&lt;br /&gt;
   /* ... */&lt;br /&gt;
 }&lt;/div&gt;</summary>
		<author><name>DStulle</name></author>
	</entry>
	<entry>
		<id>wiki.stageing.freitagsrunde.org//index.php?title=C-Kurs/Refactoring&amp;diff=12488</id>
		<title>C-Kurs/Refactoring</title>
		<link rel="alternate" type="text/html" href="wiki.stageing.freitagsrunde.org//index.php?title=C-Kurs/Refactoring&amp;diff=12488"/>
		<updated>2009-09-22T01:56:47Z</updated>

		<summary type="html">&lt;p&gt;DStulle: Teil 2 Angelegt&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Teil 1 =&lt;br /&gt;
&lt;br /&gt;
(In Bearbeitung)&lt;br /&gt;
&lt;br /&gt;
= Teil 2 =&lt;br /&gt;
&lt;br /&gt;
Den Algorythmus zum encodieren eines Strings nach base64 aus einer anderen [[Ckurs2009/Base64|Aufgabe]] kann man auch noch etwas eleganter und knapper schreiben.&lt;br /&gt;
&lt;br /&gt;
Das Programm erwatet genau einen Kommandozeilenparameter und convertiert diesen nach Base64.&lt;br /&gt;
&lt;br /&gt;
 $ ./base64 &amp;quot;Das ist ein Test&amp;quot;&lt;br /&gt;
 RGFzIGlzdCBlaW4gVGVzdA==&lt;br /&gt;
&lt;br /&gt;
Hier ist die Vorlage: [http://docs.freitagsrunde.org/Veranstaltungen/ckurs_2009/vorgaben/base64_refactor.c|base64_refactor.c]&lt;br /&gt;
&lt;br /&gt;
== Schritt 1 ==&lt;br /&gt;
&lt;br /&gt;
Schreibe eine Funktion encodeblock(), die die vier gegebenen encode_*_output() Funktionen ersetzt.&lt;br /&gt;
&lt;br /&gt;
 /**&lt;br /&gt;
  * Encodes three input chars into four output chars based on the base64 scheme.&lt;br /&gt;
  * @param in chararray with input characters&lt;br /&gt;
  * @param out chararray where the output is written to&lt;br /&gt;
  * @param len number of chars to be used from input&lt;br /&gt;
  */&lt;br /&gt;
 void encode_block( unsigned char in[3], unsigned char out[4], int len )&lt;br /&gt;
 {&lt;br /&gt;
   /* ... */&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
ersetze die Aufrufe der vier Funktionen an den drei stellen im Code durch den einmaligen Aufruf der&lt;br /&gt;
&lt;br /&gt;
== Schritt 2 ==&lt;br /&gt;
&lt;br /&gt;
Vereinfache den Code so, dass die Funktion encode_block() nur ein einziges mal aufgerufen wird. Lagere den Algorithmus zum encodieren in eine Extra Funktion encode() aus. Alles was die ein und Ausgabe mit dem Benutzer und Initialisierung von Variablen betrifft soll in der Funktion main() bleiben.&lt;br /&gt;
&lt;br /&gt;
 /**&lt;br /&gt;
  * Encodes the input string into an output string based on the base64 scheme.&lt;br /&gt;
  * @param length size of input string&lt;br /&gt;
  * @param input string with input characters&lt;br /&gt;
  * @param output string where the output is written to. It has to be long enough to hold the output&lt;br /&gt;
  */&lt;br /&gt;
 void encode(int length, char *input, char *output)&lt;br /&gt;
 {&lt;br /&gt;
   /* ... */&lt;br /&gt;
 }&lt;/div&gt;</summary>
		<author><name>DStulle</name></author>
	</entry>
	<entry>
		<id>wiki.stageing.freitagsrunde.org//index.php?title=C-Kurs/%C3%9Cbungsaufgaben&amp;diff=12487</id>
		<title>C-Kurs/Übungsaufgaben</title>
		<link rel="alternate" type="text/html" href="wiki.stageing.freitagsrunde.org//index.php?title=C-Kurs/%C3%9Cbungsaufgaben&amp;diff=12487"/>
		<updated>2009-09-22T01:39:40Z</updated>

		<summary type="html">&lt;p&gt;DStulle: /* Die Aufgaben */ Nieveau aktuallisiert&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Wir haben jeder Aufgabe eine Einschätzung ihrer Schwierigkeit auf einer Skala von 1 bis 10 vorangestellt. Bei dieser Einschätzung sind wir von einem Gehirn ausgegangen, für welches das jeweilige Themengebiet völlig neu ist, das jedoch schon ein ganz gutes Verständnis dafür hat wie eine Programmiersprache denn so funktioniert. &lt;br /&gt;
Entsprechend kann eine schwer bewertete Aufgabe aus einem frühen Themengebiet für manch einen sehr einfach oder eine leicht bewertete aus einem späten Themengebiet für einen anderen sehr schwer sein. Es ist nur ein Wert, der euch helfen soll eure nächste Aufgabe zu wählen. &lt;br /&gt;
&lt;br /&gt;
Falls ihr Anmerkungen zu den Aufgaben habt, könnt ihr die Diskussionsseiten der jeweiligen Aufgaben nutzen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Schwierigkeitsgrade ==&lt;br /&gt;
&lt;br /&gt;
#  Reines Tutorial. Man muss nicht viel selbst denken&lt;br /&gt;
#  ...&lt;br /&gt;
#  Leichte Übungsaufgabe. Studies, die noch eher unsicher sind werden hier gut begleitet.&lt;br /&gt;
#  ...&lt;br /&gt;
#  Typische Aufgabe. Man muss den Kopf benutzen, bekommt an schwierigen Stellen aber Hilfestellungen.&lt;br /&gt;
#  ...&lt;br /&gt;
#  Herausfordernd, eher etwas für Studies die etwas fitter sind.&lt;br /&gt;
#  ...&lt;br /&gt;
#  Auch erfahrene Programmierer werden hier ein bis zwei Übungen beschäftigt sein&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
#  Tja, die Idee war da. Wir finden sie auch gut, aber es könnte wirklich anstrengend werden.&lt;br /&gt;
&lt;br /&gt;
== Die Aufgaben ==&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;4&amp;quot; cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
 |- bgcolor=&amp;quot;#D8D8D8&amp;quot;&lt;br /&gt;
 !Aufgabe&lt;br /&gt;
 !Schwierigkeit&lt;br /&gt;
 !Vorwissen&lt;br /&gt;
 !Lerneffekte&lt;br /&gt;
 !Bearbeiter&lt;br /&gt;
 !Korrektur gelesen&lt;br /&gt;
 !Musterlösung&lt;br /&gt;
 |- bgcolor=&amp;quot;#F5F5F5&amp;quot;&lt;br /&gt;
 | [[Ckurs2009/Von der Konsole zum HelloWorld | Von der Konsole zum HelloWorld]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |1&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |1. VL&lt;br /&gt;
 | Konsole benutzen, Hello World&lt;br /&gt;
 | Sebastian D.&lt;br /&gt;
 | [[Benutzer:Mario|Mario]]&lt;br /&gt;
 |  &lt;br /&gt;
 |- bgcolor=&amp;quot;#E8E8E8&amp;quot;&lt;br /&gt;
 | [[Ckurs2009/Fakultät | Fakultät]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |2&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |1. VL&lt;br /&gt;
 | Schleifen&lt;br /&gt;
 | Sebastian D.&lt;br /&gt;
 | Daniel&lt;br /&gt;
 |  &lt;br /&gt;
 |- bgcolor=&amp;quot;#F5F5F5&amp;quot;&lt;br /&gt;
 | [[Ckurs2009/Base64 | Base64]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |6&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |1. VL&lt;br /&gt;
 | Operatoren&lt;br /&gt;
 | Sebastian D.&lt;br /&gt;
 | &lt;br /&gt;
 | vorhanden&lt;br /&gt;
 |- bgcolor=&amp;quot;#E8E8E8&amp;quot;&lt;br /&gt;
 | [[Ckurs2009/EingabeAusgabe | Ein- und Ausgabe]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |1&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |2. VL&lt;br /&gt;
 | Einlesen von Benutzereingaben&amp;lt;br&amp;gt;Ausgabe derselben&lt;br /&gt;
 | [[Benutzer:Mario|Mario]]&lt;br /&gt;
 | nion&lt;br /&gt;
 | &lt;br /&gt;
 |- bgcolor=&amp;quot;#F5F5F5&amp;quot;&lt;br /&gt;
 | [[Ckurs2009/Taschenrechner | Taschenrechner]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |3&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |2. VL&lt;br /&gt;
 | Eingabe+Ausgabe&amp;lt;br&amp;gt;Mathematische Operatoren&lt;br /&gt;
 | [[Benutzer:Mario|Mario]]&lt;br /&gt;
 | [[Benutzer:Tkroenert|TKroenert]]&lt;br /&gt;
 | &lt;br /&gt;
 |- bgcolor=&amp;quot;#E8E8E8&amp;quot;&lt;br /&gt;
 | [[Ckurs2009/VerschachtelteSchleifen | Verschachtelte Schleifen]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |3&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |2. VL&lt;br /&gt;
 | Umgang mit mehreren verschachtelten Schleifen&lt;br /&gt;
 | [[Benutzer:Dank|Daniel K.]]&lt;br /&gt;
 | AlexanderK&lt;br /&gt;
 |&lt;br /&gt;
 |- bgcolor=&amp;quot;#F5F5F5&amp;quot;&lt;br /&gt;
 | [[Ckurs2009/Glückspiel | Glücksspiel]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |3&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |2. VL&lt;br /&gt;
 | Anwenden von Fallunterscheidungen und Einlesen von Werten aus der Konsole&lt;br /&gt;
 | [[Benutzer:Dank|Daniel K.]]&lt;br /&gt;
 | AlexanderK&lt;br /&gt;
 |&lt;br /&gt;
 |- bgcolor=&amp;quot;#E8E8E8&amp;quot;&lt;br /&gt;
 | [[Ckurs2009/Wochentag | Wochentagsrechnung]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |5&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |2. VL&lt;br /&gt;
 | Einlesen von Benutzereingaben&amp;lt;br&amp;gt;Mathematikverständniss&lt;br /&gt;
 | [[Benutzer:Mario|Mario]]&lt;br /&gt;
 | nion (Musterlösung noch nicht vorhanden)&lt;br /&gt;
 | &lt;br /&gt;
 |- bgcolor=&amp;quot;#F5F5F5&amp;quot;&lt;br /&gt;
 | [[Ckurs2009/Taschenrechner2.0 | Taschenrechner &#039;&#039;2.0&#039;&#039;]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |8&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |2. VL&lt;br /&gt;
 | Knobeln&amp;lt;br&amp;gt;Komplexes Aufgaben lösen&lt;br /&gt;
 | [[Benutzer:Mario|Mario]]&lt;br /&gt;
 | Martin K.&lt;br /&gt;
 | &lt;br /&gt;
 |- bgcolor=&amp;quot;#E8E8E8&amp;quot;&lt;br /&gt;
 | [[Ckurs2009/Call by reference | Call by reference]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |4&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |3. VL&lt;br /&gt;
 | Einfache Anwendung von &amp;amp;/*&lt;br /&gt;
 | sping&lt;br /&gt;
 | nion&lt;br /&gt;
 | vorhanden&lt;br /&gt;
 |- bgcolor=&amp;quot;#F5F5F5&amp;quot;&lt;br /&gt;
 | [[Ckurs2009/Text processing | Text processing]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |4, 6&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |3. VL&lt;br /&gt;
 | Strings&amp;lt;br&amp;gt;Pointer-Arithmetik&amp;lt;br&amp;gt;Pointer auf Pointer&amp;lt;br&amp;gt;Refactoring&lt;br /&gt;
 | sping&lt;br /&gt;
 | [[Benutzer:Mario|Mario]]&lt;br /&gt;
 | vorhanden&lt;br /&gt;
 |- bgcolor=&amp;quot;#E8E8E8&amp;quot;&lt;br /&gt;
 | [[Ckurs2009/Palindrome | Palindrome]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |4&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |3. VL&lt;br /&gt;
 | Pointer und Strings&lt;br /&gt;
 | [[Benutzer:Dank|Daniel K.]]&lt;br /&gt;
 |&lt;br /&gt;
 |&lt;br /&gt;
 |- bgcolor=&amp;quot;#F5F5F5&amp;quot;&lt;br /&gt;
 | [[Ckurs2009/(Pointer) Swapping | (Pointer) Swapping]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |5&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |3. VL&lt;br /&gt;
 | Pointer und Arrays benutzen, generisches swap&lt;br /&gt;
 | Katrin&lt;br /&gt;
 |&lt;br /&gt;
 | vorhanden&lt;br /&gt;
 |- bgcolor=&amp;quot;#E8E8E8&amp;quot;&lt;br /&gt;
 | [[Ckurs2009/Matrizenmultiplikation | Matrizenmultiplikation]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |6&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |3. VL&lt;br /&gt;
 | Mehrdimensionale Arrays&amp;lt;br&amp;gt;const correctness&lt;br /&gt;
 | sping&lt;br /&gt;
 | [[Benutzer:Mario|Mario]]&lt;br /&gt;
 | vorhanden&lt;br /&gt;
 |- bgcolor=&amp;quot;#F5F5F5&amp;quot;&lt;br /&gt;
 | [[Ckurs2009/Arrayuebergabe | Arrayuebergabe]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |4/5&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; | 4. VL&lt;br /&gt;
 | Einlesen von Benutzereingaben&amp;lt;br&amp;gt;Pointer und Pointerarithmetik&lt;br /&gt;
 | nion&lt;br /&gt;
 | Martin K.&lt;br /&gt;
 | vorhanden&lt;br /&gt;
 |- bgcolor=&amp;quot;#E8E8E8&amp;quot;&lt;br /&gt;
 | [[Ckurs2009/Studentendatenbank | Studentendatenbank]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |4&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; | 4. VL&lt;br /&gt;
 | struct, Pointer, Arrays&lt;br /&gt;
 | AlexanderK&lt;br /&gt;
 |&lt;br /&gt;
 | vorhanden&lt;br /&gt;
 |- bgcolor=&amp;quot;#F5F5F5&amp;quot;&lt;br /&gt;
 | [[Ckurs2009/Sammelbestellung | Sammelbestellung]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |2-5&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |4. VL&lt;br /&gt;
 | Listen, Pointer, Speicherverwaltung&lt;br /&gt;
 | Florian S.&lt;br /&gt;
 | [[Benutzer:Mario|Mario]]&lt;br /&gt;
 | Teilweise vorhanden&lt;br /&gt;
 |- bgcolor=&amp;quot;#E8E8E8&amp;quot;&lt;br /&gt;
 | [[Ckurs2009/Zahlen_sagen | Zahlen sagen]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |5&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |4. VL&lt;br /&gt;
 | Umgang mit Zeichenketten&lt;br /&gt;
 | Martin K.&lt;br /&gt;
 | &lt;br /&gt;
 | in Arbeit&lt;br /&gt;
 |- bgcolor=&amp;quot;#E8E8E8&amp;quot;&lt;br /&gt;
 | [[Ckurs2009/Compiler, Präprozessor, Header Files | Compiler, Präprozessor, Header Files]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |3&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |5. VL&lt;br /&gt;
 | Arbeiten mit mehreren Quellcode-Dateien, Kompilieren und Linken, Header-Dateien und #include, debugging-Makro verwenden&lt;br /&gt;
 | Katrin&lt;br /&gt;
 | &lt;br /&gt;
 | siehe Folien&lt;br /&gt;
 |- bgcolor=&amp;quot;#F5F5F5&amp;quot;&lt;br /&gt;
 | [[Ckurs2009/Bus Error | Bus Error]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |8&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |5. VL&lt;br /&gt;
 | Pointer, wie entsteht ein bus error&lt;br /&gt;
 | Katrin&lt;br /&gt;
 | &lt;br /&gt;
 |&lt;br /&gt;
 |- bgcolor=&amp;quot;#E8E8E8&amp;quot;&lt;br /&gt;
 | [[Ckurs2009/Code Layout | Code Layout]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |3&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |7. VL&lt;br /&gt;
 | Kleinere Codeschipsel mit kleinen unsauberkeiten&lt;br /&gt;
 | Daniel&lt;br /&gt;
 | &lt;br /&gt;
 |&lt;br /&gt;
 |- bgcolor=&amp;quot;#F5F5F5&amp;quot;&lt;br /&gt;
 | [[Ckurs2009/Refactoring | Refactoring]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |5-9&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |7. VL&lt;br /&gt;
 | Wie verbessere ich den Quellcode eines Programmes.&lt;br /&gt;
 | Daniel&lt;br /&gt;
 | &lt;br /&gt;
 | vorhanden&lt;br /&gt;
 |- bgcolor=&amp;quot;#E8E8E8&amp;quot;&lt;br /&gt;
 | [[Ckurs2009/Cat | Cat]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; | 6&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; | ....&lt;br /&gt;
 | Arbeiten mit Dateien&amp;lt;br&amp;gt;Kommandozeilenparameter&lt;br /&gt;
 | nion&lt;br /&gt;
 | sping&lt;br /&gt;
 | vorhanden&lt;br /&gt;
 |- bgcolor=&amp;quot;#F5F5F5&amp;quot;&lt;br /&gt;
 | [[Ckurs2009/Pong | Pong]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; | 7&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; | ...&lt;br /&gt;
 | allgemeiner Programmablauf, fortgeschrittene Konsolenausgaben/eingaben&lt;br /&gt;
 | AlexanderK&lt;br /&gt;
 |&lt;br /&gt;
 | vorhanden &lt;br /&gt;
 |- bgcolor=&amp;quot;#E8E8E8&amp;quot;&lt;br /&gt;
 | [[Ckurs2009/Buchhaltung | Buchhaltung]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; | 6&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; | ....&lt;br /&gt;
 | Lesen aus Dateien&lt;br /&gt;
 | reiner&lt;br /&gt;
 | &lt;br /&gt;
 | &lt;br /&gt;
 |- bgcolor=&amp;quot;#F5F5F5&amp;quot;&lt;br /&gt;
 | [[Ckurs2009/StringArraySortieren | StringArraySortieren]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; | 7&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; | ...&lt;br /&gt;
 | Konsolparameter, Funktionspointer, stdlib&lt;br /&gt;
 | reiner&lt;br /&gt;
 |&lt;br /&gt;
 | vorhanden&lt;br /&gt;
 |- bgcolor=&amp;quot;#E8E8E8&amp;quot;&lt;br /&gt;
 | [[Ckurs/integral | integral]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; | 2&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; | ....&lt;br /&gt;
 | Funktionspointer&lt;br /&gt;
 | reiner&lt;br /&gt;
 | &lt;br /&gt;
 | &lt;br /&gt;
 |- bgcolor=&amp;quot;#F5F5F5&amp;quot;&lt;br /&gt;
 | [[Ckurs/forschleife | forschleife]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; | 2&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; | ...&lt;br /&gt;
 | Bug&lt;br /&gt;
 | reiner&lt;br /&gt;
 | nion&lt;br /&gt;
 | vorhanden&lt;br /&gt;
 | &lt;br /&gt;
 | &lt;br /&gt;
 |- bgcolor=&amp;quot;#F5F5F5&amp;quot;&lt;br /&gt;
 | [[Ckurs2009/BubbleSortDebug | BubbleSort Debugging]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; | 5&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; | 6. VL&lt;br /&gt;
 | Bug&lt;br /&gt;
 | aeichner&lt;br /&gt;
 |&lt;br /&gt;
 | vorhanden&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Kleine und große Probleme ==&lt;br /&gt;
&lt;br /&gt;
* Die Tubit-Accounts haben nicht /bin/bash als shell, so dass die &amp;lt;strong&amp;gt;Cursortasten&amp;lt;/strong&amp;gt; nicht funktionieren. Workaround: als erstes Kommando &#039;bash&#039; eingeben, man sieht dann auch in welchem Verzeichnis man gerade ist.&lt;br /&gt;
* wenn man nur den Promt &#039;bash-0.12&#039; oder so erhält, also ohne das Verzeichnis in dem man ist, folgendes Kommando eingeben: &amp;lt;tt&amp;gt;export PS1=&#039;\u@\h:\w$ &#039;&amp;lt;/tt&amp;gt; oder zum dauerhaften Speichern: &amp;lt;tt&amp;gt; echo &amp;quot;export PS1=&#039;\u@\h:\w$ &#039;&amp;quot; &amp;gt;&amp;gt; ~/.bashrc &amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Musterlösungen ==&lt;br /&gt;
Die Lösungen zu den Aufgaben werden nach den jeweiligen Übungen hier veröffentlicht. Falls dies nicht geschieht, bitte den zuständigen Tutor fragen.&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* [[Ckurs2009/Feedback|Feedback zum Kurs 2009]]&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:CKurs]]&lt;br /&gt;
[[Kategorie:CKurs Aufgaben]]&lt;/div&gt;</summary>
		<author><name>DStulle</name></author>
	</entry>
	<entry>
		<id>wiki.stageing.freitagsrunde.org//index.php?title=C-Kurs/Code_Layout&amp;diff=12466</id>
		<title>C-Kurs/Code Layout</title>
		<link rel="alternate" type="text/html" href="wiki.stageing.freitagsrunde.org//index.php?title=C-Kurs/Code_Layout&amp;diff=12466"/>
		<updated>2009-09-21T13:51:47Z</updated>

		<summary type="html">&lt;p&gt;DStulle: Abschnit für Kommentare hinzugefügt&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Aufgabenstellung =&lt;br /&gt;
&lt;br /&gt;
In dieser Aufgabe sind einige Codeschnipsel gegeben die zwar funktionieren aber etwas unübersichtlich oder umständlich geschrieben sind. Deine Aufgabe ist es diese so um zu schreiben, dass sie übersichtlicher und einfacher sind. Vergleiche die Ergebnisse mit deinem Nachbarn und sprecht über eure Ergebnisse.&lt;br /&gt;
&lt;br /&gt;
== fac.c ==&lt;br /&gt;
&lt;br /&gt;
Die Fakultät kann auch Rekursiv berechnet werden, allerdings könnte man das auch bequem in zwei Zeilen machen, ohne dabei unübersichtlich zu werden.&lt;br /&gt;
&lt;br /&gt;
 int faculty(int n){&lt;br /&gt;
   if (n &amp;lt; 2) return 1;&lt;br /&gt;
 &lt;br /&gt;
   if(n == 2)&lt;br /&gt;
   {&lt;br /&gt;
       return 2;&lt;br /&gt;
   } else {&lt;br /&gt;
     int m;&lt;br /&gt;
     m = n*faculty(n-1);&lt;br /&gt;
     return m;&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
= Kommentare =&lt;/div&gt;</summary>
		<author><name>DStulle</name></author>
	</entry>
	<entry>
		<id>wiki.stageing.freitagsrunde.org//index.php?title=C-Kurs/Code_Layout&amp;diff=12465</id>
		<title>C-Kurs/Code Layout</title>
		<link rel="alternate" type="text/html" href="wiki.stageing.freitagsrunde.org//index.php?title=C-Kurs/Code_Layout&amp;diff=12465"/>
		<updated>2009-09-21T13:49:49Z</updated>

		<summary type="html">&lt;p&gt;DStulle: /* Einleitung */ Einleitungstext ergänzt&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Einleitung =&lt;br /&gt;
&lt;br /&gt;
In dieser Aufgabe sind einige Codeschnipsel gegeben die zwar funktionieren aber etwas unübersichtlich oder umständlich geschrieben sind. Deine Aufgabe ist es diese so um zu schreiben, dass sie übersichtlicher und einfacher sind. Vergleiche die Ergebnisse mit deinem Nachbarn und sprecht über eure Ergebnisse.&lt;br /&gt;
&lt;br /&gt;
== fac.c ==&lt;br /&gt;
&lt;br /&gt;
Die Fakultät kann auch Rekursiv berechnet werden, allerdings könnte man das auch bequem in zwei Zeilen machen, ohne dabei unübersichtlich zu werden.&lt;br /&gt;
&lt;br /&gt;
 int faculty(int n){&lt;br /&gt;
   if (n &amp;lt; 2) return 1;&lt;br /&gt;
 &lt;br /&gt;
   if(n == 2)&lt;br /&gt;
   {&lt;br /&gt;
       return 2;&lt;br /&gt;
   } else {&lt;br /&gt;
     int m;&lt;br /&gt;
     m = n*faculty(n-1);&lt;br /&gt;
     return m;&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;/div&gt;</summary>
		<author><name>DStulle</name></author>
	</entry>
	<entry>
		<id>wiki.stageing.freitagsrunde.org//index.php?title=C-Kurs/Code_Layout&amp;diff=12464</id>
		<title>C-Kurs/Code Layout</title>
		<link rel="alternate" type="text/html" href="wiki.stageing.freitagsrunde.org//index.php?title=C-Kurs/Code_Layout&amp;diff=12464"/>
		<updated>2009-09-21T13:48:24Z</updated>

		<summary type="html">&lt;p&gt;DStulle: /* fac.c */ aufgabe fac.c hinzugefügt&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Einleitung =&lt;br /&gt;
&lt;br /&gt;
In dieser Aufgabe sind einige Codeschnipsel gegeben die zwar funktionieren aber etwas unübersichtlich oder umständlich geschrieben sind. Deine aufgabe ist es diese so um zu schreiben, dass sie übersichtlicher und einfacher sind.&lt;br /&gt;
&lt;br /&gt;
== fac.c ==&lt;br /&gt;
&lt;br /&gt;
Die Fakultät kann auch Rekursiv berechnet werden, allerdings könnte man das auch bequem in zwei Zeilen machen, ohne dabei unübersichtlich zu werden.&lt;br /&gt;
&lt;br /&gt;
 int faculty(int n){&lt;br /&gt;
   if (n &amp;lt; 2) return 1;&lt;br /&gt;
 &lt;br /&gt;
   if(n == 2)&lt;br /&gt;
   {&lt;br /&gt;
       return 2;&lt;br /&gt;
   } else {&lt;br /&gt;
     int m;&lt;br /&gt;
     m = n*faculty(n-1);&lt;br /&gt;
     return m;&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;/div&gt;</summary>
		<author><name>DStulle</name></author>
	</entry>
	<entry>
		<id>wiki.stageing.freitagsrunde.org//index.php?title=C-Kurs/Code_Layout&amp;diff=12462</id>
		<title>C-Kurs/Code Layout</title>
		<link rel="alternate" type="text/html" href="wiki.stageing.freitagsrunde.org//index.php?title=C-Kurs/Code_Layout&amp;diff=12462"/>
		<updated>2009-09-21T13:05:34Z</updated>

		<summary type="html">&lt;p&gt;DStulle: Aufgabenstellung begonnen&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Einleitung =&lt;br /&gt;
&lt;br /&gt;
In dieser Aufgabe sind einige Codeschnipsel gegeben die zwar funktionieren aber etwas unübersichtlich oder umständlich geschrieben sind. Deine aufgabe ist es diese so um zu schreiben, dass sie übersichtlicher und einfacher sind.&lt;br /&gt;
&lt;br /&gt;
== fac.c ==&lt;br /&gt;
&lt;br /&gt;
(to be continued)&lt;/div&gt;</summary>
		<author><name>DStulle</name></author>
	</entry>
	<entry>
		<id>wiki.stageing.freitagsrunde.org//index.php?title=Vorlage:HauptseiteNewsBox&amp;diff=12438</id>
		<title>Vorlage:HauptseiteNewsBox</title>
		<link rel="alternate" type="text/html" href="wiki.stageing.freitagsrunde.org//index.php?title=Vorlage:HauptseiteNewsBox&amp;diff=12438"/>
		<updated>2009-09-21T08:00:45Z</updated>

		<summary type="html">&lt;p&gt;DStulle: /* C-Kurs 2009 */ Link zu übungsaufgaben korrigiert&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== C-Kurs 2009 ===&lt;br /&gt;
&lt;br /&gt;
Ab dem 21.09. bis einschließlich zum 25.09. 2009 werden wir einen C-Kurs anbieten. Ziel wird es sein, euch fit für die Vorlesung TechGI3 zu machen. Wir werden dabei wichtige Tehmen wie Ein- und Ausgabe, Pointer, structs, Debuging und weitere Themen anbieten. Neben den Vorlesungen wird es diesmal auch wieder Übungen geben, die euch das gelernte praktisch anwenden lassen. &lt;br /&gt;
&lt;br /&gt;
Für weitere Informationen, bitte auf [[ckurs| unserer C-Kurs Seite]] nachsehen.&lt;br /&gt;
&lt;br /&gt;
Falls du direkt zu den Übungsaufgaben willst, dann gehe zu [[ckurs/Übungsaufgaben| unserer C-Kurs Übungsseite]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;text-align: right;&amp;quot;&amp;gt;&amp;lt;font size=&amp;quot;1&amp;quot;&amp;gt;&#039;&#039;News erstellt am 13.09.2009&#039;&#039;&amp;lt;/font&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Stromabschaltung - Wiki aus ===&lt;br /&gt;
&lt;br /&gt;
Am Samstag, dem 22.08.2009 in der Zeit von 7.00 bis 15.00 Uhr wird die Trafostation &amp;quot;Elektrotechnik Neu&amp;quot; wegen Wartungs- und Instandsetzungsarbeiten abgeschaltet. Daher wird unser Wiki und unser Mailserver von Samstag früh bis voraussichtlich Montag nicht erreichbar sein.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;text-align: right;&amp;quot;&amp;gt;&amp;lt;font size=&amp;quot;1&amp;quot;&amp;gt;&#039;&#039;News erstellt am 21.08.2009&#039;&#039;&amp;lt;/font&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Tech Talk Juli ===&lt;br /&gt;
&lt;br /&gt;
Diesen Freitag (31. Juli, 15 Uhr) findet wieder ein [[TechTalk|Tech Talk]] der Freitagsrunde statt. Thematisch wird es um den in der letzten Woche ausgetragenen &lt;br /&gt;
&#039;Hash Challenge Programming Wettbewerb&#039; gehen. Im Rahmen dieses Wettbewerbs haben Robert, Florian und Dan ein eingenes Programm auf über 1500 CPUs in aller Welt verteilt. Während der 30 Stunden des Wettbwewerbs wurden so mehrere Billionen Hashoperationen durchgeführt (SHA1) und mehr als 3 CPU-Jahre Rechenzeit verbraucht.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;text-align: right;&amp;quot;&amp;gt;&amp;lt;font size=&amp;quot;1&amp;quot;&amp;gt;&#039;&#039;News erstellt am 27.07.2009&#039;&#039;&amp;lt;/font&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Wiki Migration ===&lt;br /&gt;
&lt;br /&gt;
Unsere Installation von [[wikipedia:Mediakwiki|Mediawiki]] ist auf einen neuen Server umgezogen.&lt;br /&gt;
Leider mussten wir an einigen Stellen Hand anlegen, wo wir es lieber nicht gewollt hätten.&lt;br /&gt;
Falls ihr Fehler in unserem Wiki findet, [mailto:technik@freitagsrunde.org meldet euch bitte bei uns].&lt;br /&gt;
Wir hoffen natürlich, dass ihr das Wiki so vorfindet wie ihr es wünscht -- und falls nicht, editiert&lt;br /&gt;
halt einfach weiter.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;text-align: right;&amp;quot;&amp;gt;&amp;lt;font size=&amp;quot;1&amp;quot;&amp;gt;&#039;&#039;News erstellt am 11.07.2009&#039;&#039;&amp;lt;/font&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== StudyCenter @ TU-Mensa ===&lt;br /&gt;
&lt;br /&gt;
Wir waren ein wenig aktiv für euch: In der Hoffnung den Mangel an angenehmen und regelmäßig offenen Arbeitsplätzen zu lindern haben wir organisiert, dass das Studentenwerk Berlin ab nächsten Montag (29.06.2009) die TU-Mensa in der Hardenbergstraße nach dem Essen als Arbeitsraum öffnet. Der Pressetext dazu:&lt;br /&gt;
&lt;br /&gt;
Das Studentenwerk Berlin öffnet ab 29. Juni 2009 die TU-Mensa Hardenbergstraße&lt;br /&gt;
nach der Essenszeit als Arbeitsraum. Bis zur regulären Schließzeit des &lt;br /&gt;
Gebäudes um 18.30 Uhr steht der Raum mit seinen über 1000 Plätzen damit allen &lt;br /&gt;
Studierenden als freier Arbeitsplatz zur Verfügung. Sollte sich eine &lt;br /&gt;
ausreichend große Nachfrage zeigen, können die Öffnungszeiten noch verlängert &lt;br /&gt;
werden. Steckdosen für Laptops stehen aber nur im bereits gegebenem Umfang &lt;br /&gt;
zur Verfügung, können aber bei entsprechender Nachfrage ebenfalls ausgebaut &lt;br /&gt;
werden. Der Zugang zum Sitz- und Arbeitsbereich erfolgt über die Treppen, die &lt;br /&gt;
sonst als Ausgang dienen. Für das leibliche Wohl der Studierenden ist wie &lt;br /&gt;
immer die Coffeebar im Erdgeschoss bis 18 Uhr geöffnet.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;text-align: right;&amp;quot;&amp;gt;&amp;lt;font size=&amp;quot;1&amp;quot;&amp;gt;&#039;&#039;News erstellt am 25.06.2009&#039;&#039;&amp;lt;/font&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Newsarchiv|Ältere Nachrichten finden sich im Archiv]]&lt;/div&gt;</summary>
		<author><name>DStulle</name></author>
	</entry>
	<entry>
		<id>wiki.stageing.freitagsrunde.org//index.php?title=C-Kurs/%C3%9Cbungsaufgaben&amp;diff=12427</id>
		<title>C-Kurs/Übungsaufgaben</title>
		<link rel="alternate" type="text/html" href="wiki.stageing.freitagsrunde.org//index.php?title=C-Kurs/%C3%9Cbungsaufgaben&amp;diff=12427"/>
		<updated>2009-09-20T22:40:13Z</updated>

		<summary type="html">&lt;p&gt;DStulle: /* Die Aufgaben */ Aufgabe Fakultät angesehen.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Wir haben jeder Aufgabe eine Einschätzung ihrer Schwierigkeit auf einer Skala von 1 bis 10 vorangestellt. Bei dieser Einschätzung sind wir von einem Gehirn ausgegangen, für welches das jeweilige Themengebiet völlig neu ist, das jedoch schon ein ganz gutes Verständnis dafür hat wie eine Programmiersprache denn so funktioniert. &lt;br /&gt;
Entsprechend kann eine schwer bewertete Aufgabe aus einem frühen Themengebiet für manch einen sehr einfach oder eine leicht bewertete aus einem späten Themengebiet für einen anderen sehr schwer sein. Es ist nur ein Wert, der euch helfen soll eure nächste Aufgabe zu wählen. &lt;br /&gt;
&lt;br /&gt;
Falls ihr Anmerkungen zu den Aufgaben habt, könnt ihr die Diskussionsseiten der jeweiligen Aufgaben nutzen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Schwierigkeitsgrade ==&lt;br /&gt;
&lt;br /&gt;
#  Reines Tutorial. Man muss nicht viel selbst denken&lt;br /&gt;
#  ...&lt;br /&gt;
#  Leichte Übungsaufgabe. Studies, die noch eher unsicher sind werden hier gut begleitet.&lt;br /&gt;
#  ...&lt;br /&gt;
#  Typische Aufgabe. Man muss den Kopf benutzen, bekommt an schwierigen Stellen aber Hilfestellungen.&lt;br /&gt;
#  ...&lt;br /&gt;
#  Herausfordernd, eher etwas für Studies die etwas fitter sind.&lt;br /&gt;
#  ...&lt;br /&gt;
#  Auch erfahrene Programmierer werden hier ein bis zwei Übungen beschäftigt sein&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
#  Tja, die Idee war da. Wir finden sie auch gut, aber es könnte wirklich anstrengend werden.&lt;br /&gt;
&lt;br /&gt;
== Die Aufgaben ==&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;4&amp;quot; cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
 |- bgcolor=&amp;quot;#D8D8D8&amp;quot;&lt;br /&gt;
 !Aufgabe&lt;br /&gt;
 !Schwierigkeit&lt;br /&gt;
 !Vorwissen&lt;br /&gt;
 !Lerneffekte&lt;br /&gt;
 !Bearbeiter&lt;br /&gt;
 !Korrektur gelesen&lt;br /&gt;
 !Musterlösung&lt;br /&gt;
 |- bgcolor=&amp;quot;#F5F5F5&amp;quot;&lt;br /&gt;
 | [[Ckurs2009/Von der Konsole zum HelloWorld | Von der Konsole zum HelloWorld]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |1&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |1. VL&lt;br /&gt;
 | Konsole benutzen, Hello World&lt;br /&gt;
 | Sebastian D.&lt;br /&gt;
 | [[Benutzer:Mario|Mario]]&lt;br /&gt;
 | &lt;br /&gt;
 |- bgcolor=&amp;quot;#E8E8E8&amp;quot;&lt;br /&gt;
 | [[Ckurs2009/Fakultät | Fakultät]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |2&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |1. VL&lt;br /&gt;
 | Schleifen&lt;br /&gt;
 | Sebastian D.&lt;br /&gt;
 | Daniel&lt;br /&gt;
 |&lt;br /&gt;
 |- bgcolor=&amp;quot;#F5F5F5&amp;quot;&lt;br /&gt;
 | [[Ckurs2009/Base64 | Base64]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |6&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |1. VL&lt;br /&gt;
 | Operatoren&lt;br /&gt;
 | Sebastian D.&lt;br /&gt;
 | &lt;br /&gt;
 |- bgcolor=&amp;quot;#E8E8E8&amp;quot;&lt;br /&gt;
 | [[Ckurs2009/EingabeAusgabe | Ein- und Ausgabe]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |1&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |2. VL&lt;br /&gt;
 | Einlesen von Benutzereingaben&amp;lt;br&amp;gt;Ausgabe derselben&lt;br /&gt;
 | [[Benutzer:Mario|Mario]]&lt;br /&gt;
 | nion&lt;br /&gt;
 | &lt;br /&gt;
 |- bgcolor=&amp;quot;#F5F5F5&amp;quot;&lt;br /&gt;
 | [[Ckurs2009/Taschenrechner | Taschenrechner]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |3&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |2. VL&lt;br /&gt;
 | Eingabe+Ausgabe&amp;lt;br&amp;gt;Mathematische Operatoren&lt;br /&gt;
 | [[Benutzer:Mario|Mario]]&lt;br /&gt;
 | [[Benutzer:Tkroenert|TKroenert]]&lt;br /&gt;
 | &lt;br /&gt;
 |- bgcolor=&amp;quot;#E8E8E8&amp;quot;&lt;br /&gt;
 | [[Ckurs2009/VerschachtelteSchleifen | Verschachtelte Schleifen]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |3&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |2. VL&lt;br /&gt;
 | Umgang mit mehreren verschachtelten Schleifen&lt;br /&gt;
 | [[Benutzer:Dank|Daniel K.]]&lt;br /&gt;
 | AlexanderK&lt;br /&gt;
 |- bgcolor=&amp;quot;#F5F5F5&amp;quot;&lt;br /&gt;
 | [[Ckurs2009/Glückspiel | Glücksspiel]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |3&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |2. VL&lt;br /&gt;
 | Anwenden von Fallunterscheidungen und Einlesen von Werten aus der Konsole&lt;br /&gt;
 | [[Benutzer:Dank|Daniel K.]]&lt;br /&gt;
 | AlexanderK&lt;br /&gt;
 |- bgcolor=&amp;quot;#E8E8E8&amp;quot;&lt;br /&gt;
 | [[Ckurs2009/Wochentag | Wochentagsrechnung]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |5&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |2. VL&lt;br /&gt;
 | Einlesen von Benutzereingaben&amp;lt;br&amp;gt;Mathematikverständniss&lt;br /&gt;
 | [[Benutzer:Mario|Mario]]&lt;br /&gt;
 | nion (Musterlösung noch nicht vorhanden)&lt;br /&gt;
 | &lt;br /&gt;
 |- bgcolor=&amp;quot;#F5F5F5&amp;quot;&lt;br /&gt;
 | [[Ckurs2009/Taschenrechner2.0 | Taschenrechner &#039;&#039;2.0&#039;&#039;]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |8&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |2. VL&lt;br /&gt;
 | Knobeln&amp;lt;br&amp;gt;Komplexes Aufgaben lösen&lt;br /&gt;
 | [[Benutzer:Mario|Mario]]&lt;br /&gt;
 | martin&lt;br /&gt;
 | &lt;br /&gt;
 |- bgcolor=&amp;quot;#E8E8E8&amp;quot;&lt;br /&gt;
 | [[Ckurs2009/Call by reference | Call by reference]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |4&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |3. VL&lt;br /&gt;
 | Einfache Anwendung von &amp;amp;/*&lt;br /&gt;
 | sping&lt;br /&gt;
 | nion&lt;br /&gt;
 | vorhanden&lt;br /&gt;
 |- bgcolor=&amp;quot;#F5F5F5&amp;quot;&lt;br /&gt;
 | [[Ckurs2009/Text processing | Text processing]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |4, 6&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |3. VL&lt;br /&gt;
 | Strings&amp;lt;br&amp;gt;Pointer-Arithmetik&amp;lt;br&amp;gt;Pointer auf Pointer&amp;lt;br&amp;gt;Refactoring&lt;br /&gt;
 | sping&lt;br /&gt;
 | [[Benutzer:Mario|Mario]]&lt;br /&gt;
 | vorhanden&lt;br /&gt;
 |- bgcolor=&amp;quot;#E8E8E8&amp;quot;&lt;br /&gt;
 | [[Ckurs2009/Palindrome | Palindrome]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |4&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |3. VL&lt;br /&gt;
 | Pointer und Strings&lt;br /&gt;
 | [[Benutzer:Dank|Daniel K.]]&lt;br /&gt;
 |&lt;br /&gt;
 |&lt;br /&gt;
 |- bgcolor=&amp;quot;#F5F5F5&amp;quot;&lt;br /&gt;
 | [[Ckurs2009/(Pointer) Swapping | (Pointer) Swapping]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |5&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |3. VL&lt;br /&gt;
 | Pointer und Arrays benutzen, generisches swap&lt;br /&gt;
 | Katrin&lt;br /&gt;
 |&lt;br /&gt;
 | vorhanden&lt;br /&gt;
 |- bgcolor=&amp;quot;#E8E8E8&amp;quot;&lt;br /&gt;
 | [[Ckurs2009/Matrizenmultiplikation | Matrizenmultiplikation]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |6&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |3. VL&lt;br /&gt;
 | Mehrdimensionale Arrays&amp;lt;br&amp;gt;const correctness&lt;br /&gt;
 | sping&lt;br /&gt;
 | [[Benutzer:Mario|Mario]]&lt;br /&gt;
 | vorhanden&lt;br /&gt;
 |- bgcolor=&amp;quot;#F5F5F5&amp;quot;&lt;br /&gt;
 | [[Ckurs2009/Arrayuebergabe | Arrayuebergabe]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |4/5&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; | 4. VL&lt;br /&gt;
 | Einlesen von Benutzereingaben&amp;lt;br&amp;gt;Pointer und Pointerarithmetik&lt;br /&gt;
 | nion&lt;br /&gt;
 | martin&lt;br /&gt;
 | vorhanden&lt;br /&gt;
 |- bgcolor=&amp;quot;#E8E8E8&amp;quot;&lt;br /&gt;
 | [[Ckurs2009/Studentendatenbank | Studentendatenbank]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |4&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; | 4. VL&lt;br /&gt;
 | struct, Pointer, Arrays&lt;br /&gt;
 | AlexanderK&lt;br /&gt;
 |&lt;br /&gt;
 | vorhanden&lt;br /&gt;
 |- bgcolor=&amp;quot;#F5F5F5&amp;quot;&lt;br /&gt;
 | [[Ckurs2009/Sammelbestellung | Sammelbestellung]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |2-5&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |4. VL&lt;br /&gt;
 | Listen, Pointer, Speicherverwaltung&lt;br /&gt;
 | Florian S.&lt;br /&gt;
 | [[Benutzer:Mario|Mario]]&lt;br /&gt;
 | in Arbeit&lt;br /&gt;
 |- bgcolor=&amp;quot;#E8E8E8&amp;quot;&lt;br /&gt;
 | [[Ckurs2009/Compiler, Präprozessor, Header Files | Compiler, Präprozessor, Header Files]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |3&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |5. VL&lt;br /&gt;
 | Arbeiten mit mehreren Quellcode-Dateien, Kompilieren und Linken, Header-Dateien und #include, debugging-Makro verwenden&lt;br /&gt;
 | Katrin&lt;br /&gt;
 | &lt;br /&gt;
 | siehe Folien&lt;br /&gt;
 |- bgcolor=&amp;quot;#F5F5F5&amp;quot;&lt;br /&gt;
 | [[Ckurs2009/Bus Error | Bus Error]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |8&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |5. VL&lt;br /&gt;
 | Pointer, wie entsteht ein bus error&lt;br /&gt;
 | Katrin&lt;br /&gt;
 | &lt;br /&gt;
 |- bgcolor=&amp;quot;#E8E8E8&amp;quot;&lt;br /&gt;
 | [[Ckurs2009/Code Layout | Code Layout]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |3&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |7. VL&lt;br /&gt;
 | Kleinere Codeschipsel mit kleinen unsauberkeiten&lt;br /&gt;
 | Daniel&lt;br /&gt;
 | &lt;br /&gt;
 |- bgcolor=&amp;quot;#F5F5F5&amp;quot;&lt;br /&gt;
 | [[Ckurs2009/Refactoring | Refactoring]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |6&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |7. VL&lt;br /&gt;
 | Wie verbessere ich den Quellcode eines Programmes.&lt;br /&gt;
 | Daniel&lt;br /&gt;
 | &lt;br /&gt;
 | vorhanden&lt;br /&gt;
 |- bgcolor=&amp;quot;#E8E8E8&amp;quot;&lt;br /&gt;
 | [[Ckurs2009/Cat | Cat]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; | 6&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; | ....&lt;br /&gt;
 | Arbeiten mit Dateien&amp;lt;br&amp;gt;Kommandozeilenparameter&lt;br /&gt;
 | nion&lt;br /&gt;
 | sping&lt;br /&gt;
 | vorhanden&lt;br /&gt;
 |- bgcolor=&amp;quot;#F5F5F5&amp;quot;&lt;br /&gt;
 | [[Ckurs2009/Pong | Pong]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; | 7&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; | ...&lt;br /&gt;
 | allgemeiner Programmablauf, fortgeschrittene Konsolenausgaben/eingaben&lt;br /&gt;
 | AlexanderK&lt;br /&gt;
 |&lt;br /&gt;
 | vorhanden&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Kleine und große Probleme ==&lt;br /&gt;
&lt;br /&gt;
* Die Tubit-Accounts haben nicht /bin/bash als shell, so dass die &amp;lt;strong&amp;gt;Cursortasten&amp;lt;/strong&amp;gt; nicht funktionieren. Workaround: als erstes Kommando &#039;bash&#039; eingeben, man sieht dann auch in welchem Verzeichnis man gerade ist.&lt;br /&gt;
&lt;br /&gt;
== Musterlösungen ==&lt;br /&gt;
Die Lösungen zu den Aufgaben werden nach den jeweiligen Übungen hier veröffentlicht. Falls dies nicht geschiet, bitte den zuständigen Tutor fragen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* [[Ckurs2009/Feedback|Feedback zum Kurs 2009]]&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:CKurs]]&lt;br /&gt;
[[Kategorie:CKurs Aufgaben]]&lt;/div&gt;</summary>
		<author><name>DStulle</name></author>
	</entry>
	<entry>
		<id>wiki.stageing.freitagsrunde.org//index.php?title=C-Kurs/%C3%9Cbungsaufgaben&amp;diff=12425</id>
		<title>C-Kurs/Übungsaufgaben</title>
		<link rel="alternate" type="text/html" href="wiki.stageing.freitagsrunde.org//index.php?title=C-Kurs/%C3%9Cbungsaufgaben&amp;diff=12425"/>
		<updated>2009-09-20T22:08:12Z</updated>

		<summary type="html">&lt;p&gt;DStulle: /* Die Aufgaben */ Meine Ideen zu den Aufgaben in die Liste eingetragen....&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Wir haben jeder Aufgabe eine Einschätzung ihrer Schwierigkeit auf einer Skala von 1 bis 10 vorangestellt. Bei dieser Einschätzung sind wir von einem Gehirn ausgegangen, für welches das jeweilige Themengebiet völlig neu ist, das jedoch schon ein ganz gutes Verständnis dafür hat wie eine Programmiersprache denn so funktioniert. &lt;br /&gt;
Entsprechend kann eine schwer bewertete Aufgabe aus einem frühen Themengebiet für manch einen sehr einfach oder eine leicht bewertete aus einem späten Themengebiet für einen anderen sehr schwer sein. Es ist nur ein Wert, der euch helfen soll eure nächste Aufgabe zu wählen. &lt;br /&gt;
&lt;br /&gt;
Falls ihr Anmerkungen zu den Aufgaben habt, könnt ihr die Diskussionsseiten der jeweiligen Aufgaben nutzen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Schwierigkeitsgrade ==&lt;br /&gt;
&lt;br /&gt;
#  Reines Tutorial. Man muss nicht viel selbst denken&lt;br /&gt;
#  ...&lt;br /&gt;
#  Leichte Übungsaufgabe. Studies, die noch eher unsicher sind werden hier gut begleitet.&lt;br /&gt;
#  ...&lt;br /&gt;
#  Typische Aufgabe. Man muss den Kopf benutzen, bekommt an schwierigen Stellen aber Hilfestellungen.&lt;br /&gt;
#  ...&lt;br /&gt;
#  Herausfordernd, eher etwas für Studies die etwas fitter sind.&lt;br /&gt;
#  ...&lt;br /&gt;
#  Auch erfahrene Programmierer werden hier ein bis zwei Übungen beschäftigt sein&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
#  Tja, die Idee war da. Wir finden sie auch gut, aber es könnte wirklich anstrengend werden.&lt;br /&gt;
&lt;br /&gt;
== Die Aufgaben ==&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;4&amp;quot; cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
 |- bgcolor=&amp;quot;#D8D8D8&amp;quot;&lt;br /&gt;
 !Aufgabe&lt;br /&gt;
 !Schwierigkeit&lt;br /&gt;
 !Vorwissen&lt;br /&gt;
 !Lerneffekte&lt;br /&gt;
 !Bearbeiter&lt;br /&gt;
 !Korrektur gelesen&lt;br /&gt;
 !Musterlösung&lt;br /&gt;
 |- bgcolor=&amp;quot;#F5F5F5&amp;quot;&lt;br /&gt;
 | [[Ckurs2009/Von der Konsole zum HelloWorld | Von der Konsole zum HelloWorld]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |1&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |1. VL&lt;br /&gt;
 | Konsole benutzen, Hello World&lt;br /&gt;
 | Sebastian D.&lt;br /&gt;
 | [[Benutzer:Mario|Mario]]&lt;br /&gt;
 | &lt;br /&gt;
 |- bgcolor=&amp;quot;#E8E8E8&amp;quot;&lt;br /&gt;
 | [[Ckurs2009/Fakultät | Fakultät]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |2&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |1. VL&lt;br /&gt;
 | Schleifen&lt;br /&gt;
 | Sebastian D.&lt;br /&gt;
 | &lt;br /&gt;
 |&lt;br /&gt;
 |- bgcolor=&amp;quot;#F5F5F5&amp;quot;&lt;br /&gt;
 | [[Ckurs2009/Base64 | Base64]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |6&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |1. VL&lt;br /&gt;
 | Operatoren&lt;br /&gt;
 | Sebastian D.&lt;br /&gt;
 | &lt;br /&gt;
 |- bgcolor=&amp;quot;#E8E8E8&amp;quot;&lt;br /&gt;
 | [[Ckurs2009/EingabeAusgabe | Ein- und Ausgabe]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |1&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |2. VL&lt;br /&gt;
 | Einlesen von Benutzereingaben&amp;lt;br&amp;gt;Ausgabe derselben&lt;br /&gt;
 | [[Benutzer:Mario|Mario]]&lt;br /&gt;
 | nion&lt;br /&gt;
 | &lt;br /&gt;
 |- bgcolor=&amp;quot;#F5F5F5&amp;quot;&lt;br /&gt;
 | [[Ckurs2009/Taschenrechner | Taschenrechner]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |3&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |2. VL&lt;br /&gt;
 | Eingabe+Ausgabe&amp;lt;br&amp;gt;Mathematische Operatoren&lt;br /&gt;
 | [[Benutzer:Mario|Mario]]&lt;br /&gt;
 | [[Benutzer:Tkroenert|TKroenert]]&lt;br /&gt;
 | &lt;br /&gt;
 |- bgcolor=&amp;quot;#E8E8E8&amp;quot;&lt;br /&gt;
 | [[Ckurs2009/VerschachtelteSchleifen | Verschachtelte Schleifen]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |3&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |2. VL&lt;br /&gt;
 | Umgang mit mehreren verschachtelten Schleifen&lt;br /&gt;
 | [[Benutzer:Dank|Daniel K.]]&lt;br /&gt;
 | AlexanderK&lt;br /&gt;
 |- bgcolor=&amp;quot;#F5F5F5&amp;quot;&lt;br /&gt;
 | [[Ckurs2009/Glückspiel | Glücksspiel]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |3&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |2. VL&lt;br /&gt;
 | Anwenden von Fallunterscheidungen und Einlesen von Werten aus der Konsole&lt;br /&gt;
 | [[Benutzer:Dank|Daniel K.]]&lt;br /&gt;
 | AlexanderK&lt;br /&gt;
 |- bgcolor=&amp;quot;#E8E8E8&amp;quot;&lt;br /&gt;
 | [[Ckurs2009/Wochentag | Wochentagsrechnung]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |5&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |2. VL&lt;br /&gt;
 | Einlesen von Benutzereingaben&amp;lt;br&amp;gt;Mathematikverständniss&lt;br /&gt;
 | [[Benutzer:Mario|Mario]]&lt;br /&gt;
 | nion (Musterlösung noch nicht vorhanden)&lt;br /&gt;
 | &lt;br /&gt;
 |- bgcolor=&amp;quot;#F5F5F5&amp;quot;&lt;br /&gt;
 | [[Ckurs2009/Taschenrechner2.0 | Taschenrechner &#039;&#039;2.0&#039;&#039;]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |8&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |2. VL&lt;br /&gt;
 | Knobeln&amp;lt;br&amp;gt;Komplexes Aufgaben lösen&lt;br /&gt;
 | [[Benutzer:Mario|Mario]]&lt;br /&gt;
 | martin&lt;br /&gt;
 | &lt;br /&gt;
 |- bgcolor=&amp;quot;#E8E8E8&amp;quot;&lt;br /&gt;
 | [[Ckurs2009/Call by reference | Call by reference]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |4&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |3. VL&lt;br /&gt;
 | Einfache Anwendung von &amp;amp;/*&lt;br /&gt;
 | sping&lt;br /&gt;
 | nion&lt;br /&gt;
 | vorhanden&lt;br /&gt;
 |- bgcolor=&amp;quot;#F5F5F5&amp;quot;&lt;br /&gt;
 | [[Ckurs2009/Text processing | Text processing]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |4, 6&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |3. VL&lt;br /&gt;
 | Strings&amp;lt;br&amp;gt;Pointer-Arithmetik&amp;lt;br&amp;gt;Pointer auf Pointer&amp;lt;br&amp;gt;Refactoring&lt;br /&gt;
 | sping&lt;br /&gt;
 | [[Benutzer:Mario|Mario]]&lt;br /&gt;
 | vorhanden&lt;br /&gt;
 |- bgcolor=&amp;quot;#E8E8E8&amp;quot;&lt;br /&gt;
 | [[Ckurs2009/Palindrome | Palindrome]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |4&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |3. VL&lt;br /&gt;
 | Pointer und Strings&lt;br /&gt;
 | [[Benutzer:Dank|Daniel K.]]&lt;br /&gt;
 |&lt;br /&gt;
 |&lt;br /&gt;
 |- bgcolor=&amp;quot;#F5F5F5&amp;quot;&lt;br /&gt;
 | [[Ckurs2009/(Pointer) Swapping | (Pointer) Swapping]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |5&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |3. VL&lt;br /&gt;
 | Pointer und Arrays benutzen, generisches swap&lt;br /&gt;
 | Katrin&lt;br /&gt;
 |&lt;br /&gt;
 | vorhanden&lt;br /&gt;
 |- bgcolor=&amp;quot;#E8E8E8&amp;quot;&lt;br /&gt;
 | [[Ckurs2009/Matrizenmultiplikation | Matrizenmultiplikation]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |6&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |3. VL&lt;br /&gt;
 | Mehrdimensionale Arrays&amp;lt;br&amp;gt;const correctness&lt;br /&gt;
 | sping&lt;br /&gt;
 | [[Benutzer:Mario|Mario]]&lt;br /&gt;
 | vorhanden&lt;br /&gt;
 |- bgcolor=&amp;quot;#F5F5F5&amp;quot;&lt;br /&gt;
 | [[Ckurs2009/Arrayuebergabe | Arrayuebergabe]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |4/5&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; | 4. VL&lt;br /&gt;
 | Einlesen von Benutzereingaben&amp;lt;br&amp;gt;Pointer und Pointerarithmetik&lt;br /&gt;
 | nion&lt;br /&gt;
 | martin&lt;br /&gt;
 | vorhanden&lt;br /&gt;
 |- bgcolor=&amp;quot;#E8E8E8&amp;quot;&lt;br /&gt;
 | [[Ckurs2009/Studentendatenbank | Studentendatenbank]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |4&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; | 4. VL&lt;br /&gt;
 | struct, Pointer, Arrays&lt;br /&gt;
 | AlexanderK&lt;br /&gt;
 |&lt;br /&gt;
 | vorhanden&lt;br /&gt;
 |- bgcolor=&amp;quot;#F5F5F5&amp;quot;&lt;br /&gt;
 | [[Ckurs2009/Sammelbestellung | Sammelbestellung]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |2-5&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |4. VL&lt;br /&gt;
 | Listen, Pointer, Speicherverwaltung&lt;br /&gt;
 | Florian S.&lt;br /&gt;
 | [[Benutzer:Mario|Mario]]&lt;br /&gt;
 | in Arbeit&lt;br /&gt;
 |- bgcolor=&amp;quot;#E8E8E8&amp;quot;&lt;br /&gt;
 | [[Ckurs2009/Compiler, Präprozessor, Header Files | Compiler, Präprozessor, Header Files]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |3&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |5. VL&lt;br /&gt;
 | Arbeiten mit mehreren Quellcode-Dateien, Kompilieren und Linken, Header-Dateien und #include, debugging-Makro verwenden&lt;br /&gt;
 | Katrin&lt;br /&gt;
 | &lt;br /&gt;
 | siehe Folien&lt;br /&gt;
 |- bgcolor=&amp;quot;#F5F5F5&amp;quot;&lt;br /&gt;
 | [[Ckurs2009/Bus Error | Bus Error]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |8&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |5. VL&lt;br /&gt;
 | Pointer, wie entsteht ein bus error&lt;br /&gt;
 | Katrin&lt;br /&gt;
 | &lt;br /&gt;
 |- bgcolor=&amp;quot;#E8E8E8&amp;quot;&lt;br /&gt;
 | [[Ckurs2009/Code Layout | Code Layout]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |3&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |7. VL&lt;br /&gt;
 | Kleinere Codeschipsel mit kleinen unsauberkeiten&lt;br /&gt;
 | Daniel&lt;br /&gt;
 | &lt;br /&gt;
 |- bgcolor=&amp;quot;#F5F5F5&amp;quot;&lt;br /&gt;
 | [[Ckurs2009/Refactoring | Refactoring]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |6&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |7. VL&lt;br /&gt;
 | Wie verbessere ich den Quellcode eines Programmes.&lt;br /&gt;
 | Daniel&lt;br /&gt;
 | &lt;br /&gt;
 | vorhanden&lt;br /&gt;
 |- bgcolor=&amp;quot;#E8E8E8&amp;quot;&lt;br /&gt;
 | [[Ckurs2009/Cat | Cat]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; | 6&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; | ....&lt;br /&gt;
 | Arbeiten mit Dateien&amp;lt;br&amp;gt;Kommandozeilenparameter&lt;br /&gt;
 | nion&lt;br /&gt;
 | sping&lt;br /&gt;
 | vorhanden&lt;br /&gt;
 |- bgcolor=&amp;quot;#F5F5F5&amp;quot;&lt;br /&gt;
 | [[Ckurs2009/Pong | Pong]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; | 7&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; | ...&lt;br /&gt;
 | allgemeiner Programmablauf, fortgeschrittene Konsolenausgaben/eingaben&lt;br /&gt;
 | AlexanderK&lt;br /&gt;
 |&lt;br /&gt;
 | vorhanden&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Kleine und große Probleme ==&lt;br /&gt;
&lt;br /&gt;
* Die Tubit-Accounts haben nicht /bin/bash als shell, so dass die &amp;lt;strong&amp;gt;Cursortasten&amp;lt;/strong&amp;gt; nicht funktionieren. Workaround: als erstes Kommando &#039;bash&#039; eingeben, man sieht dann auch in welchem Verzeichnis man gerade ist.&lt;br /&gt;
&lt;br /&gt;
== Musterlösungen ==&lt;br /&gt;
Die Lösungen zu den Aufgaben werden nach den jeweiligen Übungen hier veröffentlicht. Falls dies nicht geschiet, bitte den zuständigen Tutor fragen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* [[Ckurs2009/Feedback|Feedback zum Kurs 2009]]&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:CKurs]]&lt;br /&gt;
[[Kategorie:CKurs Aufgaben]]&lt;/div&gt;</summary>
		<author><name>DStulle</name></author>
	</entry>
	<entry>
		<id>wiki.stageing.freitagsrunde.org//index.php?title=C-Kurs_2009/Vortrag07&amp;diff=12258</id>
		<title>C-Kurs 2009/Vortrag07</title>
		<link rel="alternate" type="text/html" href="wiki.stageing.freitagsrunde.org//index.php?title=C-Kurs_2009/Vortrag07&amp;diff=12258"/>
		<updated>2009-09-12T12:12:46Z</updated>

		<summary type="html">&lt;p&gt;DStulle: /* Ein paar Genanken */ Gedanken erweitert&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Guter Code =&lt;br /&gt;
&lt;br /&gt;
Vortragende: &#039;&#039;&#039;Daniel S.&#039;&#039;&#039; &amp;lt;dstulle gmx.de&amp;gt; &lt;br /&gt;
&lt;br /&gt;
=== Themen ===&lt;br /&gt;
* Guter Code&lt;br /&gt;
&lt;br /&gt;
==== Ein paar Genanken ====&lt;br /&gt;
&lt;br /&gt;
Guter Code? Was ist gut?&lt;br /&gt;
Die frage ob etwas gut oder schlecht ist, definiert sich über das Ziel, dass man hat.&lt;br /&gt;
&lt;br /&gt;
Erst wenn man sich darüber im klaren ist, was man für ein Ziel hat kann man sich die Frage stellen ob etwas gut ist. z.B.: was für ein Auto ist gut? Ein Bus, ein Lastwagen, ein Rennwagen? Es kommt ganz darauf an ob man viele Leute mitnehmen will, viel Krams mitnehmen will oder einfach schnell sein will.&lt;br /&gt;
&lt;br /&gt;
Was will man üblicher weise erreichen wenn man Programmiert.&lt;br /&gt;
Zunächst einmal will man der Maschine sagen was sie tun soll. Aber ist das alles?&lt;br /&gt;
&lt;br /&gt;
Meistens will man den Code selber später nochmal lesen und verstehen. Also schreibt man ihn auch für sich.&lt;br /&gt;
&lt;br /&gt;
Sehr oft schreibt man den Code mit anderen zusammen oder als Teil eines Projektes mit Anderen. Also schreibt man ihn auch für andere.&lt;br /&gt;
&lt;br /&gt;
Warum ist guter Code, gutes Layout wichtig?&lt;br /&gt;
&lt;br /&gt;
Ihr schreibt den Programmcode nicht für den Computer sondern für euch und andere Menschen. Sonst könntet ihr das ganze gleich in Assembler rein hacken und es dann vergessen.&lt;br /&gt;
&lt;br /&gt;
Programmieren uns Softwareengineering ist bis auf wenige ausnahmen ein sehr kommunikativer und zwischenmenschlicher Prozess. Deswegen haben Informatiker auch eine so hohe Sozialkompetenz (Kein Scherz)&lt;br /&gt;
&lt;br /&gt;
Ihr schreibt den Code, damit ihn andere Leute oder ihr selber später mal lesen könnt. Programmieren ist eine besondere Art der Kommunikation. Genau wie die Menschliche Sprache ein Medium für Informationen, Gedanken und Konzepten ist, wird die Programmiersprache genau dazu benutzt mit der Besonderheit dass sie sogar ein Computer verstehen kann, aber das ist eigentlich nebensächlich ;-).&lt;br /&gt;
&lt;br /&gt;
Ihr seht also es ist wichtig sich beim Schreiben von Code an bestimmte Regeln zu halten. Ein Programm zu schreiben was nur der Compiler versteht uns sonst niemand anders ist keine Kunst und obendrein nutzlos.&lt;br /&gt;
&lt;br /&gt;
=== Folien ===&lt;br /&gt;
&amp;lt;!-- * [url name] --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Aufgaben ===&lt;br /&gt;
&lt;br /&gt;
==== Ein paar Gedanken ====&lt;br /&gt;
Die aufgaben sollten im Team gelöst werden, bzw als interaktion zwischen mehreren Teilnehmern. Kommunikation sollte irgendwie eine rolle spielen.&lt;br /&gt;
&lt;br /&gt;
=== Mitschnitt ===&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:CKurs]]&lt;/div&gt;</summary>
		<author><name>DStulle</name></author>
	</entry>
	<entry>
		<id>wiki.stageing.freitagsrunde.org//index.php?title=CAcert&amp;diff=4265</id>
		<title>CAcert</title>
		<link rel="alternate" type="text/html" href="wiki.stageing.freitagsrunde.org//index.php?title=CAcert&amp;diff=4265"/>
		<updated>2009-02-06T14:31:14Z</updated>

		<summary type="html">&lt;p&gt;DStulle: /* Assurer */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;CAcert&#039;&#039;&#039; ist eine Zertifizierungsstelle für kostenlose S/MIME- und SSL-Serverzertifikate. Für personalisierte Zertifikate muss man sich gegenüber CAcert authentifizieren, dafür wurde ein &amp;quot;[[Web of Trust]]&amp;quot; geschaffen, in dem bereits ausreichend authentifizierte CAcert-Benutzer, die sogenannten &amp;quot;Assurer&amp;quot; andere Teilnehmer bestätigen können. Das ganze funktioniert über ein Punktesystem und je mehr Punkte man erhält, desto mehr Rechte hat man und kann dann z.B. für sich selber personalisierte S/MIME-Zertfikate erhalten oder ab einer gewissen Punktzahl auch andere Teilnehmer bestätigen.&lt;br /&gt;
&lt;br /&gt;
Das wichtigste Ziel von CAcert ist, daß ihr [https://www.cacert.org/index.php?id=3 Root-Zertifikat] von den Browser-Herstellern in ihre Produkte aufgenommen wird, damit bei SSL-verschlüsselten Seiten, deren Schlüssel von CAcert unterschrieben wurden, zukünftig keine Warnhinweise mehr angezeigt werden, so wie man es schon von den großen kommerziellen Zertifizierungsstellen her kennt.&lt;br /&gt;
&lt;br /&gt;
== Die Freitagsrunde bestätigt dich ==&lt;br /&gt;
Einige von uns sind selber schon CAcert-Assurer bzw. gerade dabei, die benötigten Punkte zu erhalten. Unser Ziel ist es, dass Interessierte bei uns direkt alle benötigten Punkte für die Nutzung von CAcert erhalten können, vorausgesetzt natürlich die Identität konnte nach den Regeln von CAcert überprüft werden (zwei gültige amtliche Ausweisdokumente, mindestens eins mit Lichtbild).&lt;br /&gt;
&lt;br /&gt;
Wir können zur Zeit max. 100 Punkte vergeben (mehr geht per Web of Trust nicht), so dass du selbst sofort ein Assurer wirst. Außerdem ist [[Benutzer:Felix| Felix Schwarz]] auch Thawte Notar. Bei Interesse oder für Fragen und Hinweise, sind für unter [mailto:cacert@freitagsrunde.org cacert@freitagsrunde.org] erreichbar. Da nicht immer alle Assurer freitags da sind, bitte unbedingt vorher per E-Mail ([mailto:cacert@freitagsrunde.org cacert@freitagsrunde.org]) anmelden, um unnötige Wege zu vermeiden.&lt;br /&gt;
&lt;br /&gt;
== Assurer ==&lt;br /&gt;
* [[Benutzer:Felixf|Felix Friedrich]] (35 Punkte CAcert)&lt;br /&gt;
* [[Benutzer:Mutax|Florian Streibelt]] (35 Punkte CAcert)&lt;br /&gt;
* [[Benutzer:Bastla|Sebastian Lange]] (30 Punkte CAcert)&lt;br /&gt;
* [[Benutzer:Cleeus|Kai Dietrich]] (25 Punkte CAcert)&lt;br /&gt;
* [[Benutzer:Dan|Dan Levin]] (20 Punkte CAcert)&lt;br /&gt;
* [[Benutzer:buchholz|Robert Buchholz]] (15 Punkte CAcert)&lt;br /&gt;
* [[Benutzer:BjörnL|Björn Lohrmann]] (10 Punkte CAcert)&lt;br /&gt;
* Sebastian Dyroff (10 Punkte CAcert)&lt;br /&gt;
* [[Benutzer:dStulle|Daniel Sturm]] (10 Punkte CAcert)&lt;br /&gt;
&lt;br /&gt;
==== Nicht mehr regelmäßig anwesend: ====&lt;br /&gt;
* [[Benutzer:Martin Häcker|Martin Häcker]] (35 Punkte CAcert)&lt;br /&gt;
* [[Benutzer:Thomas|Thomas Kaschwig]] (35 Punkte CAcert)&lt;br /&gt;
* [[Benutzer:Felix|Felix Schwarz]] (35 Punkte CAcert, 35 Punkte Thawte)&lt;br /&gt;
&lt;br /&gt;
== Wo und wann findet das ganze statt? ==&lt;br /&gt;
&lt;br /&gt;
Wir sind eine Studierendeninitiative, die sich regelmäßig am Freitag trifft, daher auch unser Name. Die CAcert-Zertifizierung führen wir i.d.R. vor oder nach dem Treffen durch, in Ausnahmefällen können wir jedoch auch individuelle Termine vereinbaren.&lt;br /&gt;
&lt;br /&gt;
=== Wo? ===&lt;br /&gt;
&lt;br /&gt;
 Technische Universität Berlin&lt;br /&gt;
 Raum [[FR 5046]]&lt;br /&gt;
 Franklinstr. 28/29&lt;br /&gt;
 10587 Berlin&lt;br /&gt;
&lt;br /&gt;
=== Wann? ===&lt;br /&gt;
&lt;br /&gt;
Unsere Sitzung beginnt jeden Freitag um 13 Uhr und geht bis ca. 15:00. Während des Treffen führen wir keine Assurings durch. Nach dem Treffen ist ein Assuring aber problemlos möglich. Bitte trotzdem vorher per E-Mail anmelden und abklären, wann genau wer da ist.&lt;br /&gt;
&lt;br /&gt;
== Wie funktionierts? ==&lt;br /&gt;
&lt;br /&gt;
Du zeigst uns deine Personaldokumente (mind. ein amtlicher Ausweis, zwei stark bevorzugt), füllst das CAcert-Formular aus. Solltest du auf den Ausweisen erkennbar sein, vergeben wir anschließend die Punkte und tragen das auf der CAcert-Webseite ein. Fertig. Das ganze dauert idR. etwa 10-15 Minuten.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Was soll ich mitbringen? ==&lt;br /&gt;
&lt;br /&gt;
# Zwei gültige amtliche Ausweisdokumente (z.B. Personalausweis + Führerschein). Wichtig: Auf mindestens einem Bild solltest du gut zu erkennen sein.&lt;br /&gt;
# Für Thawte-Zertifizierungen: Eine Kopie (Vorder- und Rückseite) deiner Personaldokumente. &lt;br /&gt;
# Für Thawte-Zertifizierungen: Im [https://www.thawte.com/cgi/personal/wot/directory.exe?node=397 Notary-Listing bei Thawte] [https://www.thawte.com/cgi/personal/wot/wotpermission.exe?add=esLj9v2MdTCJh2t4JAMazCA&amp;amp;ref=25&amp;amp;return=directory.exe&amp;amp;node=397 &amp;quot;Felix Schwarz&amp;quot; freischalten] (&amp;quot;allow this notary to view your details&amp;quot;).&lt;br /&gt;
# [http://www.cacert.org/cap.php?lang=de_DE CAcert-Formulare] haben wir da, du kannst sie aber natürlich auch schon vorher bei CAcert herunterladen und ausfüllen. Die [https://www.thawte.com/en/wot/tngerman.pdf Thawte-Formulare] sind etwas versteckter, aber ebenfalls erhältlich.&lt;br /&gt;
# Du solltest bereits einen Account bei [https://www.cacert.org/ CAcert] besitzen (gleiches gilt natürlich für [http://www.thawte.com/wot/index.html Thawte]).&lt;br /&gt;
# Dich selbst.&lt;br /&gt;
&lt;br /&gt;
== Was muss ich danach noch machen? ==&lt;br /&gt;
&lt;br /&gt;
Wenn du bei uns schon die maximalen 100 Punkte bekommen hast, gibt es eigentlich für dich nicht mehr viel zu machen. Allerdings fänden wir es schön, wenn du folgende Bitten befolgen würdest:&lt;br /&gt;
# Mit 100 Punkten bist du selbst Assurer, kannst also andere bestätigen. Bitte missbrauche deine neue Macht nicht und prüfe die Identität der Leute, die du zertifizierst.&lt;br /&gt;
# Ein Projekt wie CAcert lebt davon, dass es möglichst viele Assurer gibt. Da du jetzt auch einer bist, trage dich doch in die Assurer-Liste ein, damit dich andere finden (dies ist standardmäßig nicht der Fall): Einloggen bei CAcert - Meine Details - Mein Listeneintrag.&lt;br /&gt;
# Installiere das [https://www.cacert.org/index.php?id=3 CAcert-Rootzertifikat] auf Systemen, die du ev. betreust (Familie, Freunde, Verwandte), um für größere Akzeptanz zu werben.&lt;br /&gt;
# Werbe allgemein für CAcert, so dass z.B. auch Foren-Bekannte etc. sich das CAcert-Rootzertifikat installieren.&lt;br /&gt;
&lt;br /&gt;
== Weblinks ==&lt;br /&gt;
* https://www.cacert.org/&lt;br /&gt;
* http://wiki.cacert.org/&lt;br /&gt;
&lt;br /&gt;
[[Kategorie: Kryptologie]]&lt;/div&gt;</summary>
		<author><name>DStulle</name></author>
	</entry>
	<entry>
		<id>wiki.stageing.freitagsrunde.org//index.php?title=Br%C3%B6tchenmann&amp;diff=11493</id>
		<title>Brötchenmann</title>
		<link rel="alternate" type="text/html" href="wiki.stageing.freitagsrunde.org//index.php?title=Br%C3%B6tchenmann&amp;diff=11493"/>
		<updated>2009-02-06T14:17:52Z</updated>

		<summary type="html">&lt;p&gt;DStulle: /* Angebot */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Im Fanklingebäude und eventuell auch anderswo zieht ein Mann seine Runden um dort Anwesenden leckere Brötchen zu verkaufen.&lt;br /&gt;
&lt;br /&gt;
=== Angebot ===&lt;br /&gt;
&lt;br /&gt;
Es gibt diverse Arten von Brötchen: helle, dunkle, Sesam-, Körner-, Käse-, Laugenbrötchen und vieles mehr&lt;br /&gt;
&lt;br /&gt;
Belegt sind die Brötchen unter anderem mit (Salami, Käse und Ei), (Schinken, Käse und Ei), Schnitzel, Cordon Bleu und ähnlichem. Ergänzt durch frische Gurken, saftige Tomaten und knackigem Salat. Abgerundet wird das ganze mit leckeren Soßen.&lt;br /&gt;
&lt;br /&gt;
=== Preise ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Item   !! Preis&lt;br /&gt;
|-&lt;br /&gt;
| Große Brötchen || 2,00 €&lt;br /&gt;
|-&lt;br /&gt;
| Normale Brötchen || 1,00 €&lt;br /&gt;
|-&lt;br /&gt;
| Gemischter Salat mit&lt;br /&gt;
|-&lt;br /&gt;
| ...Ei || 1,50 €&lt;br /&gt;
|-&lt;br /&gt;
| ...Mozaralla und Pesto || 1,50 €&lt;br /&gt;
|-&lt;br /&gt;
| Milchreis mit Apfelmus || 1,50 €&lt;br /&gt;
|-&lt;br /&gt;
| Nudelsalat || 1,50 €&lt;br /&gt;
|-&lt;br /&gt;
| Obstsalat || 2,00 €&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Zeiten ===&lt;br /&gt;
&lt;br /&gt;
FR: Üblicherweise Montags bis Freitags zwischen 14:00 und 16:00 Uhr Manchmal auch schon um 12:00&lt;br /&gt;
&lt;br /&gt;
=== Kommentare ===&lt;br /&gt;
&lt;br /&gt;
* Putenschnitzel-Brötchen sollen gut sein...&lt;br /&gt;
* Er ist auch gelegentlich im TEL.&lt;br /&gt;
* Auch im EB wurde er schon gesehen!&lt;br /&gt;
* Auch im Tresor (Ja, der Club) wurde er schon gesehen!!1&lt;br /&gt;
&lt;br /&gt;
[[Kategorie: Fakultäts-ABC]]&lt;/div&gt;</summary>
		<author><name>DStulle</name></author>
	</entry>
	<entry>
		<id>wiki.stageing.freitagsrunde.org//index.php?title=Br%C3%B6tchenmann&amp;diff=11492</id>
		<title>Brötchenmann</title>
		<link rel="alternate" type="text/html" href="wiki.stageing.freitagsrunde.org//index.php?title=Br%C3%B6tchenmann&amp;diff=11492"/>
		<updated>2009-02-06T14:04:53Z</updated>

		<summary type="html">&lt;p&gt;DStulle: /* Preise */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Im Fanklingebäude und eventuell auch anderswo zieht ein Mann seine Runden um dort Anwesenden leckere Brötchen zu verkaufen.&lt;br /&gt;
&lt;br /&gt;
=== Angebot ===&lt;br /&gt;
&lt;br /&gt;
Es gibt diverse Arten von Brötchen: helle, dunkle, Sesam-, Körner-, Käse-, Laugenbrötchen und vieles mehr&lt;br /&gt;
&lt;br /&gt;
Belegt sind die Brötchen mit Salami, Schinken, Käse, Ei, Schnitzel, Cordon Bleu und ähnlichem. Ergänzt durch frische Gurken, saftige Tomaten und knackigem Salat. Abgerundet wird das ganze mit leckeren Soßen.&lt;br /&gt;
&lt;br /&gt;
=== Preise ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Item   !! Preis&lt;br /&gt;
|-&lt;br /&gt;
| Große Brötchen || 2,00 €&lt;br /&gt;
|-&lt;br /&gt;
| Normale Brötchen || 1,00 €&lt;br /&gt;
|-&lt;br /&gt;
| Gemischter Salat mit&lt;br /&gt;
|-&lt;br /&gt;
| ...Ei || 1,50 €&lt;br /&gt;
|-&lt;br /&gt;
| ...Mozaralla und Pesto || 1,50 €&lt;br /&gt;
|-&lt;br /&gt;
| Milchreis mit Apfelmus || 1,50 €&lt;br /&gt;
|-&lt;br /&gt;
| Nudelsalat || 1,50 €&lt;br /&gt;
|-&lt;br /&gt;
| Obstsalat || 2,00 €&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Zeiten ===&lt;br /&gt;
&lt;br /&gt;
FR: Üblicherweise Montags bis Freitags zwischen 14:00 und 16:00 Uhr Manchmal auch schon um 12:00&lt;br /&gt;
&lt;br /&gt;
=== Kommentare ===&lt;br /&gt;
&lt;br /&gt;
* Putenschnitzel-Brötchen sollen gut sein...&lt;br /&gt;
* Er ist auch gelegentlich im TEL.&lt;br /&gt;
* Auch im EB wurde er schon gesehen!&lt;br /&gt;
* Auch im Tresor (Ja, der Club) wurde er schon gesehen!!1&lt;br /&gt;
&lt;br /&gt;
[[Kategorie: Fakultäts-ABC]]&lt;/div&gt;</summary>
		<author><name>DStulle</name></author>
	</entry>
	<entry>
		<id>wiki.stageing.freitagsrunde.org//index.php?title=Br%C3%B6tchenmann&amp;diff=11490</id>
		<title>Brötchenmann</title>
		<link rel="alternate" type="text/html" href="wiki.stageing.freitagsrunde.org//index.php?title=Br%C3%B6tchenmann&amp;diff=11490"/>
		<updated>2009-02-05T11:15:48Z</updated>

		<summary type="html">&lt;p&gt;DStulle: /* Preise */ Tabbelle erzeugt.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Im Fanklingebäude und eventuell auch anderswo zieht Mann seine Runden um dort Anwesenden leckere Brötchen zu verkaufen.&lt;br /&gt;
&lt;br /&gt;
=== Angebot ===&lt;br /&gt;
&lt;br /&gt;
Es gibt diverse Arten von Brötchen: helle, dunkle, Sesam-, Körner-, Käse-, Laugenbrötchen und vieles mehr&lt;br /&gt;
&lt;br /&gt;
Belegt sind die Brötchen mit Salami, Schinken, Käse, Ei, Schnitzel, Cordon Bleu und ähnlichem. Ergänzt durch frische Gurken, saftige Tomaten und knackigem Salat. Abgerundet wird das ganze mit leckeren Soßen.&lt;br /&gt;
&lt;br /&gt;
=== Preise ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Item   !! Preis&lt;br /&gt;
|-&lt;br /&gt;
| Große Brötchen || 2,00 €&lt;br /&gt;
|-&lt;br /&gt;
| Normale Brötchen || 1,00 €&lt;br /&gt;
|-&lt;br /&gt;
| Gemischter Salat mit Ei || 1,50 €&lt;br /&gt;
|-&lt;br /&gt;
| Milchreis mit Apfelmus || 1,50 €&lt;br /&gt;
|-&lt;br /&gt;
| Nudelsalat || 1,50 €&lt;br /&gt;
|-&lt;br /&gt;
| Obstsalat || 2,00 €&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Zeiten ===&lt;br /&gt;
&lt;br /&gt;
FR: Üblicherweise Montags bis Freitags zwischen 14:00 und 16:00 Uhr Manchmal auch schon um 12:00&lt;br /&gt;
&lt;br /&gt;
=== Kommentare ===&lt;br /&gt;
&lt;br /&gt;
* Putenschnitzel-Brötchen sollen gut sein...&lt;br /&gt;
* Er ist auch gelegentlich im TEL.&lt;br /&gt;
* Auch im EB wurde er schon gesehen!&lt;br /&gt;
* Auch im Tresor (Ja, der Club) wurde er schon gesehen!!1&lt;br /&gt;
&lt;br /&gt;
[[Kategorie: Fakultäts-ABC]]&lt;/div&gt;</summary>
		<author><name>DStulle</name></author>
	</entry>
	<entry>
		<id>wiki.stageing.freitagsrunde.org//index.php?title=Br%C3%B6tchenmann&amp;diff=11489</id>
		<title>Brötchenmann</title>
		<link rel="alternate" type="text/html" href="wiki.stageing.freitagsrunde.org//index.php?title=Br%C3%B6tchenmann&amp;diff=11489"/>
		<updated>2009-02-05T11:07:15Z</updated>

		<summary type="html">&lt;p&gt;DStulle: /* Zeiten */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Im Fanklingebäude und eventuell auch anderswo zieht Mann seine Runden um dort Anwesenden leckere Brötchen zu verkaufen.&lt;br /&gt;
&lt;br /&gt;
=== Angebot ===&lt;br /&gt;
&lt;br /&gt;
Es gibt diverse Arten von Brötchen: helle, dunkle, Sesam-, Körner-, Käse-, Laugenbrötchen und vieles mehr&lt;br /&gt;
&lt;br /&gt;
Belegt sind die Brötchen mit Salami, Schinken, Käse, Ei, Schnitzel, Cordon Bleu und ähnlichem. Ergänzt durch frische Gurken, saftige Tomaten und knackigem Salat. Abgerundet wird das ganze mit leckeren Soßen.&lt;br /&gt;
&lt;br /&gt;
=== Preise ===&lt;br /&gt;
&lt;br /&gt;
* Große Brötchen 2 €&lt;br /&gt;
* Normale Brötchen 1 €&lt;br /&gt;
* Gemischter Salat mit Ei 1,50 €&lt;br /&gt;
* Milchreis mit Apfelmus 1,50 €&lt;br /&gt;
* Nudelsalat &lt;br /&gt;
* Obstsalat 2 €&lt;br /&gt;
&lt;br /&gt;
=== Zeiten ===&lt;br /&gt;
&lt;br /&gt;
FR: Üblicherweise Montags bis Freitags zwischen 14:00 und 16:00 Uhr Manchmal auch schon um 12:00&lt;br /&gt;
&lt;br /&gt;
=== Kommentare ===&lt;br /&gt;
&lt;br /&gt;
* Putenschnitzel-Brötchen sollen gut sein...&lt;br /&gt;
* Er ist auch gelegentlich im TEL.&lt;br /&gt;
* Auch im EB wurde er schon gesehen!&lt;br /&gt;
* Auch im Tresor (Ja, der Club) wurde er schon gesehen!!1&lt;br /&gt;
&lt;br /&gt;
[[Kategorie: Fakultäts-ABC]]&lt;/div&gt;</summary>
		<author><name>DStulle</name></author>
	</entry>
	<entry>
		<id>wiki.stageing.freitagsrunde.org//index.php?title=Br%C3%B6tchenmann&amp;diff=11486</id>
		<title>Brötchenmann</title>
		<link rel="alternate" type="text/html" href="wiki.stageing.freitagsrunde.org//index.php?title=Br%C3%B6tchenmann&amp;diff=11486"/>
		<updated>2009-02-03T14:05:02Z</updated>

		<summary type="html">&lt;p&gt;DStulle: /* Angebot */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Im Fanklingebäude und eventuell auch anderswo zieht Mann seine Runden um dort Anwesenden leckere Brötchen zu verkaufen.&lt;br /&gt;
&lt;br /&gt;
=== Angebot ===&lt;br /&gt;
&lt;br /&gt;
Es gibt diverse Arten von Brötchen: helle, dunkle, Sesam-, Körner-, Käse-, Laugenbrötchen und vieles mehr&lt;br /&gt;
&lt;br /&gt;
Belegt sind die Brötchen mit Salami, Schinken, Käse, Ei, Schnitzel und ähnlichem. Ergänzt durch frische Gurken, saftige Tomaten und knackigem Salat. Abgerundet wird das ganze mit leckeren Soßen.&lt;br /&gt;
&lt;br /&gt;
=== Preise ===&lt;br /&gt;
&lt;br /&gt;
* Große Brötchen 2 €&lt;br /&gt;
* Normale Brötchen 1 €&lt;br /&gt;
* Gemischter Salat mit Ei 1,50 €&lt;br /&gt;
* Milchreis mit Apfelmus 1,50 €&lt;br /&gt;
* Nudelsalat &lt;br /&gt;
* Obstsalat 2 €&lt;br /&gt;
&lt;br /&gt;
=== Zeiten ===&lt;br /&gt;
&lt;br /&gt;
FR: Üblicherweise Montags bis Freitags zwischen 14:00 und 16:00 Uhr&lt;br /&gt;
&lt;br /&gt;
=== Kommentare ===&lt;br /&gt;
&lt;br /&gt;
* Putenschnitzel-Brötchen sollen gut sein...&lt;br /&gt;
* Er ist auch gelegentlich im TEL.&lt;br /&gt;
* Auch im EB wurde er schon gesehen!&lt;br /&gt;
&lt;br /&gt;
[[Kategorie: Fakultäts-ABC]]&lt;/div&gt;</summary>
		<author><name>DStulle</name></author>
	</entry>
	<entry>
		<id>wiki.stageing.freitagsrunde.org//index.php?title=Br%C3%B6tchenmann&amp;diff=11485</id>
		<title>Brötchenmann</title>
		<link rel="alternate" type="text/html" href="wiki.stageing.freitagsrunde.org//index.php?title=Br%C3%B6tchenmann&amp;diff=11485"/>
		<updated>2009-02-03T14:03:31Z</updated>

		<summary type="html">&lt;p&gt;DStulle: /* Preise */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Im Fanklingebäude und eventuell auch anderswo zieht Mann seine Runden um dort Anwesenden leckere Brötchen zu verkaufen.&lt;br /&gt;
&lt;br /&gt;
=== Angebot ===&lt;br /&gt;
&lt;br /&gt;
Es gibt diverse Arten von Brötchen: helle, dunkle, Körner-, Käse-, Laugenbrötchen und vieles mehr&lt;br /&gt;
&lt;br /&gt;
Belegt sind die Brötchen mit Salami, Schinken, Käse, Ei, Schnitzel und ähnlichem. Ergänzt durch frische Gurken, saftige Tomaten und knackigem Salat. Abgerundet wird das ganze mit leckeren Soßen.&lt;br /&gt;
&lt;br /&gt;
=== Preise ===&lt;br /&gt;
&lt;br /&gt;
* Große Brötchen 2 €&lt;br /&gt;
* Normale Brötchen 1 €&lt;br /&gt;
* Gemischter Salat mit Ei 1,50 €&lt;br /&gt;
* Milchreis mit Apfelmus 1,50 €&lt;br /&gt;
* Nudelsalat &lt;br /&gt;
* Obstsalat 2 €&lt;br /&gt;
&lt;br /&gt;
=== Zeiten ===&lt;br /&gt;
&lt;br /&gt;
FR: Üblicherweise Montags bis Freitags zwischen 14:00 und 16:00 Uhr&lt;br /&gt;
&lt;br /&gt;
=== Kommentare ===&lt;br /&gt;
&lt;br /&gt;
* Putenschnitzel-Brötchen sollen gut sein...&lt;br /&gt;
* Er ist auch gelegentlich im TEL.&lt;br /&gt;
* Auch im EB wurde er schon gesehen!&lt;br /&gt;
&lt;br /&gt;
[[Kategorie: Fakultäts-ABC]]&lt;/div&gt;</summary>
		<author><name>DStulle</name></author>
	</entry>
	<entry>
		<id>wiki.stageing.freitagsrunde.org//index.php?title=Br%C3%B6tchenmann&amp;diff=11481</id>
		<title>Brötchenmann</title>
		<link rel="alternate" type="text/html" href="wiki.stageing.freitagsrunde.org//index.php?title=Br%C3%B6tchenmann&amp;diff=11481"/>
		<updated>2009-01-30T12:34:11Z</updated>

		<summary type="html">&lt;p&gt;DStulle: /* Angebot */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Im Fanklingebäude und eventuell auch anderswo zieht Mann seine Runden um dort Anwesenden leckere Brötchen zu verkaufen.&lt;br /&gt;
&lt;br /&gt;
=== Angebot ===&lt;br /&gt;
&lt;br /&gt;
Es gibt diverse Arten von Brötchen: helle, dunkle, Körner-, Käse-, Laugenbrötchen und vieles mehr&lt;br /&gt;
&lt;br /&gt;
Belegt sind die Brötchen mit Salami, Schinken, Käse, Ei, Schnitzel und ähnlichem. Ergänzt durch frische Gurken, saftige Tomaten und knackigem Salat. Abgerundet wird das ganze mit leckeren Soßen.&lt;br /&gt;
&lt;br /&gt;
=== Preise ===&lt;br /&gt;
&lt;br /&gt;
* Große Brötchen 2 €&lt;br /&gt;
* Normale Brötchen 1 €&lt;br /&gt;
* Gemischter Salat mit Ei 1,5 €&lt;br /&gt;
* Nudelsalat &lt;br /&gt;
* Obstsalat 2 €&lt;br /&gt;
&lt;br /&gt;
=== Zeiten ===&lt;br /&gt;
&lt;br /&gt;
Üblicherweise Montags bis Freitags zwischen 14:00 und 16:00 Uhr&lt;br /&gt;
&lt;br /&gt;
=== Kommentare ===&lt;br /&gt;
&lt;br /&gt;
* Putenschnitzel-Brötchen sollen gut sein...&lt;br /&gt;
&lt;br /&gt;
[[Kategorie: Fakultäts-ABC]]&lt;/div&gt;</summary>
		<author><name>DStulle</name></author>
	</entry>
	<entry>
		<id>wiki.stageing.freitagsrunde.org//index.php?title=Br%C3%B6tchenmann&amp;diff=11480</id>
		<title>Brötchenmann</title>
		<link rel="alternate" type="text/html" href="wiki.stageing.freitagsrunde.org//index.php?title=Br%C3%B6tchenmann&amp;diff=11480"/>
		<updated>2009-01-30T12:33:28Z</updated>

		<summary type="html">&lt;p&gt;DStulle: /* Preise */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Im Fanklingebäude und eventuell auch anderswo zieht Mann seine Runden um dort Anwesenden leckere Brötchen zu verkaufen.&lt;br /&gt;
&lt;br /&gt;
=== Angebot ===&lt;br /&gt;
&lt;br /&gt;
Es gibt diverse Arten von Brötchen: helle, dunkle, Körner-, Käse-, Laugenbrötchen und vieles mehr&lt;br /&gt;
&lt;br /&gt;
Belegt sind die Brötchen mit Wurst, Käse, Ei, Schnitzel und ähnlichem. Ergänzt durch frische Gurken, saftige Tomaten und knackigem Salat. Abgerundet wird das ganze mit leckeren Soßen.&lt;br /&gt;
&lt;br /&gt;
=== Preise ===&lt;br /&gt;
&lt;br /&gt;
* Große Brötchen 2 €&lt;br /&gt;
* Normale Brötchen 1 €&lt;br /&gt;
* Gemischter Salat mit Ei 1,5 €&lt;br /&gt;
* Nudelsalat &lt;br /&gt;
* Obstsalat 2 €&lt;br /&gt;
&lt;br /&gt;
=== Zeiten ===&lt;br /&gt;
&lt;br /&gt;
Üblicherweise Montags bis Freitags zwischen 14:00 und 16:00 Uhr&lt;br /&gt;
&lt;br /&gt;
=== Kommentare ===&lt;br /&gt;
&lt;br /&gt;
* Putenschnitzel-Brötchen sollen gut sein...&lt;br /&gt;
&lt;br /&gt;
[[Kategorie: Fakultäts-ABC]]&lt;/div&gt;</summary>
		<author><name>DStulle</name></author>
	</entry>
</feed>