Zum Inhalt springen
L

Das Video kommt von YouTube: erst beim Abspielen verbindet sich die Seite mit YouTube (Google).

Grundlagen der Informatik, Professor Froitzheim, Vorlesung 02, Teil I, 16.10.2012

TUBergakademie1:29:40 12.247 Aufrufe veröffentlicht Auf YouTube

Das Wichtigste aus dem Video

Tipp auf eine Zeit – das Video springt genau dorthin.

Transkriptautomatisch erstellt · 465 Zeilen
Herunterladen
  1. elas Weger zum zum zum Geburtstag geschenkt hat vor ein paar Jahren es war eine Runde und mit der will ich Ihnen heute auch
  2. noch ein bisschen was anderes zeigen mit der Kamera vom iPad dann auch noch so dass all sehen also das Ding und
  3. auf ein Papier da können wir alle schon addieren ich habe dann gesagt so in der in der Informatiker Manier jetzt reduzieren wir mal das
  4. subtrahieren auf das komplim Bilden einfach aus ein positiven Zahl eine negative Zahl also ist das B das wir vom a abziehen wollen machen wir ein
  5. negatives B und addieren das ist ja rechenregel die wir schon alle auch kennen und nachdem wir addieren können nachdem wir Komplimente bilden können
  6. ich gehe mal wieder hier bisschen ins Bild ähm nachdem wir Komplimente bilden können können wir auch subtrahieren das ist ja schon
  7. malwie ein ein Erfolgserlebnis das Erfolgserlebnis ist mal Informatik ist eben oft ähm was schwieriges auf was einfaches was wir
  8. können zurückzuführen die Computer machen eben auch das wer wir dann später in der
  9. Rechnerarchitektur sehen wesentlichen einfache Operation die wir dann als Programmierer als GZ rthmen Designer zusammensetzen müssen damit es
  10. komplexere Operationen werden so als nächstes müssen wir über die Multiplikation sprechen das ist wieder so eine Aufgabe wir können
  11. addieren jetzt mssen wir gucken dass wir das multiplizieren aufs adieren zurückführen und der erste und einfachste Algorithmus ist wir nehmen
  12. den multiplikanten als die eine von den beiden Zahlen multiplizieren wollen und addieren die auf irgend so
  13. einen einen Speicherplatz den wir haben auf Register so lange drauf bis wir die Addition Multiplikator häufig Mal durchgeführt haben und jetzt
  14. schreib ich Z ich das hier mal in in der Programmiersprache schreib eine Pseudos Schreibweise
  15. aufgeschrieben also wir wir haben hier so eine so einen Platz wo wir uns das Ergebnis aufbewahren am Anfang müssen
  16. wir diesen Platz natürlich auf auf Null setzen und dann addieren wir den multiplikanten einmal da rein
  17. danach zählen wir den Multiplikator um eins herunter und wir haben ja einmal reinadiert und falls der Multiplikator noch größer als Null ist dann machen wir
  18. weiter mit Schritt 2 zählen die multiplikanten wieder einmal dazu jetzt haben wir in unserem kleinen kopfbeispiel schon zweimal
  19. addiert mit Z multipliziert und dann z wir die Multiplikator wieder runter wenn er zwei war ist jetzt Null wir können Feierabend machen wenn er größer als
  20. Null ist müssen wir wieder bei zwei weitermachen und drittes Mal dazu addieren wenn ich das hier auf meiner auf meiner Maschine machen
  21. willch jetzt versue ich mal hier ah jetzt darf ich irgendjemand von ih bitten mal rauszukommen das Ding zu
  22. halten wer ich das hier zeige wer ist denn so freundlich und hilft mir Prim müssten das Ding halten und aus dafür sorgen dass der Stecker hier nicht
  23. rausrutscht ne denn der das macht er leider manchmal genauso so dagegenhalten
  24. sind mal gucken mus da sehen also ich hier ist dieses dieses Ziffernfeld hier da gebe ich meine Eingabe das ist noch ein bisschen alt jetzt stellt sich hier
  25. z.B 42 habe ich jetzt hier eingetippt die Tasten hier sind jetzt unten so und ich will mit 42 hier oben ist das Ergebnis
  26. ja die ergebniszeile Ergebnis Register und hier ist die Zeile in der man sieht wie oft ich dann addiert habe so jetzt will ich
  27. mit 42 oder 41 nehmen wir mal multiplizieren so drehe ich einmal jetzt kann man hier oben ein sehen und hier die
  28. 42 ja ein hier eine 42 okay so und jetzt kommt die Arbeit ne ich habe zweimal einmal addiert jetzt zweite Mal und ich schaue hier oben fleißig in das
  29. Display wenn ich jetzt mit 11 multiplizieren würde dann wäre ich schon fast fertig äh falsche Richtung glaube ich also noch mal Register löschen
  30. so ah jetzt habe ich große durcheinander gemacht mal Löschen wieder durcheinander will ich denn
  31. jetzt nee so ich glaub das ist besser so einmal zweimal dreimal viermal fünfm sechsmal
  32. jetzt habe ich 42 mit 6 multipliziert und man kann sogar das Ergebnis da oben angucken 252 schnelles Kopfrechnen ja könn
  33. schtim und wenn ich jetzt größere Zahlen habe dann muss ich hier fleißiger drehen und so weiter bis ich eben dann so
  34. er zeigt mir jetzt hier oben rot dass ich ein stellenüberlauf hatte beim Drehen eigentlich hatte ich gehofft dass er einfach in die nächsten Zeile üpringt
  35. habe ich mit 122 hat jetzt nicht so geklappt wie ich mir das
  36. dachte ich glaub ich habe mit ichiert vielleicht mit 18 oder so mit7 das hat nicht ganz geklappt stehe an dieser Maschine vielleicht habe
  37. ich was falsch eingestellt aber ich will gleich noch das multiplizieren mit dieser Maschine zeigen da muss ich noch ein Augenblick
  38. ausholen das hier ist der ja s primitiv multiplizieralgorithmus der uns natürlich bei größeren Zahlen viel zu viel Arbeit macht wir müssen
  39. viel zu lange da an der Maschine drehen deshalb gibt es da auch noch einen einen anderen Ansatz und der andere Ansatz den führe
  40. ich jetzt einfach hier mal so vor damit sie nicht ewig hier stehen müssen der beinhaltet eine jetzt eine zusätzliche Operation die wir an dieser
  41. Maschine ausführen können wir können nämlich hier diese Schlitten hier oben rüber befördern sehen Sie das hier ich kann ih rüber bewegen was ich also
  42. wirklich mache ist wenn ich jetzt hier einmal wir wollen jetzt mal mit sag wir mal mit 123 m en diese 42 da die sind immer noch hier eingestellt an der
  43. Tastatur und jetzt 123 habe ich gesagt einmal zweimal dreimal jetzt habe ich die Zahl mit 42 mit 3 multipliziert und da oben in unser Register eingesetzt
  44. jetzt drehe ich eins nach rechts wenn ich jetzt 42 addiere addiere ich das zu den den zehnerstellen
  45. dazu oder andersrum formuliert ich kann mir auch vorstellen dass ich den unteren Teil eins nach links geschoben habe ich würde jetzt also 420 dazu addieren wenn
  46. ich einmal drehe ich drehe zweimal WE mit 123 multiplizieren wollen jetzt zeigt das hier oben dass wir schon mit 23 multipliziert haben und das hier ist
  47. schon das Resultat jetzt drehen wir noch eins rüber jetzt würde ich die 40 schon in die 100ter stellen dazu addieren wir
  48. wollen mit 123 multiplizieren ich drehe also noch einmal und die 123 haben wir da die die 42 haben da noch mal hinein
  49. addiert allerdings jetzt eigentlich schon 4200 ne denn die Zahl 123 zerlegen dann müssen wir ja 100 x 42
  50. ins Ergebnis reinstecken und äh 2 x 20 und 3 x 42 so und das haben wir jetzt
  51. hier mit diesem mit dieser Operation des links und rechts Bewegens von diesem ähm Registern da oben erledigt innen
  52. drin laufen hier irgendwelche zahnreiler die andere Zahnräder nach vorne drehen ja jedes Mal wenn ich hier drehe jetzt haben wir
  53. äh mit 1123 haben wir jetzt schon multipliziert jedes Mal wenn ich hier eine zahnrinn drehe hier an diesem Hebel drehe hier
  54. rechts danke schön dann werden hier mit dem zahnradmechanismus da da zuu adert das adierwerk hier ist rein mechanisch das kann man schon so ein paar her Jahre
  55. lang diese paskalsche Rechenmaschine g schon diese Operation des hin und her Bewegens die nennt man auf äh Informatiker in Informatiker sprech
  56. das ist eigentlich ein englisches Wort shiften to shift aber das haben man in Deutschland schon auf auf shiften als shift h zum Werbung gemacht gell so
  57. jetzt danke ich Ihnen Vorlesung vielleicht braucht noch mal das W sehen so
  58. also hallo hallo Computer
  59. was jetzt fertig gebracht manchmal muss man doch
  60. kämpfen okay mit etwas Überredung das ist das da unten der das ist e nicht die Herleitung äh ich habe BL jetzt hier aus aus vorführtechnischen
  61. Gründen die die Vorführung vorgezogen die Herleitung von dessen was wir machen ist dass wir in diesen
  62. Stellenwertsystem jetzt stellt es sich wieder als praktisch heraus die stellenwertsysteme mit der Basis multiplizieren können
  63. Zahl mit der Basis vom Stellenwertsystem ze Dezimalsystem Z inystem multiplizieren können indem wir das
  64. Schiften Schiften das habe ich ja eben hier auf dieser Maschine mit diesem Hebel gemacht man kann übrigens auch hier mechanisch Schiften
  65. so also Hand direk ohne dass man das shiften bedeutet ich verschieb das eine Zahl und eine Stelle nach links oder nach rechts wenn ich wie
  66. hier die Zahl nach links verschiebe also den Achter in die Zelle stecke den Vierer in die hier den zweier in die den ein die und hier hinten eine Null
  67. nachziehe mit dem Stellenwert mit Zeh in unserem Fall multipliziert genau wie wir das hier gemacht haben hier habe ich dann immer die
  68. Eingabe Stellenwert multipliziert indem ich den den Schlitten da oben die Register ein nach rechts
  69. geschoben und das führt uns zu der Multiplikation die sie wahscheinlich alle schon in der Schule kennengelernt haben wir haben da so ein Zähler i nenne
  70. ich den mal den setz mal auf eins und dann nehmen wir den multiplikanten mal die Stelle des Multiplikators also hier unten im
  71. Beispiel ich habe jetzt einfach gemacht wir wollen 1200 und 12 1214 mit 211 multiplizieren der Strich ist hier an der falschen Stelle
  72. wie sie schon sehen dann nehme ich also einmal 1214 schreib die hier hin aderen von multiplikant mal der Stelle des Multiplikator
  73. dann verschiebe ich den multiplikanten um ein nach links dann ist er nicht mehr 1214 sondern 12140 und dann schaue ich mir die die
  74. zweite Stelle an das i habe ich hier gezählt und ich habe festgestellt dass i immer noch kleiner ist als die Anzahl stellen die der Multiplikator hat adere
  75. ich das dazu springe ich hier wieder hoch das i ist jetzt auch wieder eins hochgezäht steht jetzt schon
  76. auf dre dann nehme ich die dritte Stelle des Multiplikators die ist jetzt hier 2 multipliziere das geschiftete das jetzt schon
  77. 121400 ist mit Z das ist noch ein bisschen schwierige Operation wenn es auf dem Papier macht wenn dann eine 7 oder eine neun steht macht's einfach
  78. mehr Arbeit und dann adere ichem ich hier fertig bin ja das adere ich dazu dann steht hier unten Resultat diese z
  79. 256154 ich habe hier noch mal in meinem Ebook eine andere Rechenmaschine eine elektromechanische Rechenmaschine die auf demselben Prinzip funktioniert wie
  80. das mechanische Ding hier die sind ein meinem Büro die habe ich geschenkt gekriegt von meinem Vater als ich ich 14 oder so ähnlich
  81. Taschenrechner haben damals noch ein paar000 Mark gekostet 9000 oder so ähnlich das wollte sich nicht gönnen für seinen Sohn
  82. ähm und dann hat er mir diese Maschine hier äh überarbeiten lassen und und geschenkt von so ein dmaschinenmechanik die
  83. Mechanik in Ordnung bringen lassen ich war damals etwas enttäuscht ich hätte gerne lieber SAS elektronisches gehabt aber
  84. ähm heutzutage bin ich eigentlich ziemlich stolz auf dieses auf dieses mechanische Teil obwohl mir da die eine Taste irgendwann mal verloren gegangen
  85. ist beim beim Hausaufgaben machen so ist mit die zerbrochen nicht so besonders tragbar gewesen aber die wummert ganz vorzüglich
  86. W man mit arbeitet man kann hier in diesem eBook sich auch die einzelnen Register
  87. anschauen hier Pfeile dahin hier steht hier im Tastenfeld steht der multiplikant da oben der Multiplikator
  88. man muss nicht drehen sondern man kann hier auf die Tasten drücken weil das elektrisch ist das Ding äh man kann also eigentlich ein bisschen schneller
  89. arbeiten als nächstes möchte ich jetzt noch Ihnen zeigen dass diese diese Art wie wir hier wir Menschen das auf dem Papier machen dass
  90. die Computer sogar noch einfacher und noch bequemer zu erledigen geht wenn man binär rechnet aber davor noch einen kleinen
  91. Trick wir haben ja hier oben gesehen eine der Sachen die ein bisschen kompliziert waren zumindest so wie ich hier aufgeschrieben habe in diesem
  92. diesem Algorithmus hier mit den fünf Schritten dieses i hochzählen und dann die IT Stelle des Multiplikators rausfischen das braucht gar nicht so
  93. kompliziert können auch mit Trick das ist ein Trick den Multiplikator in jedem Schritt eine Stelle nach rechts schieben wenn wir
  94. eine Zahl Stelle nach rechts schieben dann fällt die hinterste Stelle weg die hinterste Stelle das ist die die wir gerade aufgebraucht haben wir schreiben
  95. also hier das verschieedbenes multiplikanten dem Stellenwert und statt dieser Geschichte mit dem i schreiben wir hierhin Multiplikator eins nach
  96. rechts schie und dann nehmen wir hier nicht die IT Stelle des Multiplikators sondern immer die hinterste noch ch übrig geblieben Stelle des
  97. Multiplikators im Schritt 2 die letzte Stelle verwenden und hier im Schritt 4 immer den Multiplikator den roten eins nach rechts schieben wenn wir das machen
  98. und im Binärsystem rechnen dann wird's ganz einfach habe ich jetzt hier oben hingeschrieben das links schieben ist
  99. die Multiplikation mit dem Stellenwert mit zwei nach links Schi und das zweite was noch einfacher wird ja wir wollen auch den in jedem Schritt
  100. den den Multiplikator also multiplikanten Schiften wir eins nach links und den Multiplikator schien wir eins nach rechts das sind zwei
  101. shiftoperationen und dann gucken wir die letzte Stelle an von unserem Multiplikator wenn da eine Null steht dann können wir Null addieren also
  102. gar nichts machen und wenn der ein steht dann müssen wir den multiplikanten zum Ergebnis dazu zählen n addieren da brauchen wir nicht
  103. ir Kopf zu multiplizieren zehersystem machen sondern wiren das einfach nur dazu oder auch nicht und das steht jetzt hier in diesem
  104. Verfahren und das Verfahren das ist schon recht flink und ziemlich einfach also ich erzähle jetzt mal hier ganz am Anfang setzen wir unser Ergebnis auf
  105. Null das entspricht hier meiner Operation meiner Löschoperation hier mit diesen beiden kleinen Hebeln mit die Register auf Null
  106. sit das ja i setze ich auch noch mal auf Null braucht eigentlich gar nicht überflüssig D Code sozusagen und hier das A da stecke ich den
  107. multiplikanten hinein und B den Multiplikator ich will es jetzt einfach ein bisschen kompakter schreiben jedes Mal Multiplikator Multiplikator
  108. schreiben also falls die letzte Stelle von B 1 ist zähle ich das a zum Ergebnis dazu also Bilde Ergebnis + A und
  109. schreibt es wieder ins Ergebnis hinein und dann schiebe ich das a eins nach links das B eins nach rechts wenn ich das B1 nach rechts schiebe fällt die
  110. hinterste Stelle raus und jetzt steht dann die äh 2 1 Stelle schon ganz falls das B noch größer als ull ist
  111. dieser Test ist jetzt auch schön einfach mache ich mit zwei weiter und das probieren wir jetzt hier unten im Beispiel wir haben 12 x 5 ich habe jetzt
  112. hier in das A 12 reingeschrieben 8 + 4 + 0 + 0 und in das B da steht die fün drin ein keine zwei und
  113. VI jetzt schaue ich mir die hinterste Stelle von B an wir sind jetzt hier ersten Schritt mit dem reinschreiben hab wir erledigt schau ich mir die hinterste
  114. Stelle von B an das ist das hier falls die letzte Stelle von B1 ist dann adere ich das a zum Ergebnis dazu also Ergebnis Plus+ a gibt neues Ergebnis s
  115. aber noch nicht fertig danach schite ich das a eins nach links sehen hier wird eine Null nachgezogen und hier beim Schift nach
  116. rechts von B da wird von links eine Null nachgezogen Mal wird ja eine Stelle frei und kann man der Maschine sagen was sie D nachziehen soll wir ziehen hier Null
  117. nach von rechts und jetzt schauen wir die recheste Stelle von unseremon unser Multi impikator an und stellen fest die ist
  118. null und dann brauchen wir angenehmerweise gar nichts zu machen Null addieren ist besonders einfach das haben wir hier gemacht so
  119. jetzt machen wir drittens wieder ein Schift nach links und vitens wieder Schift nach rechts jetzt steht hier hinten die ein drin und hier haben wir
  120. schon 12 4 drin stehen jetzt addieren wir noch schauen die letzte Stelle an diese da die ein
  121. die ist wieder größer Null also addieren wir das hier was hier links steht noch mal zum Ergebnis dazu haben wir jetzt hier erledigt jetzt
  122. gucken wir mal jetzt machen wir dies beiden shifts Schift noch eins nach links Schiften eins nach rechts und jetzt sind wir hier unten bei F und
  123. testen das B und das ist jetzt nicht mehr echt größer als 0 das ist ist gleich 0 also wir hier fertig jetzt können wir noch das Ergebnis hier
  124. anschauen da sehen wir dann hier steht 32 16 + 12 das sind 60 das Ergebnis was ein nicht haben
  125. wollten gut gewonnen jetzt können wir addieren subtrahieren und multiplizieren was bleibt doch übrig
  126. das dividieren und da können wir wieder hierher zurückgehen zu meiner zu meiner Maschine
  127. m das habe ich jetzt nicht hier auf den Folien drauf sie haben selber wahrscheinlich schon mal in der Schule auf dem Papier gemacht und subtrahieren
  128. das dividieren geht im Wesentlichen so dass wir schauen immer wieder schauen äh wie häufig geht denn der Visor in den Dividenden hinein
  129. da könnten wir so wie beim primitiven Ansatz ähm vom dividieren äh vom multiplizieren hier mit drehen am Rad immer wieder abziehen also den
  130. Divisor vom Dividenden abziehen und gucken wie häufig der da reingeht bei 10 und 5 ist das noch relativ überschaubar geht eben
  131. zweimal rein wir können bevor die Zahl negativ wird von dem Dividenden einmal die fünf abziehen und dann noch mal die fünf
  132. abziehen wenn dividend 11 ist könen wir auch zweimal abziehen wenn er 15 ist können wir schon dreimal abziehen man kann aber auch
  133. wieder wie wir das mit dem Schiften gemacht haben die Zahl also ganz nach ganz nach rechts das hier schieben
  134. dann hier eine Zahl eingeben äh den Dividenden was ja hier oben in dem Register steht dann löschen wir hier
  135. wieder die Eingabe dann tippen wir hier den Divisor ein und jetzt hilft uns diese Maschine
  136. netterweise noch ein bisschen wir subtrahieren mit dem Rad dann den Divisor wieder vom Dividenden und die Maschine hört automatisch auf blockiert
  137. wenn da was negativ wird und dann drehen wir einmal zurück und dann ist nur ähm die ja der Divisor ganz links vom
  138. Dividenden abgezogen und dann muss man wieder hier zurückfahren dasselbe wieder machen also maximal ähm neun mal drehen und dann passiert wieder dieser
  139. äh das Negativ werden das mit der Maschine hier rückgängig machen und dann drehen wir wieder und wieder und wieder und dann
  140. haben wir maximal Stellen Anzahl mal da gedreht das ja dauert schon eine
  141. ganze Weile bis wir das erledigt haben ähnlich wie die Multiplikation eben aus vielen Additionen besteht es dauert also im Prinzip schon ein bisschen aber
  142. maimal äh ist logarithmisch häufig was wir da machen W ich jetzt hier gesagt habe
  143. logarithmisch häufig dann dann deutet das schon drauf hin dass wir irgendwann mal feststellen unsere Algorithmen
  144. betrachten müssen wie häufig denn da welche Schritte ausgeführt werden bis wir
  145. Ergebnis aber dann die bei der primitiven Division bei der primitiven addition den Schritt paar hundert paar Taus mal ausführen müssen ist das nicht
  146. so schön wie wenn wir es nur 10 20 30 Mal äh äh logarithmisch häufig ausführen men aber bei solchen Betrachtung der der Häufigkeit des Ausführens der
  147. Komplexität von algorithme da kommen wir dann später vorbei ich habe jetzt ganz ich glaub letzte Woche ganz am Anfang habe
  148. ich mal gesagt dass die Computer Rechner auf Deutsch aber auf Englisch heißt es auch rechnen compute ähm heutzutage eigentlich nur selten benutzt
  149. werden um wirklich zu rechnen heutzutage werden die viel mehr benutzt meen das unten drunter eine ganze Menge Rechnung stattfindet ähm das steht auf dem
  150. anderen Blatt aber die Daten die wir heutzutage verarbeiten na ja das sind wesentlichen andere Informationen Texte Bilder Ton und so
  151. weiter und um diese anderen in Anführungszeichen äh Daten zu repräsentieren brauchen wir natürlich auch irgendeine Form ich habe
  152. hier zum Thema Datentypen nur ganz wenige einfache äh Daten die ich repräsentieren möchte Objekte unserer Verarbeitung die
  153. ich irgendwie repräsentieren muss wir haben dann noch mal ein Kapitel Medien später in der Vorlesung ich nehme mal an das Dezember oder Anfang Januar
  154. stattfindet dieser Teil Teil Medien wo wir noch mal über datenrepräsentation von Bildern und von Audio und so weiter hier möchte ich zunächst mal einfach
  155. anfangen zum Thema Datentypen und zu verprechen wie man Buchstaben speichert
  156. Buchstaben das ist schon ein abstraktes Konzept was wir Menschen über über hunderte von Jahren gebildet haben wir repräsentieren unsere
  157. Sprache wir Menschen mit Symbolen das sind hängt auch von der Sprache ab
  158. Land unterschiedlich komplexe Symbole sie haben alle schon chinesischen Zeichen gehen da stecken in einem Symbol sowas wie Silben drin dafür haben die
  159. auch viele viele tausend Schriftzeichen diese Schriftzeichen alle zu lernen das ist ein bisschen umständlich die in der Schule
  160. beschäftigen die sich jahrelang mit lernen und ein gebildeter Mensch kann da so 8000 Zeichen und wenige gebildete Menschen können nur 1usend oder so
  161. ähnlich bezeichen für unsere Sprachen haben sich mal diese lateinischen Schriften
  162. herusgebildet bei denen s wir mal laute stimmt nicht ganz aber mal vereinfachen sag wir laute ähm als einzelne Zeichen
  163. dargestellt also da haben wir das A und das B und das und das C und das D und das Z und so weiter ähm wobei wir
  164. das die die Konsonanten gar nicht ohne ein Vokal richtig sprechen können in der Schule fängt man ja auch dann an mit das da als als B zu gustabieren nicht als B
  165. aber bei den B sttick natürlich auch in wirktigkeit schon Lokal ein bisschen drin also wir [Musik]
  166. repräsentieren sehr kleine Einheiten unserer Sprache mit einzelnen Zeichen die Buchstaben und ich habe hier
  167. ein paar hingeschrieben die Großbuchstaben und die
  168. Kleinbuchstaben damit wir das Schreiben können haben wir Menschen auch noch und darüber werden wir auch noch mal sprechen im anderen
  169. Kapitel in unserer Sprache na ja solche Symbole uns ausgedacht glüfen für diese für diese Buchstaben für die einzelnen Buchstaben
  170. aus denen unsere Worte zusammengesetzt sind wir brauchen W schreiben wollen neben den Buchstaben noch ein paar
  171. weitere solche Zeichen die wir aufs Papier bringen können ein Punkt ein Komma Ausrufezeichen Fragezeichen ja und
  172. da gibt's noch ein paar mehr plus minus mal und und und und wir gucken einfach mal Tastatur an was so alles sich draufreibt und dann brauchen wir noch
  173. die Ziffern von 0 bis 9 entsprechend unserem Zahlsystem Dezimalsystem dafür haben wir jetzt auch nicht diese
  174. Ziffern wenn wir andere Zahlsysteme h hten wir wahrscheinlich als 16 System mit dem wir tlich rechnen würden hätten wir wahrscheinlich für diese weiteren
  175. von 10 bis 15 auch noch andere Zeichen entwickelt die wir jetzt wir nicht entwickelt haben so jetzt haben wir diese diese
  176. Glyphen entwickelt und die Buchdrucker vor über 500 Jahren haben Methoden gefunden äh Gutenberg äh wie man W man diese Laute die wir haben mit
  177. einzelnen mechanischen Teilen repräsentiert die man dit Farbe anschmieren kann und und Papier drauf legen kann Papier drauf pressen kann und
  178. so weiter für unsere Computer wenn wir diese Zeichen elektronisch darstellen wollen bilden wir Sie zunächst mal auf Zahlen
  179. ab und diese Zahlen die repräsentieren wir dann wie hier gezeigt im Binärsystem
  180. wenn wir also das große a darstellen wollen nicht auf dem Papier sondern elektronisch hier innen hier innen drin im
  181. Speicher die näh darstellen wollen nehmen wir den Code von dem großen a das ist 65 hexadezimal 41 65 bilden diese Zahl auf auf eine
  182. Binärzahl ab 0 1000 001 8 Bit und speichern das hier drin ab in
  183. so Speicherplatz der der genügend groß ist für 8 Bit einbeit die 66 wird dann das große B und die 97 ist das kleine a und wir
  184. brauchen noch ein besonderes Zeichen das ist die Leertaste der Zwischenraum zwischen zwei Worten der Zwischenraum zwischen zwei Worten das blank
  185. dies unsichtbare Zeichen space blank genannt oder wie jetzt hier eben Zwischenraum der hat auch so einen so einen Code so ein asky Code und das ist
  186. 32 hexdezimal ist das 20 all diese sonderzeichnung natürlich auch irgendwelche Werte
  187. und hat das Add das ist glaube ich 64 MSS do mal nachgucken ich glaube mich zu erinnern dass es 64
  188. ist für den Rest haben wir auch irgendwche Codes und dafür gibt's Tabellen die aski Tabelle und so weiter wo man das nachschauen kann was wir noch
  189. nicht verarztet haben sind die esös und üs da wollen wir uns dann zum anderen Zeitpunkt mal um dieses Durcheinander kümmern
  190. nämlich nicht nur so dass wir die es zuarzten müssen sondern kommommen dann die Dänen und haben spezielle Buchstaben und die Schweden und die Franzosen und
  191. und so weiter und so weiter bis dann all diese speziellen Buchstaben zusammengesammelt sind kommen auch irgendwie so in Europa in der
  192. Größenordnung von 350 Stück oder so ählich wenn man diese unsichtbaren Zeichen die hier alle
  193. zusammenzählt es gibt noch ein weiter unsichtbare Zeichen die uns im Laufe der Vorlesung gerade beim Programmieren im wieder begegnet werden das sind die
  194. Steuerzeichen für die Schreibmaschine z.B ein zeilenvorlauf haben wollen wer von ihn hat schon mal Schreibmaschine benutzt es gibt doch noch welche ich
  195. glaube wenn ich in 10 Jahren diese Frage in der Vorlesung stelle dann wird sich gar kein Finger mehr heben s sie werden nur fragen was
  196. Schreibmaschine auf der Schreibmaschine wenn man die benutzt da gibt ja auch auch wenn man das Papier vorwärts bringen will in die nächste Zeile
  197. schreiben will auf der elektrischen gibt's dann eine spezielle Taste ne und dann passiert irgendwie höllisch viel ne der dieser Schlitten da zack geht rüber
  198. und das Rad diese Walze wird ein bisschen weiter gedreht na ja auf der alten mechanischen da gibt's
  199. dann einen mechanischen Hebel D bewegt man so Ratsch und dann tut sichas ähnliches das ist dieses CR carriage return carriage ist das Ding
  200. was da beim Schreiben sich bewegt und das Papier an den Typen vorbeizieht die man da benutzt mit so hier in unserem Zusammenhang bei den Datentypen brauchen
  201. wir also eine Speicherzelle mit sagen wir mal 8 Bit so wie es hier gemacht ist würden s wir auch noch ausreichen aber s ist
  202. keine schöne informati a bit und die nennen wir jetzt auch in Zukunft ein Bit diese und da können wir so ein Buchstaben
  203. reinstecken und damit wir eine Bezeichnung für diesen Sachverhalt Buchstaben haben nennen wir das character das Ding c h A r das
  204. werden wir dann beim Programmieren beim Varianten vereinbachen vielle brauch ich schreibbe
  205. jetzt mal hier so hin character dieses diese vier buchstabenkbination die sagt ich sag mal die Fuß unserem Computer das was wir jetzt diese
  206. Datentyp den wir jetzt haben wollen das soll einen Platz für ein Buchstaben bieten das soll ein Buchstaben sein und wir
  207. denken uns noch irgendein Namen aus steht hier in spitzen Klammern damit klar wird dass wir der Namen dass wir irgendwas einsetzen können spit weg und
  208. das Name weg dann setzen wir un ein fitzipz oder oder ein Buchstabe oder sonst was Namen die es ausdenken K im Speicher rosa sozusagen ist es dann
  209. denen acht wir bereit gelegt da können wir Buchstaben dran agen wenn wir mehrere Buchstaben hintereinander haben wollen
  210. Zeichenketten die sind auch einzeln aus Buchstaben zusammengesetzt hier habe ich z.B Zeichen Kelte Auto Bergakademie den Klaus
  211. Dieter ich schreib hin ich will Daten Datentyp vom aus charactern haben ich leer Namen und ich sage wie viel Buchstaben denn maximal in dieser
  212. Zeichenkette Platz haben soll deshalb mit eckigen Klammern hier n das n muss ich auch irgendwie ersetzen da muss ich dann eine 5 oder eine 7 oder
  213. eine 32 eintragen wenn ich da zwischen den eckigen Klammern 32 eintrage dann habe ich eine Zeichenkette
  214. definiert die Platz für maximal 32 Buchstaben bildet das maximal ist übrigens eine ein wichtiges zusatzwort
  215. hier das maximal bedeutet dass ich in dieser Zeichenkette die ich hier vereinbart habe 1 2 3 4 5 6
  216. 7 8 9 10 11 12 13 14 14 habe ich hier angefordert an Speicherzellen weit für mein für mein String aber die habe ich nicht immer
  217. voll nur der Klaus Dieter sind ja nur 12 stellen das Spank hier in der Mitte zählt auch dafür brauchen wir auch bisschen
  218. Platz sind n 12 Stellen aber das Ding ist eigentlich 14 lang brauchen also noch eine weitere Regel wie wir das bearbeiten wollen wie
  219. wir uns merken wollen wie viele Buchstaben denn in soer Zeichenkette aktuell drin
  220. stehen wir wollen sag ein vorzeichenorzeit es Ende der Zeichenkette markieren wollen die Länge von so einer Zeichenkette die Länge von
  221. dem String ist die Anzahl der Buchstaben die da drin stehen also die Länge von Auto wä also vier die Länge vom klausdeter ist
  222. 12 die Länge von der bergimier müss jetzt mal zählen das NZT unschst mal konzeptuell rein praktisch
  223. wenn wir uns merken herauskriegen wollen wie lang ist dieses Ding hier das was da drin steht wir wissen wir haben 14 14 Beit maximal 14 Zeichen aber wir wissen
  224. nicht wie viele aktuell drin stehen da brauchen wir noch eine weitere Vereinbarung und diese Vereinbarung die ist kann z.B sein dass hinter dem
  225. letzten Zeichen noch ein weiteres weiteres Feld benutzt wird und da steht dann eine endemarkierung die endemarkierung muss
  226. natürlich ein Zeichen sein das sonst nicht in der Sprache vorkommt und da fällt einem wenn das A65 ist und das hier 97 ist und das hier 32
  227. ist da fällt einem z.B die Null ein als letztes ja als Buchstabe benutzt wird in der Sprache einfach dafür sorgen dass Nuller
  228. nicht benutzt wird dann schreiben wir hier in dieses Feld das erste freie schreiben wir eine Nuller rein und in Zukunft wenn wir das Ding bearbeiten
  229. merkt wir uns wenn wir hier durchgehen unds K sehen größer als Null denken uns das dring ist noch nicht zu Ende gehen wir hier durch das R ist auch größer als
  230. n dring ist noch nicht zu Ende und erst hier wenn der Null kommt ist das dring zu Ende wir könnten übrigens auch noch was anderes machen wir könnten hier
  231. vorne dran noch uns ein weiteres Zeichen hinzudenken da schreiben wir eine Zahl rein und die Zahl das das Längenfeld steht die Länge hier was da drin steht
  232. das können wir uns auch überlegen ich habe jetzt hier für diese für diese Bemerkung wie lange es uns dring ganze Menge Zeit
  233. investiert und sie werden dann bei der stringverarbeitung selber wenn man das später wenn Sie es wenn Sie es benutzen müssen ähm feststellen dass es leider
  234. Arbeit macht und dass die Sache mit der Länge von dem String etwas ist was das was das Programmieren nicht einfach Macht kommen wir dann
  235. immer mal wieder vorbei ich habe hier so viel Zeit investiert wen man es einfach braucht kzu machen dass das hier nur der
  236. maximale Platz ist Zeichen und der aktuell benutzte Platz jetzt muss ich das irgendwie anders merken
  237. ja ja es gibt doch es gibt do andere Codierung das appstick ist sowas eine andere Abbildung eine andere also die Frage
  238. war warum muss das an 55 sein und die Antwort ist es muss zunächst mal nicht wir hätten auch bei
  239. eins anfangen können solche Codes kann man sich überlegen a ein und dass das das B 2 ist
  240. muss ja auch nicht das große sein kann das kleine a die ein sein und und das große a irgendwie noch eine größere Zahl dann vielleicht 33 oder sowas hätten wir
  241. machen können es es gibt ein paar systematische Überlegungen zu diesem Thema wenn man sich den den asky
  242. Code aufzeichnet so eine Tabelle macht so ein Zeichen
  243. 8 Bit sit hier aus ja ein Zeichen aus A8 einzelnen Bits wenn ich jetzt diesen vorderen Teil
  244. hier als zeilenwert betrachte also es kann 0 sein das kann ein sein das kann bis 15 sein schreiben wir das mal hier hin 0 1 2 3
  245. 4 und hier unten 15 5 und se ich noch hin schreiben so entschuldigung das ja doch das hier
  246. ist die Spalte unserer Tabelle die Zeile unserer Tabelle chuldigung das hier werden die spaltener 0 1 2 3 4
  247. 5 und jetzt kann man anf fangen hier einzutragen diese ganzen Steuerzeichen die wollen wir zusammenfassen in die ersten beiden
  248. Zeilen und dann kann man so geschickte Sachen machen wie falls das Zeichen hier oben dre Nuller hat und nur
  249. hier hinten irgendwas steht was ungleich Null ist dann ist das ein Steuerzeichen dass man eh nicht sehen kann am Papier mit dem
  250. der Drucker was spezielles machen muss und dann sagen wir hier in diesen beiden ze also das hier ist
  251. Steuerzeichen und das von mir genannte carage return das steht hier bei 13 sagen wir hier das sind die
  252. Sonderzeichen das hier und das hier sein die Ziffern und jetzt kommen hier
  253. Buchstaben zwar hier das große a und das große B 4 x 16 gibt 64 + 1 gibt 65 das ist das große a und dann haben wir hier das
  254. kleine a dieser Stelle das ist das große A + 32 so ist es mal konstruiert
  255. worden unter anderem ist es deshalb so konstruiert worden hallo geschlafen unter anderem ist es deshalb konstruiert worden damit man relativ
  256. einfach testen kann das hier das oberste hier obersten 4 Bit wen die Zahl sag da kommt kleiner als 32 ist wissen wir dass wir irgendwie was an der Elektromechanik
  257. vom Drucker machen müssen und wenn die größer als 32 ist dann sind es irgendwie diese ja
  258. entweder Ziffern 30 ist die 0 31 ist die 1 3 5 ist die Ziffer
  259. 5 das ist schon halbwegs systematisch konstruiert und das hat hier elektrische und elektromechanische Gründe gehabt früer mal um Drucker zu
  260. bauen in denen muss man solche Zeichen schicken ähm die IBM hat für ihre Großrechner früher so diesen diesen anderen
  261. Zeichensatz benutzt diesen appstick Zeichensatz bei dem die Abbildung ein bisschen anders ist es hat sich so eingebürgert und
  262. wir halten deshalb noch dran fest es gibt Sonderfälle in denen man wirklich das a als eine einzus darstellt in PDF Dokumenten passiert
  263. SAS konz aktuell ist diese Abbildung natürlich völlig beliebig wir müssen uns bloß wenn wir jemanden Text geben müssen wir ihm sagen wir benutzen als
  264. abbildungsregel für unsere Buchstaben den ask Code oder den mein kleiner neuer toller Code Code den ich die natürlich geben
  265. muss das Stichwort Unicode kommt hier auch noch auch noch hinein wir hier dran halten wir als aus historischen
  266. Gründen zur Kompatibilität aber eigentlich wollen wir die Zeichen die wir die wir speichern können heutzutage sowieso nicht mehr in 8 Bit aufheben die
  267. Buchstaben sondern in 16 Bit damit man äh mit chinesischen und japanischen Zeichen und suahili und Sanskrit und das es gibt auch noch
  268. klarkt und das sind dann die abbildungsvorschriften noch viel komplizierter ähm na ja wenn man wenn man 32 000 oder
  269. Zeichen hat dann braucht man es halt kompliziert jetzt haben wir aber also wir haben jetzt zusammengesammelt
  270. Zahl floating point Zahl also kompliziert Zahl integer dann diese floats dann haben wir Buchstaben dann haben wir Zeichenketten und jetzt suchen
  271. wir uns noch für mal Spezialfälle noch weitere Datentypen manchmal wollen wir nur eine ja Nein
  272. Entscheidung repräsentieren können in der Datenbank von dem von dem Versandhändler wollen wir vielleicht aufheben können
  273. hat schon mal hier gekauft oder hat noch nicht gekauft ja nein hat er schon mal hier gekauft Antwort Ja oder Nein das nennt man ein buchen Datentypen ja ob
  274. den George wll zu Ehren nennt man es ein bullischen Datentypen und der kann zwei Werte haben true und false das könnte man theoretisch sogar in einem einzigen
  275. bit speichern und wenn wir jetzt schon mal bei so ja abstrakteren Typen sind W das
  276. Vorstellen immer schwieriger wird dann machen wir noch was weiteres da suchen wir uns aufzählungstypen selbstdefinierte aufzählungstypen heraus
  277. viele Sachverhalte kann man mit der Aufzählung von von Werten für eine gewisse Eigenschaft gut beschreiben z.B
  278. Farbe bei Farbe könnten wir ja nehmen wir mal an wir wir liefern Autos mit 17 verschiedenen fftpöen dann könnten wir die Datenbank
  279. zu in der die Farbtöne für unsere Fahrzeuge drin stehen die wir ausliefern da könnt man dann Feld nehmen in dem nur 17 unterschiedliche Werte ST können rot
  280. grün blau lila beige blassblau blassgrün schwarz gold silber na und noch ein paar andere um auf 17 zu kommen oder wir könnten
  281. den die Marke von in Klammer deutschen in diesen Fall Auto in aufzählungstypen reinstecken der Aufzählungstyp kann dann den Wert
  282. Mercedes oder den Wert BMW oder den Wort wert VW oder den Wert Ford oder den Wert Opel oder den Wert Audi oder den Wert
  283. Porsche kein ander wird so wie das hier vereinbart ist und die Vereinbarung für so aufzellungstypen die Bezeichner kann ich frei wählen die Vereinbarung für
  284. aufzellungstypen ist mit solchen klammern wir haben einen aufzellungstyp Enumeration und der kann die Wert rot haben die Wert grün haben und die Wert
  285. blau haben das klammere ich hier mitchweiften Klammern und hinten dran gebe ich den neuen Typ den ich gemacht habe noch ein Namen jetzt mal color
  286. könn jetzt nur drei Werte haben so wie ich das hier vereinbart habe intern wird das irgendwie auf Zahlen abgebildet das braucht uns gar nicht so sehr zu
  287. interessieren aber was wir hier gemacht haben ist die Abstraktion wir kümmern uns nicht mehr um beim Programmieren beim Eingeben beim
  288. Nachdenken um Zahl in der wir was codieren ein Sachverhalt codieren sondern wir schreiben hier den Sachverhalt hin
  289. und lassen uns die Programmiersprache die Maschine die soll uns dabei helfen dass wir uns um die Abbildung
  290. selber nicht mehr kümmern müssen sondern das für uns diese Abbildung durchgeführt wird und wir denken nur noch in diesen Einheiten wobi ich jetzt gerade
  291. nachdenke ist wenn ich in meiner Vorlesung hier diese Markennamen stehen hab äh werde ich dann und diese dieses Buch im bookstore drin iBook Store W ich
  292. jetzt da abgemalt wegen Copyrights von Namen oder so ähnlich na egal das lassen wir jetzt mal auf uns zukomen also
  293. aufzählungstypen die die helfen uns Eigenschaften die Objekte
  294. haben abstrakt darzustellen und die konkrete Darstellung die interessiert uns gar nicht
  295. mehr solche aufzählungstypen kann man übrigens auch vergleichen indem man dann so ein Ding nimmt hier eine Variable hier von variab vom Typ color nimmt und
  296. fragt ist es blau ist das Rot ist das Grün im Programm hier habe ich noch mal die zahlatentypen zusammengefasst
  297. ich habe ja drüber gesprochen wir haben gze Zahlen integers und wie wir die darstellen nun wir können sagen wir wollen maximal 16 Bit lange integers
  298. haben short geht also dann von -32768 bis plus 32767 anz short geht von 0 bis
  299. 65 535 ja 2 16-1
  300. integers in der Regel nennt man diese 16 Zahl schz integers das sind waren früher 16 heutzutage meist 32 Bit lang auch wieder
  301. von minus diesem Fall 2 hoch 31 bis plus 2 31-1 und die longs
  302. heutzutage meist 64 B und dann haben wir noch die Floats 32 Bit floats und 64 Bit floats wie schon gesprochen
  303. und so ein ein Double 64 Bit langes float das kann dann Zahlen von 2,22 x E hoch -308 bis
  304. 1,79 mal 10 hoch 308 darstellen also eigentlich ganz schöner Datenbereich jetzt was mal die einfachen Datentypen jetzt wollen wir es noch ein
  305. bisschen bisschen interessanter machen wir wollen Datentypen zusammensetzen also aus mehreren einfachen eine Einheit bilden und das
  306. erste was wir da machen bei diesen zusammengesetzten Datentypen mehrere elementare die elementaren sind wie von den beiden Seiten
  307. vorher mehrere elementare zusammensetzen zu komplexeren
  308. Daten da gibt's wieder zwei Fälle der eine Fall ist wir nehmen viele gleiche Datentypen viele gleiche elementare Datentypen viele integers
  309. viele floats oder viele Buchstaben und setzen die zusammen zu Vektoren einimensional viele integers oder viele
  310. floats 3 5 32 1000 so Vektor zusammensetzen hier habe ich mal ein Vektor mit dre Elementen oder zu Matrix
  311. zusammensetzen zweidimensional das ist eine 4 x 4 Matrix oder dreidimensional also
  312. drei Zeilen drei Spalten und dann noch räumlich drei hintereinander natürlich können wir auch das Ding nimensional
  313. haben also so ein FL allgemein hingeschrieben wir wollen als Basistyp die Floats haben also 32 Bit floating
  314. pointzahlen Basistyp floats wir nennen das was da rauskommt diese Matrix mal vielstufig in der ersten Stufe soll's nelemente haben in der zweiten Stufe
  315. m von diesen nelementen und dann so weiter bis der letzten Stufe K von diesen Elementen von diesen von diesem von
  316. diesem die Anzahl Zahlen die da drin steht die ist also n mal m mal mal K Vektoren haben wir hinter haben Sie wahrscheinlich ich auf
  317. jeden Fall in der analytischen Geometrie in der Schule benutzt war maatiker benutzen das fleißig aber natürlich auch Physiker und sonst was
  318. und Vektoren manipulieren solche Vektoren bzw vier elementeangee Vektoren und solche vierm vier Matritzen das machen nä
  319. Computerspiele die ganze Zeit die repräsentieren Objekte im dreidimensionalen Raum mit vierdimensionalen
  320. Vektoren und Operationen auf diesen auf diesen Vektoren sind eben multiplizieren mit einer Matrix und das irgendwohin abzubilden z.B dieses dreidimensionale
  321. Objekt die Spitze von dem Schwert von dem ähm äh von dem org ähm wird abgebildet auf einen auf einen Punkt auf Ihr
  322. Bildschirm und ja gerade Computergrafik da wird ständig mit mit solchen Matrizen und mit solchen Vektoren gearbeitet und Grafikkarten sind Maschinen die
  323. besonders gut solchen 3/4 dimensionalen Datentypen umgehen können die sind dafür optimiert also Vektoren und
  324. Matrizen um mathematische Sachverhalte auszudrücken oder Computergrafik zu machen die Zeichenketten das ist eigentlich ein Vektor von
  325. characters von Buchstaben das ich habe hier hingeschrieben geführter Sonderfall eine Sache ist wirklich
  326. besonders das ist die mit der Länge da drin unsere Vektoren hier und die Matrizen die betrachten wir immer als komplett angefüllt aufgefüllt da gibt's
  327. nicht sowas wie halb voll bei den Zeichenketten das hier waren zusammengesetzte Datentypen und wir
  328. hatten aus gleichen Grundelementen aus gleichen elementaren Datentypen die zusammengesetzt jetzt wollen wir diese Einschränkung das es gleiche sein müssen
  329. auch noch fallen lassen und wir setzen Datenobjekte zusammen aus unterschiedlichen
  330. elementar ich habe das versucht hier in dieser ung klar zu machen da haben wir z.B hier einen 64 Bit float hier haben wir einen String mit acht Buchstaben und
  331. na hier haben noch irgendwelche anderen hier haben wir vielleicht ein Integer und hier noch ein Datentyp also ganz
  332. unterschiedliche Datentypen die wir zusammensetzen wozu mögen wir sowas haben nun Objekte des des täglichen Lebens der
  333. Anschauung die haben ja ganz verschiedene Attribute nehmen wir uns einen Artikel der der bei
  334. dem Vers von dem Versandhändler verschickt wird oder die Artikel eines Versandhändlers da gibt's so einen Artikel der hat für den
  335. Versandhändler die Eigenschaften Beschreibung Name
  336. Artikelnummer Preis Anzahl auf dem Lager Einkaufspreis Verkaufspreis z.B auch Gewicht damit die Versandkosten
  337. berechnen kann äußere Maße Maße sind z.B ein Vektor Länge Breite Höhe und das ist ein zusammengesetztes Feld was S hier reinsteckt Länge Breite
  338. Höhe und das Gewicht ist noch ein extra Feld daraus kann die Versandkosten berechnen die Bezeichnung die SK Nummer hier drin und so weiter und so weiter
  339. der Versandhändler der möchte in seiner Datenverarbeitung in seinem Computer den Datensatz die Beschreibung von so einem
  340. Artikel als ein Element alle Eigenschaften zusammengefasst als ein Element behandeln können und manchmal will er auch hineinschauen können in
  341. diesen Artikel z.B wenn gucken will ob er wenn sie wenn sie was bestellen wollen und sagen sie wollen drei von diesem Artikel haben
  342. da muss er gucken ob die drei noch in der Datenbank drin sind und danach muss er gucken was es dann zusammen kostet wenn sie auf den warnkop angucken wollen
  343. und wenn sie den Checkout machen dann muss er die Software nachgucken wie hoch die Versandkosten sein von diesen
  344. Artikel früher hat man sowas auf Papier aufgeschrieben oder auf mehreren Blättern und die dann in denen Aktenordner reingetan gehabt Aktenmappe
  345. reingetan und dieses Zusammenfassen von mehrer Eigenschaften zu einer Einheit das dazu sind datenstukturen da die nennt man auch na ja zusammengesetzte
  346. Daten äh die n auch gerne Records und Datenbanken drin gibt's auch sowas wie Records ne über Datenbanken da können wir dann noch im Januar sprechen
  347. ich habe hier jetzt mal äh na ja weil ich irgendein Beispiel gebraucht habe äh in der für die Vorlesung ähm Eisenbahnfahrzeuge
  348. äh genommen da haben wir die Struktur wagenbeschreibung und die besteht erstens mal aus dem String in dem bis zu
  349. 32 Zeichen vorkommen können diese endemarkierung braucht auch ein Zeichen eigentlich passen nur 31 rein also ein
  350. den Name den A und D beschreiben wir mit solchen Datentypen beschreiben wir
  351. jetzt Objekte die verarbeiten wollen Gegenstände eben bei Eisenbahn die Fahrzeuge die es da gibt
  352. äh in der Datenbank der Studenten der Universität stehen Ihre Stammdaten drin und so weiter also alles was wir an Objekten des des wichtigen Lebens aber
  353. vielleicht auch Konzepten die mehrere Eigenschaften haben alles was wir Computern darstellen wollen komplexeren
  354. Sachverhalten bekommt eine Datenstruktur und sie werden dann sehen dass beim modernen programmieren Datenstrukturen die die
  355. Grundlage der Abstraktion wenn wir im mal wieder vorbeikommen anfangen werden mit einfacheren Beispielen aber dann später
  356. ähm s alle unsere Programme so datenstrukturi und zwar solche komplexe so das
  357. war basiskapitel auch ein bisschen warm zu lauen was wir jetzt gemacht hatten äh in den vergangenen ja
  358. 90 plus 60 Minuten also und ich habe ihnen noch so eine Idee vom dividieren
  359. gegeben wenn man das macht dann betr nicht stellt sich auch raus dass die Computer ganz ganz selten nur dividieren dass man sich mal dividieren
  360. ist eine kostspielige Operation dass man guckt dass man das so gut es geht auf Division durch 2 oder sowas oder durch vier reduzieren kann und man versucht
  361. sich möglich viel um diese Division zu drücken und auch bei den Multiplikationen die braucht man auch wieder gar nicht so häufig außer für
  362. spezielle algorith so also wir haben ein wenig über rechnen gesprochen ein wenig mehr über Datenstrukturen
  363. gesprochen so viel gerade wie wir jetzt brauchen um um Programm schreiben zu können und das möchte ich jetzt dann mit
  364. Ihnen diese und nächste Woche noch fleißig betreiben vom Problem zum Programm ich hat schon mal den den Don knus genannt und the art of computer
  365. programming die Kunst man könnte auch sagen die Handwerkskunst ein kreativer Vorgang und das
  366. das wichtigste dabei ist dass wir das systematisch veranstalten verschiedene
  367. Schritte zerlegen wieder der Informatiker Gedanke ne in in Teilschritte zerlegen die einfacher
  368. sind dieser Vorgang zerlegenen Teilschritte da gibt's zunächst mal ich habe hier so eine Zeichnung von klassischen Vorgehen
  369. bei der äh beim beim Programmieren da müssen wir zunächst mal in in diesem Schritt hier eine Analyse durchführen eine Analyse
  370. des Problemes das bedeutet dass man irgendwie in den sich den Vorgang der zu erledigen ist die Aufgabe so wie sie jetzt zerlegt
  371. äh wie sie jetzt erledigt wird dass man sich das anschaut die klassische Vorgehensweise studiert und dann nachdem man das
  372. analysiert hat mal aufschreibt wie man das gedenkt zu lösen das ist bei einer bei einem kleinen kurzen Programm so eine Übungsprogramm ist das eine Sache
  373. von 5 Minuten wen man ein ja die wahren Wirtschaft von der Industriefirma ähm
  374. programmieren will dann dauert das Wochen und da muss man diese Firma herum laufen zuschauen wie die wie die Mitarbeiter
  375. davorgehen wie die das im lagerstapeln jetzt wie die das in Kisten verpacken und so weiter muss man lernen wie das bisher
  376. funktioniert falls es denn schon funktioniert wenn wir was Neues haben was modellieren wollen Modell rechnen wollen für wissenschaftlichen
  377. Sachverhalt D müssen wir uns auch erstmal hier in diesem Teil Analyse die ja das nötige Verständnis des Problemes
  378. verschaffen überlegen wie könnte man es denn machen welchen äh welches Modell ist geeignet was muss ich dafür rechnen um dieses Modell durchzurechnen und dann
  379. wollen wir das mal aufschreiben in der systemspezifikation in diesem sogenannten Wasserfallmodell es schon länger gibt
  380. für Software erstellen da wird dann in diesem Schritt mal ein Prototyp angefertigt Prototyp die Software zu bedienen ist
  381. das ist in der Regel relativ hilfreich dass man einfach nur so ein User Interface proty sieht man dann auf Bildschirm welche welche Menüs man hat d
  382. man anklicken kann und so weit damit kann man schon mal zum kundenen erstens freut es den Kunden dass ich was tut m der Kunde kann jetzt entweder die
  383. Industriefirma sein oder der der Professor oder der Abteilungsleiter für den man was machen muss und dann zeigt man den diesen User Interface Prototyp
  384. und in der Regel sagt er ah da brauche ich aber auch noch die Funktion und da brauche ich noch jene Funktion und die da ach könn nicht vorstellen z braucht h
  385. man den Knopf einfach wieder raus und hat gar nicht vielfür bearbeitet weiter KNF aber es ist ein Schritt indem man was lernt an diesem User Interface
  386. Prototypen und sie sehen hier diesen kleinen Pfeil da geht's auch teilweise pris herum das ist ein iterativer Prozess wenn man soweit ist dass man
  387. die systemspezifikation fertig hat und dies US Interface Prototypen fertig hat dann kann man sich überlegen welche Algorithmen braucht man
  388. denn das zu berechnen und die Algorithmen dann auch schon mal von diesen Komponenten die es dann da geben
  389. wird von diesen algorithmischen Komponenten Prototypen machen z.B ja den kernschritt des
  390. Modelles implementieren und gucken wie lange der eigentlich braucht um das auszurechnen um so eine Simulation auszurechnen in der Regel muss ja bei
  391. tion dann was paar Millionen mal durchgerechnet werden und dann schreiben wir mal den algorithmischen Kern und Rechnen den paar Millionen mal gucken ob
  392. das schnell genug geht und so weiter Prototyp von den Komponenten das muss noch nicht mal unbedingt in der richtigen
  393. Programmiersprache erfolgen wie wir das ganze lösen wollen das kan vielleicht auch matl machen in so Simulationsumgebung nur mal Gefühl zu
  394. kriegen ob der Algorithmus es wirklich tut und ob es auch innerhalb vernünftiger Zeit tut dass er das ist dann vielleicht noch zehn Mal so schnell
  395. W mus durch durch Tuning durch einifes herumschrauben in diesem gelben Schritt
  396. hier das ist das sch noch okay solange wir uns solange wir uns im Klaren sind dass wir es noch irgendwie schneller machen also hier sehen wir ob unser
  397. Ansatz funktionieren könnte und dann kommt der nächste Schritt der die Implementierung und der Komponententest kann man dann auch gerne
  398. parallel erledigen mit mehreren Mitarbeitern die an der Software arbeiten danach muss das Ganze zusammengefasst werden zu
  399. einem System und getestet werden auch hier gibt es wieder diese Schleife und hier bei diesem Integrationstest
  400. da muss man eventuell aber auch wieder zurück auch hier muss man eventuell wieder zurück sich ein anderen Algorithmus aussuchen und
  401. verändern diese Vorgehensweise die sollte systematisch sein die sollte planbar sein planbar auch Bezug auf die Ressourcen die hier dann eingesetzt
  402. werden müssen Geräte aber vor allem auch Mitarbeiter Ingenieure programmere die sollte reproduzierbar sein und und ja wenn man es macht sollten man sich
  403. aufschreiben was man da ma unsere kleinen Beispiele hier die wir die volesung machen das muss ja irgendwie ein zwei Stunden immer erledigt sein s
  404. wir noch was anderes vor als eine Übung für die Informatik zu machen äh da geht man in der Regel nicht so formal vor aber sobald man größeres
  405. Projekt hat muss man da schon formal vorgehen äh manche von ihnen werden dann auch die Vorlesung software engineering vom Kollegen Steinbach besuchen und
  406. spätestens da wird dann systematisch vorgegangen bei beim Softwareprojekt oder auch wenn sie da mal eine Bachelorarbeit oder Masterarbeit
  407. schreiben und viele von ihnen werden schon irgendwie wahrscheinlich fast alle im Rahmen von der Bachelorarbeit od der
  408. Masterarbeit ja irgendwas auf dem Computer rechnen simulieren und so weiter es gibt eine ganze Menge Werkzeuge die einem helfen beim Software
  409. entwickeln computered software engineering Case die die schöne Abkürzung schöne Akronym ist nichts was man wirklich auswendig lernen muss ich
  410. will es noch mal sagen da steht das ist ein Programm viele Programme die das leisten Computerprogramme die ein beim
  411. Programmieren helfen sollen da gibt's dann grafische Hilfsmittel den man z.B Beziehungen zwischen Datentypen visualisieren
  412. kann bei man Autos baut dann baut man die aus Komponenten zusammen hat man also objektarmaturenbrett was da reinkommt
  413. vier Objekte Räder die DR geschraubt werden ein Objekt mor ein objektgetriebe und solche Beziehung zwischen Objekten
  414. für manufacturing also für für Geräte herstellen oder auch Beziehungen zwischen Menschen die kann man ganz gut so
  415. grafisch visualisieren das werden wir am der vollesung gartenben betreiben auch mal machen so grafisch visualisieren die Beziehung in diesen computer
  416. software engineer Umgebung gibt's dann auch formale Spezifikationen für ja solche Abläufe denen man die Objekte die man da halt
  417. unterwirft und insbesondere ganz wichtig die Versionen der Software werden verwaltet die man die man erstellt also die die Version 1.0 1.1 1.1.3 und so
  418. weiter in solchen Projekten zu größeren Softwareprojekten gibt es auch Aufgaben Rollen die die Mitarbeiter haben da gibt's den Projektleiter aber
  419. da gibt's auch unten drunter dann Analytiker die sich insbesondere mit dieser ersten Phase der der Abstraktion beäftigen dann gibt's die Programmierer
  420. und dann gibt es das was ich hier noch verschnieden hatte da unten Betrieb Wartung testen und so weiter ähmt häufig auch noch Leute die
  421. unabhängig diese spezielle Rolle des Testens ausführen das sind die Überbringer der schlechten Nachricht das Ding stürzt die ganze Zeit ab ähm je
  422. mehr die quäeln desto besser wird das Produkt ähm bei bei der Mapping Software ähm von dem
  423. letzten iPhone vom iOS 6 haben die Tester offensichtlich nicht genügend geklingelt deshalb kamen dann diese komischen
  424. Bilder da raus die manche von ihen vielleicht im Internet gesehen haben die eine Brücke die da so komisch in in Südfrankreich ist äh die
  425. man da auf einem von den Bildern sehen konnte von der Mapping Applikation die hatte ich mirwie zwei Wochen vorher in Natura angeschaut und die sieht
  426. tatsächlich nicht so komisch aus der Karte ja die Tester die müssen unabhängig sein die sollen Fehler aufdecken indem Sie die Software mal
  427. benutzen ähm vor dem Kunden und [Musik] ich habe mal in so ein Industrieumgebung gearbeitet und da gab es also für diese
  428. ungefähr 30 Software engineure die gearbeitet haben in diesen Rollen hier gab's ich glaub vier oder fünf solche Tester und eigentlich schon relativ
  429. wenig und die waren trotzdem noch unangenehm genug äh weil sie ständig mit irgendwelchen Fehlern ankam oder mit was was sie als Fehler
  430. empfangen damit muss sich auseinandersetzen ich habe schon über so ein Phasenmodell gesprochen eben hier in dieser Grafik und hier habe ich noch mal
  431. verbal diese einzelnen Elemente von diesem Phasenmodell aufgeschrieben also Anforderungen aufzuschreiben
  432. strukturierenen sie immer wieder dieses dieses untersuchen strukturieren abstrahieren ähm in dieser dieser Vorgehensweise und das eigentliche ja
  433. kodieren programmieren sein das Generieren von der Datenbank das ist nur ein so ein Anstrich hier und steht dann wieder
  434. Test Verwendung hier oben steht noch technisches Design auch wieder ein abstrakter Vorgang der nicht unbedingt ähm ja programmieren nicht
  435. dabei ist also sie sehen beim beim bei der industriellen Software hererstellung dass die Phase des des analysierens und abstrahieren relativ lang ähm oder
  436. relativ intensiv im Verhältnis zu dem kodieren aber natürlich W man das hier auch gut können das hier solide
  437. Basis in den letzten Jahren hat eine gewisse sagen mal deformalisierung des Programmierens gegeben das Problem an dieser
  438. Phasenmodell Vorgehensweise ist dass man für ein mittelkomplexes Softwaresystem wenn man so
  439. vorgeht paar Jahre braucht und mit ein paar Jahren meine ich nicht paar z sondern eher par wie F einige und das ist häufig zu lang
  440. he Tage fast im zu deshalb habe ich hier noch diesen Kasten da stehen man hat in den na ja
  441. sagen wir letzten 10 Jahren Modelle entwickelt wie man in Kleingruppen weniger systematisch aber dennoch effizient und erfolgreich
  442. vorgehen kann an beim soft bei der Softwareentwicklung natürlich braucht immer noch eine anständige
  443. Analyse die hier und da muss programmiert werden aber man kann das diesen Prozess integrieren und dieses agile software
  444. development da arbeiten die Leute in kleinen Gruppen da wird auch gar kein Chef oder sowas ernannt sondern man lässt das Pass
  445. eren ähm die die Alpha Programmierer die werden dann so in dieser Gruppe allmählich zum leit Hammeln ähm selbstanordnung ist da wichtig die
  446. Rollen ändern sich vielleicht auch die Zeit wenn andere Qualifikationen gebraucht werden dieser kleinen Gruppe und diese Leute die arbeiten ständig
  447. zusammen die sitzen also dann tatsächlich in kleinen Gruppen vor einem Computer zu zweit zu dritt vor einem Computer und arbeiten gemeinsam an der
  448. Software klassisch ist es so dass wir unser Projekt aufteilen in viele Einzel Aufgaben und dann sitzt einer vor se einer Einzelaufgabe und beistß sich da
  449. dran wochenlang fest und WE bei dem agile da muss man täglich seinen Kollegen die Software zeigen wie man
  450. geschrieben hat wie die Seite Code vorführen und dann wird live über diese über den Code diskutiert in der Gruppe es hat sich als ziemlich erfolgreich
  451. herausgestellt und ein ehemaliger doktorant von
  452. mir der praktiziert das in der in der Wirtschaft in seiner in seiner Leiter Leiter Leitung Software
  453. Entwicklung setztte dieses agile software development ein in diesem Kleingruppen dieser Satz hier der ist wichtig intensive
  454. Reviews die Arbeiten in der Gruppe zusammen und rechtfertigen ist der falsche Ausdruck aber erklären ihren Kollegen ständig was sie da in der
  455. Software machen da arbeitet man also zwei Stunden alleine vor vorm Rechner oder drei oder auch vier und dann redet mal mit den Kollegen zwei Stunden lang
  456. die Software die man geschrieben hat warum steht das nie da war warum steht das if an dieser Stelle und die laufschleife warum hört die da schon auf
  457. man erklärt sich Reg die Software das ist dieses der Grundgedanke von diesem software development und das eXtreme Programming das gehört da noch
  458. dazu wie das so ist bei uns Programmierer ich vereinfache das jetzt natürlich stark wie das so häufig so ist bei
  459. Programmierern passiert er wochenlang nichts und dann wenn der Abgabe ist dann bricht die Hektik aus ähm und da ist diese Hektik Hektik
  460. ausbrechen eingebaut in den Prozess da gibt es sogenannte Sprints und in diesen Sprints da wird das Team große Stücke der Software erledigen
  461. äh und dazu werden da arbeiten die auch mal einfach paar Tage lang wirklich viele Stunden pro Tag und dann auch mal wieder ein
  462. paar Tage lang nichts zu machen und an Baggersee zu gehen ähm und in diesen Sprints da wird erstaunlich viel erstaunlich gute
  463. Software produziert in der Zusammenarbeit mit den Kollegen dass man wirklich gemeinsam vor der Maschine sitzt so
  464. ähm ich will nachher heute Nachmittag um um 16 Uhr dann noch weitermachen mit diesem mit diesem warmlufen fürs Programmieren mit den
  465. Präliminarien s dass wir dann nächste Woche wirklich programmieren können dank mich für Aufmerksamkeit und um 16 Uhr geht's weiter

Zum Nachlesen