Zum Inhalt springen
L

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

Grundlagen d. Informatik u. Programmierung 2: 2.1 Objektorientierte Progr. – Motivation (SoSe 2020)

Visual Computing WH38:07 845 Aufrufe veröffentlicht Auf YouTube

Das Wichtigste aus dem Video

Tipp auf eine Zeit – das Video springt genau dorthin.

Transkriptautomatisch erstellt · 219 Zeilen
Herunterladen
  1. [Musik] doch zusammen wir starten in die objektorientierte programmierung und das
  2. tun wir mit einem sehr technischen video diejenigen unter ihnen die schon ein klein wenig länger objektorientiert unterwegs sind können das video getrost
  3. überspringen wenn sie nochmal eine auffrischung haben und gucken sie vielleicht mal rein falls sie noch nichts in diese richtung
  4. gemacht haben und die zeit entbehren können ja zugegeben es ist ein bisschen länger geworden gucken sie sich mal in ruhe an es ist
  5. wahrscheinlich etwas anstrengend zu gucken ich versuche mit kapitel marken etwas zu untergehen dann und zugegeben es war
  6. auch anstrengender aufzunehmen das war noch ein paar fehler in den folien ich habe tatsächlich mehrmals schon ein müssen mal gucken wir mal wie gesagt
  7. wenn sie die zeit entbehren können gucken sie noch mal rein ihr machen tatsächlich eine reise von ich habe um sortierten unstrukturiert speicher und
  8. arbeitet damit irgendwie über ich habe datenstrukturen dann über ich habe datenstrukturen plus funktionen die einheitlich auf den datenstrukturen
  9. arbeiten dann waren wir uns noch ein container drumherum und dann sind wir tatsächlich an einer stelle wie das nachher mit klassen in
  10. der objektorientierten programmierung funktioniert aber fangen wir vorne an das ist unser programm rahmen mit dem bearbeiten wollen wir haben drei globale
  11. variablen data data protection und count das klingt schon mal so ein kleines bisschen als wohl über daten auf sammeln und dann passiert in der men funktion
  12. folgendes wir holen uns mit bullock speicher 100 x 96 bald und speichern das in data und dann speichern wir uns auch noch als die data position
  13. das ist unser blog speichern jedes kästchen ist ein byte und davon haben wir 16 in einer zeile und davon dann natürlich mehrere zeilen die einzelnen
  14. zellen sind hexadezimal nummeriert zur orientierung auf der letzten stelle von null bis f 16 stück und dann in zeilen mit dem präfix
  15. beginnt bei doppelnull nächste zeile natürlich 0 1 0 2 0 3 und so weiter und wenn wir uns diese speicherstelle angucken dann hat die
  16. fast die adresse lassen was erstmal dabei die adresse 014 hexadezimal die adresse ist nicht ganz wichtig dieser ganze block speicher wird ja irgendwo
  17. starten und das was hier steht im endeffekt ist das offset gemessen von diesem startpunkt ist mir für dieses beispiel unwichtig nur weil es genau
  18. wissen möchten hier stehen eigentlich die aufsetzte an okay was passiert jetzt mit dem kot beispiel von vorhin wenn wir zeile sechs
  19. ausführen den bärlauch 100 x 96 bekommen wir tatsächlich speicher in die hand den dunkelgrauen zur orientierung hier an dieser stelle enden 96 und davon geht es
  20. natürlich hier unten noch deutlich weiter 100 mal so viel bekommen wir dann kommt seine sieben das speichern wir uns die date up position gleich data was
  21. hier in der visualisierung einfach nur eine kleine markierung ist um diese erste speicherstelle und zwar um genau die adresse des speichers den
  22. wiederbekommen wie geht es weiter irgendwo steht in unserem code folgendes wir machen einen cast auf die data position machen daraus ein pointer auf
  23. eine anzahl integer der referenzieren uns den nehmen also tatsächlich den entega in die hand und schreiben da diese zahlreich dann
  24. addieren wir zur data position etwas und speichern uns den wert direkt wieder in der data position was addieren wir darauf die größe eines anzahl und inters
  25. danach passiert folgendes an die neue data position kopieren wir uns den string jane und erhöhen die date up position wieder diesmal um 46
  26. anschließend kopieren wir wieder einen string das hier und zwar den string appleseed an die neue data position und an ihren wieder 46 und machen dann ein
  27. instrument auf die variable account was könnte das sein hintergrund von diesem code der ist völlig fiktiv aber er tut so als
  28. beispiel hintergrund von diesem code ist ich schreibe eine studentin ein und zwar in dem code block der für das modul studierendensekretariat zuständig ist
  29. was passiert in speicher da ist er wieder unser blockierter speichern und wenn wir uns dann die zeile 21 angucken steht da ein cast und zwar in
  30. kaarst der adresse data position in einen anzahl und integer pointer das heißt diese ersten vier werden uminterpretiert in einem zeiger auf
  31. einen tisch das ganze wird also weiter ich differenziere mädels krieger also ein entweder in die hand und schreibe dann anschließend die zahl an dieser
  32. stelle danach in kommentiere ich die data position um die breite dieses anzahl ins und die markierung rutscht hierhin
  33. dann kommt seine 24 ich kopiere den string jane an die stelle die durch die top position bezeichnet wird dass sie dem speicher dann so aus wichtig der
  34. terminator wird natürlich auch reinkopiert ich kopiere ja eine zeichenkette landvolk zeile 25 an ihre 46 auf die date up position und die
  35. markierung rutscht an eine neue stelle 46 später hierhin 227 wieder einen string copy ich kopiere den string appleseed an den durch die opposition
  36. bezeichnete stelle taucht da in einzelnen zeichen natürlich des trink appleseed auf wieder mit dem terminator ich an ihre 46 zumal alter positionen zu
  37. 28 und die markierung steht hier und wenn sie da genau hingucken steht die markierung jetzt am beginn des nächsten blogs von 96 beim also wahrscheinlich im
  38. speicher der für den nächsten studierenden für die nächste studierenden vorgesehen ist was passiert jetzt den code ein student
  39. wechselt die prüfungs ordnung und dafür ist jetzt das softwaremodul prüfungsamt zuständig das hat offensichtlich jemand anderes geschrieben
  40. der kurze ähnlich folgendermaßen aus wieder ein cast auf die dritte position 1 kerstin eine anzahl in ponte mit dem differenzieren und ich schreibe eine
  41. neue matrikelnummer dahin jetzt wird's anderen data position wird um vier erhöht um dann anschließend 2c zeichenketten anzulegen die erste john
  42. in die variable festnahmen die nächste duo in die variable last night danach folgt doppeltes string kopie einmal an die positionen der
  43. top-position den festnahmen und einmal an die position data position +46 den maßnahmen um anschließend zu der tat position 92 zu addieren und count
  44. wiederum zu implementieren das gucken uns auf dem speicher da stehen wir jetzt an der stelle 0 60 da haben wir die date up position
  45. vorhin liegen lassen und machen dann weiter mit im prüfungsordnung wechsel zeile 41 der bereits bekannte kaarst auf den anzahl
  46. an integer pointer und das wäre für erzieherin soll ich da fühlen sich diese vier beides gleichzeitig in die hand nehmen kann
  47. und da dann natürlich an matrikelnummer anschreiben kann anschließend das inkrementell auf die markierung data position 4 bei zweiter dann steht sie
  48. hier jetzt werden lokal in der funktion zwei zeichenketten angelegt in der zeile 44 und 45 einmal john mama da passiert hier
  49. in dem speicher noch nichts interessant werden die zahlen 47 und 48 47 kopiert festnahme also im endeffekt dass john an die position die durch die
  50. opposition bezeichnet wird damit landet der john hier und 248 kopiert den nachnamen also du an die stelle der top position +46 wichtig die
  51. markierung bleibt hier stehen aber die zeichenkette doe materialisiert sich hier 46 später danach werden 92 bereits auf die dritte position addiert und ich
  52. stehe wieder am beginn eines nächsten studierenden an der nächsten studierenden ins nächste softwaremodul ein austausch student kommt im modul
  53. international office ich habe wieder ein cast auf den anzahl integer pointer mit der differenzierung und kann dann da wenn matrikelnummer eingeben wir glauben
  54. demnächst liest sich das für sie wahrscheinlich relativ flüssig jetzt kommt ich mache jetzt einen string kopie auf die data position +4 von jay random
  55. ein bisschen erfahrung aus den vorherigen codes ist das wahrscheinlich wieder der vorname und dann kommt ein string copy data position +50 diesmal
  56. der nachname ist jugend und dann wie gehabt data position wird erhöht diesmal um 96 bei count wird implementiert guck mal wieder auf den speicher das ist
  57. ein blog speicher wie wir ihn vorhin zurückgelassen haben mit der markierung für die data position an der stelle 0 10 0
  58. da stehen war seine 61 der altbekannte cast mit der zuweisung hinter der matrikelnummer erst der cast mit der differenzierung macht das feld breiter
  59. und ich schreibe jetzt die matrikelnummer neuen canon war alles schon dieses mal wird jetzt diese rote
  60. markierung nicht verschoben sie steht immer noch in der stelle 0 10 0 und ich mache das trinken auf der top-position +4 und kriege den g-punkt
  61. random string natürlich an dieser stelle anschließend sollte 63 data position +50 erhält durch das string kopie die zeichenkette stewart und die steht hier
  62. an dieser stelle anschließend zahle 65 data position plus gleich 96 verschiebt mir die markierung hier hin und wieder seine 66 natürlich cloos + sound was wir
  63. bei in diesem speicher xi okay das nächste softwaremodul ich möchte eine prüfungs liste erstellen das ist natürlich aufgabe der
  64. prüfungsverwaltung und da finde ich hier erst mal eine vor schleife die beginnt bei ii gleich null und läuft so lange wie kleiner ist als count deshalb habe
  65. ich dass er die ganze zeit mitgezählt um zu wissen wie viele studieren überhaupt eingeschrieben sind und zählt natürlich bei jedem durchlauf das hoch und zur
  66. übersicht an ändern ist jeden zum schlafen durchlaufs kriege ich an zeilen wechsel auf den bildschirm gelockt so was passiert jetzt wirklich bei jedem
  67. durchlauf als erstes mache ich nach ausgabe einer dezimalzahlen welche dezimalzahlen gebe ich aus naja die dezimalzahlen jetzt muss ich ein
  68. bisschen lesen die dezimalzahlen die an der speicherstelle data plus 1 96 licht okay ein student eine studentin ist 96 bereits bereit
  69. davon bin ich ihm schritte weit gegangen und habe beim data begonnen okay an am anfang findet jeweils die matrikelnummer das ist eine anzahl
  70. integer hier steht zeiger deshalb der mühsame kaarst auf den zeiger mit anschließender die referenzierung also gebe ich hier an dieser stelle die
  71. matrikel machen was danach kommt eine schleife die über jcs und zwar bot so lange hoch zählt wie j kleiner ist als 2 ein bisschen schlafen hinsehen sieht man
  72. die schlag verläuft also zweimal ich mache zwei ausgaben zwei ausgaben mit prof jeweils von einem string jetzt wird es mühsam
  73. ich beginne wieder bei data springe die studenten dann setzte weiter das war die matrikelnummer die ich überspringe
  74. + j x 46 also gucke ich mir hier wahrscheinlich die beiden strings an die ich dann ausgeben einmal den vornamen einmal den
  75. nachnamen und jetzt habe ich sie eigentlich schon verraten wenn wir auf die ausgabe gucken was werden wir wohl erhalten
  76. genau das was wir vorher auch eingetragen haben wir kriegen der prüfungs liste für den fiktiven 1991 er jahrgang dieser hochschulen etwas mühsam
  77. oder liegt einfach daran weil wir auf völlig rohren speicher arbeiten und uns die jeweiligen stellen an denen wir arbeiten wollen
  78. über cast in die passenden datenformate umbauen außerdem mühsam weil offensichtlich mehrere leute unterschiedlichen code
  79. geschrieben haben unterschiedlich auf die daten zugegriffen haben und von hier an kann ist aber glücklicherweise nur besser werden
  80. wir machen schrittweise übersichtlicher und ganz am ende landen wird bei der idee der objektorientierten programmierung gucken wir weiter
  81. ein kleiner haufen code jetzt haben wir datenstrukturen und können einen studenten eine studentin in einen solchen datenstruktur zusammenfassen und
  82. beschreiben wir haben nämlich in einem studenten datensatz erst eine matrikelnummer und dann den vornamen und den nachnamen
  83. und jetzt werden wir auch ein bisschen schlauer was diese 46 bedeutet vorname und nachname sind jedes mal 46 breit wichtig dass 46 bei den extremfall ist
  84. der terminator also haben wir hier 45 nutzten das haben wir dann ja wieder 23 globale variablen einmal den data pointer diesmal auf
  85. studenten der mit neue oder dem nahen ponto initialisiert wird dann haben wir gespeichert die date up russischen das wird wahrscheinlich die markierung seien
  86. von vorhin die erstmal auch auf den reporter gesetzt wird und dann haben wir hier in der variable count 0 studierende eingeschrieben
  87. alles noch beim alten gebieten einzige änderungen wir verwalten studierende jetzt in einer datenstruktur weitergeht sein code wir kommen in die
  88. mail funktion was passiert hier wir holen uns hier wieder über meer lockt 100 datensätzen speicher diesmal aber nicht ausgeschrieben 100 x 96 byd
  89. sondern hundert mal die größe die ein studierenden datensatz im hat dass carsten wir uns dann in einem pointer auf einen studenten und speichern uns
  90. das in der globalen variable data und wir setzen dann anschließend die markierung beta position auf genau diese stelle wo der speicher beginnt und da
  91. wir jetzt hier auch wieder speicher holen dürfen wir natürlich ganz am ende das tri nicht vergessen wir wollen ja keine memory leaks fragen wir
  92. fabrizieren okay wie sieht das im speicher aus gleiches prinzip wie vorher 16 bald in einer zeile wird zahlen untereinander und wir beginnen bei dem
  93. offset 000 mit der allerersten speicherstelle und finden dann hinterher aufgezählt und hier oben spalt und weise um zeilenweise
  94. durchnummeriert unsere einzelnen bei 10 211 passiert folgendes wir wollen uns mit dem marlok 100 mal die größe an speicher die einst truck cdu und annimmt
  95. und haben dann eigentlich noch genau das gleiche bild wie vorher einziger unterschied an dieser markierung steht jetzt nicht mehr nur 96
  96. bayern so wie es vorher war sondern zur erinnerung das ist die größe des traktes juden das wird also etwas lesbarer insgesamt dann kommt der cast auf dienst
  97. juden pointer der vor den block steht und durch den cast wird alles bunt was bedeutet es dass es bunt wird wir machen jetzt aus dem pointer aus dem pointer
  98. den wir aus dem loch kriegen der überhaupt kein typ hat natürlich im winter ist aber der nicht einen speziellen datentyp bezeichnet nun ein
  99. pointer der auf 1 jugend zeigt und damit kriegen wir automatisch zumindest können wir so denken unterteilung des speichers innen die drei blöcke die instruktorin
  100. stehen grün die matrikelnummer diese blass violett den vornamen und blass türkis den nachnamen das heißt unser speicher wird automatisch strukturiert
  101. weil wir auf die felder des trakts zugreifen können und dann sprechen wir uns in zeile 25 die data position die positionen der aktuelle studenten bevor
  102. schreiben wollen steht und die markierung ist so groß die zeigt nämlich auf den gesamten studenten denen wir voll schreiben können ja wichtig der
  103. beginnt an der stelle 000 deshalb ist die obere ecke hier die markierung wenn wir die am nt referenzieren beinhaltet das gesamtes
  104. trakt was wir jetzt über einzelne felder auf aber zugreifen können wie geht's weiter
  105. jetzt können wir wieder unsere studenten einschreiben und zwar unsere studentin jennifer sieht wie machen wir das mit dem structured wir legen uns einfach
  106. einst jugend s1 an initialisieren den direkt mit matrikelnummer vorname und nachname wir können jetzt auf die felder zu greifen und können dann sagen an der
  107. stelle data position befindet sich offensichtlich einst juni also die referenzieren wir den zeigern und schreiben da unsere erste studentin rein
  108. dann können wir die top position um einen hoch zählen was passiert zur änderung pointer arithmetik ein einfaches instrument erhöht um so viele
  109. wie der bezeichnete datensatz groß ist daher funktioniert es einfach mit dem einfachen plus plus an dieser stelle falls sie sich nicht mehr ganz genau
  110. daran erinnern konnten sie sich bitte die entsprechenden folien aus dem vergangenen semester noch mal ran da steht etwas genauer erklärt drin
  111. seine 25 wie üblich ich habe meine studenten eingeschrieben also sollte merken dass ich jetzt eine mehr in meinem datensatz habe in meiner
  112. datenbank was passiert im speicher zeile 21 sehe ich an dieser stelle nicht das ist lediglich eine lokale variable lokale instanz dieser datenstruktur in
  113. der die daten abgelegt werden interessant hier für diesen speicher ist seine 22 an der tatsächlich das s1 an die durch die opposition bezeichnete
  114. stelle gelegt wird und durch diese zuweisung wird feld für feld tatsächlich der inhalt von s1 in den bezeichneten speicher übertragen also zuerst die
  115. matrikelnummer dann der vorname und dann danach nahmen dann in zeile 24 kompliment auf die labour opposition und die markierung diese hier rutscht genau
  116. einen studierenden datensatz weiter nach hinten im speicher nächste software-module student wechselt die prüfungs ordnung wir sind also
  117. wieder ein softwaremodul prüfungsamt und wenn wir uns den code angucken sie der noch sehr aus wie im beispiel vorher wir haben immer noch den cast der
  118. opposition mit dem der referenzieren zusammen in einer zeit integer verwandelt und ich schwarze die matrikelnummer direkter rein dann folgen
  119. zwei string copies die auch wieder im endeffekt mit einem zeiger arbeiten ich mache mir aus der data position eine zeichenkette anzeige auf eine
  120. zeichenkette radieren natürlich dann noch vier drauf weil ich ja den ersten integer überspringen muss schreibt da den vornamen rhein gleich jetzt mache
  121. ich in 10 43 mit der data position wieder eine zeichenkette draus machen vier dazu um die matrikelnummer zu überspringen 46 dazu und den vornamen zu
  122. überspringen und dann schreibe ich den nachnamen doral also hier an der stelle hat der programmierer noch nichts von den datenstrukturen gewusst sich darauf
  123. verlassen dass die größen alle noch stimmen oder noch schlimmer er wusste zwar dass die datenstrukturen da sind hat sich aber gedacht neumodisches zeug
  124. weil es viel zu langsam ich arbeite nach wie vor auf dem speicher weil ich weiß es ja besser naja dann hinterher zumindest
  125. akzeptierte dass es data position gibt in der form dass das eigentlich nicht juden potter ist also zumindest dieses instrument deutet darauf hin dass er von
  126. den datenstrukturen gehört hat und jetzt wird's richtig schön account wird nicht in kommentiert sondern neu berechnet und zwar aus der date up position - data
  127. also aktuelle neue position - anfang zur erinnerung wieder pointer arithmetik ich kriege hier die anzahl der datensätze raus die dazwischen es und kriegt dann
  128. tatsächlich live berechnet die anzahl der eingeschriebenen studierenden etwas mühsam aber gut gucken wir den speichern
  129. gleiches prinzip ich stehe an einen neuen studierenden datensatz dieser beginnt wieder bei 0 60 im speicher er ist markiert und er ist
  130. strukturiert in die einzelnen felder zahl 41 das kennen wir schon die delta positionen wird gecastet in einem zeiger
  131. auf eine anzeige in der wird er referenziert und genau an die erste markierte stelle das grüne feld wird die matrikelnummer geschrieben
  132. 4 bei später in zeile 42 wird über den string kopie der vorname john geschrieben zahle 43 jetzt muss man ein bisschen rechnen von hier angefangen
  133. vier byd weiter +46 bald weiter an diese stelle wird danach nahm geschrieben dann rückt die data position genau einen datensatz weiter landet also hier und
  134. live wird jetzt berechnet wie weit ist diese ecke vom beginn des reservierten speicher blogs weg und zwar wie weit gemessen in studenten datensätzen ist
  135. also mein neuer account die daten stehen so wie sie sollen der code war etwas schwierig lesbar aber wir haben ja noch ein paar mal gucken
  136. also weiter ein austausch student kommt im international office salopp auf den code geguckt aber zumindest mit datenstrukturen gearbeitet da wird sogar
  137. tatsächlich mit den einzelnen feldern gearbeitet es wird kein student als gesamt student angelegt aber zumindest wird in die id
  138. der aktuell bezeichneten data position also das aktuelle bezeichneten studenten die matrikelnummer geschrieben in den vornamen wird der vorname reinkopiert in
  139. den nachnamen wird der nachname reinkopiert jetzt bin ich gespannt was passiert count wird hoch gezählt okay wir haben
  140. ein student mehr angeschrieben die data position wird aber neu berechnet aus beginn des speicher blogs plus count wieder eine neue variante
  141. aber ich komme zumindest an die richtige stelle so sieht der speicher aus die date up position ist markiert an der stelle 0 10
  142. 0 das ist diese ecke wir können uns um zahler 61 kümmern da wird in das feld id die matrikelnummer reingeschrieben da
  143. stets seine 62 kopiert in den vornamen den vornamen jay konkurrenten und zahle 63 kopiert in den nachnamen den nachnamens jugend da steht er wunderbar
  144. seine 65 in kommentiert den count wir haben anschließend also einen datensatz mehr als vorher und dementsprechend springt ins alle 66 die opposition bei
  145. der berechnung data plus count einen datensatz weiter nämlich genau hierhin was kommt jetzt wir wollen nach wie vor die prüfungs
  146. liste erstellen mit der prüfungsverwaltung wir haben wieder die vorschläge die über count datensätze geht diesmal sieht die aufgabe aber
  147. etwas intuitiver aus ich gebe nämlich innerhalb einer print f anweisung eine dezimalzahlen und zwei strings aus danach kommt der zahlen wechseln und in
  148. die einzelnen platzhalter schreibe ich vom aktuellen datensatz die den vornamen und dann den nachnamen und dann habe ich schon deutlich aufgeräumter und co
  149. wie sieht die ausgabe auswählt verwundert eigentlich ganz genauso wie vorher da steht sie
  150. ein noch kleinerer haufen code und wir sind jetzt fast tatsächlich bei einem eigenen container datentyp aber noch nicht ganz
  151. wir haben immer noch unseren studenten datensatz als datenstruktur mit einer id mit dem vornamen und mit einem nachnamen wie initialisieren und die data immer
  152. noch auf den konter das ist der beginn nachher wieder meiner datenbank und ich habe lediglich ein account der natürlich auch mit null
  153. anfängt was ist jetzt neu und was führt uns fast zu den container datentyp wir bauen uns diesmal eine funktion indische live data
  154. die als parameter aufnimmt wie viele datensätze ich bauen möchte und die dann die initialisierung mit dem barock vornimmt
  155. das kennen wir schon die zeile ist jetzt allerdings in eine eigene funktion gerutscht und diese funktion kann mir jetzt am ende bescheid sagen ob der mel
  156. ob hier oben erfolgreich war immer dann wenn ich von den männern null pointer zurück bekommen wir nicht genug speicher da das kann nicht prüfen und
  157. das kam mir die funktion über den rückgabe wert jedem rock am pool mitteilen dann gibt es weitere funktionen auch wieder im globalen scope
  158. eine digi data die das free macht und zur sicherheit auch die anzahl der eingeschriebenen studierenden auf dem google setzt also eigentlich genau das
  159. was passiert schmeißer alle daten weg und merke dir dass du keinen mehr eingeschrieben hast und dann gibt es weitere funktionen eine n roll funktion
  160. die eine information aufnimmt welcher student jetzt eingeschrieben werden soll und den dann an eine bestimmte stelle schreibt nämlich an die position count
  161. in der datenbank data schreibt diese funktionen den übergebenen studenten die übergebene studenten rein und erhöht den zähler erhöht also den
  162. mitschnitt wie viele studenten eingeschrieben wollen und anschließend gibt es noch eine funktion bei der ich fragen kann wie viel studenten gibt es
  163. denn in der datenbank und die letzte funktion im globalen scope die noch nicht die mail funktion ist es dann eine funktion die mir den aktuellen studenten
  164. bezeichnet durch das ausdruckt mit genau der zeile die wir von vorhin kennen warum hilft mir das in funktion ist nun deutlich aufgeräumter
  165. sie ist wesentlich sprechender geworden gucken uns das an an dieser stelle schreibe ich ganz klar hin dass ich 100 datensätze
  166. initialisieren möchte und am ende schreibe ich auch wieder eindeutig sehr sprechend hin dass ich die daten alle löschen möchte dass man sich nun mit den
  167. anderen funktionen machen kann ist ich schreibe im studierendensekretariat nach wie vor meine studenten jane appleseed ein diesmal aber mit der funktion n roll
  168. gleiches tue ich im modul prüfungsamt für den studenten jondo ich kann auch wieder die funktionen nutzen um ihn einzuschreiben und kann im international
  169. office mein austauschstudenten james jugend ebenfalls über die andere funktion ein schreiben und habe nicht in allen drei modulen die eigentlich alle
  170. das gleiche tun unterschiedliche funktionsweisen implementiert weil ich meinen ganzen applikations logik kurzum ein schreiben
  171. von studierenden in diese funktion reingepackt habe und ich die jetzt nutzen kann dann muss ich den nur an einer stelle
  172. schreiben und kommen nicht in versuchung den an drei stellen auf vier verschiedene weisen auszubeuten gleiches gilt für die erstellung der
  173. prüfungs liste ich habe wieder eine schleife über alle studierenden und gäbe dann immer noch auf das print jugendhaus um mir alle informationen zum bemalen
  174. studenten zu den studenten dann bild schon auszugeben und hier wieder wie sieht meine ausgabe aus es sollte keinen verwundern dass es
  175. genau das gleiche ist was ich vorher auch schon mehrfach hatte immer noch einen kleinen schritt weiter eine übersichtlichere haufen code jetzt
  176. mit einem eigenen container datentyp immer noch nicht mit allen werkzeugen die uns die objektorientierte programmierung zur verfügung stellt aber
  177. zumindest das nachgebildet was nachher c++ automatisch mit liefert dieses trakt ist bekannt für diesen tag gibt es jetzt aber ein weiteres trakt nämlich die
  178. students liszt und das ist jetzt mein container datentyp auch das sollte ausgibt 1 bekannt sein es ist einfach ein dynamisches array an dieser stelle
  179. wir haben irgendwann fällt was den beginn der laden bezeichnet und ein zähler der mit zählt wie viele datensätze dann schon drin sind ja also
  180. müsste noch die kapazität mit dazu liefert in diesem beispiel einfach mal unter dem tisch was haben wir dann die funktion indische live data heißt ein
  181. bisschen anders construct juden sliz da ist sie jetzt möchte weil immer noch wissen wie viele datensätze ich den platz haben möchte
  182. zuerst legt sie mir tatsächlich die students list an schreibt dann da rein wo der speicher anfängt und reserviert diesen speicher setzt den zähler erst
  183. mal auf null und gibt mir anschließend die ersteller des südens liste zurück dazu gibt's das kondom was dieses tool ist wiederum zerstört die jeweiliges
  184. jugend listig abbauen möchte muss ich gar zeiger übergeben darauf wird automatisch entry aufgerufen nicht ganz auf diesen zeiger aber auf
  185. den daten die da drin stehen so sicherheit für dieser daten zeigen dass den alb runter gesetz und die menge der eingeschriebenen studierenden wird auf
  186. null geschrieben und dann gibt es natürlich auch wieder die methode oder die funktion an dieser stelle noch n roll die als parameter natürlich wieder
  187. den studenten die studentin übernimmt aber zusätzlich noch die info darüber in welche students list dieser student diese studenten eingeschrieben werden
  188. soll und und passiert eigentlich genau das was vorher auch schon der fall war nur eben nicht direkt auf den daten sondern auf den daten der students lässt
  189. aber ich glaube auch das ist an dieser stelle halbwegs lesbar die beiden weiteren funktionen namens und kunst juden kennen sie eigentlich schon vorher
  190. deshalb habe ich beide schon aufgeblättert einzige änderungen genau wie vorhin die jeweilige students list muss mit angegeben werden
  191. einmal bei der landjugend und einmal weil im prinz teams und der rest funktioniert eigentlich genauso wie vorher nur das jeweils in dieser studios
  192. lässt nachgeguckt wird wie viele wie den haben oder welcher student denn nur gemeint dass die mail funktion ist jetzt noch mal deutlich sprechen
  193. ich lege mir am anfang eines tunes list an nenne die der einfachheit halber in rust jugend das reicht für dieses beispiel das sind nur die
  194. eingeschriebenen studierenden ich mache ihnen nicht mehrere studiengänge oder sonst was und konstruieren mir eine studentin
  195. liste mit 100 einträgen oder mit einer kapazität von maximal 100 einträgen und ganz am ende des programms zerstöre ich die wieder dauer power also mein
  196. speicher wieder ab was mache ich dann wenn ich eine studentin ein schreiben möchte unsere allseits bekannte denn apple sieht mache ich das wieder mit der
  197. n roll funktion die bekommt jetzt allerdings als erster parameter tatsächlich die adresse der liste von studierenden die igp arbeiten möchte und
  198. dann kommt der studenten datensatz wein und gleiches passiert beim wechseln der prüfungs ordnung im modul prüfungsamt auch da n roll in die liste ein rolls
  199. teams über die adresse angegeben diesen studenten hier und dritter punkt der austauschstudent kommt auch wieder die funktion n roll wieder auf der
  200. adresse der studierenden die eingeschrieben sind da hänge ich einen dran nämlich diesen studenten und will ich das ganze ausgeben möchte um mir
  201. dann hinterher am ende des semesters prüfungs liste zu generieren sieht eigentlich so aus wie vorher auch einzige änderungen beim künstler jugend
  202. ich gebe an welche liste ich ausgeben möchte und das habe ich gewonnen weil ich den container datentyp tatsächlich formal eingeführt habe die ausgabe jetzt
  203. wird es langweilig das ist wieder genau die gleiche wie vorher auch was aber gemacht an dieser stelle ein kleines bisschen
  204. übersichtlicher gezeichnet wir haben gestartet mit einem wort pointer auf meine daten mit einem wort pointer auf die aktuelle markierung und im anzahl
  205. internet eher mehr die anzahl der eingeschriebenen studierenden wie zählt das haben wir dann ersetzt durch das verständnis ich
  206. habe einen studenten als datenstruktur mit den feldern matrikelnummer vorname und nachname und damit hatte ich keinen winter mehr an
  207. den beiden stellen sondern tatsächlich beide male einst juden pointer jeweils auf einen solchen da er eine sonne datenstruktur zeigt hier genau genommen
  208. auf eine ganze menge von datenstrukturen und dann zeigte da eben auf die allererste was für ein bisschen angedickt im nächsten schritt durch
  209. einzelne funktionen die diese daten hier über ein einheitliches interface bedienen und im letzten schritt haben wir auch diese daten in der eigenen
  210. datenstruktur verpackt um das ganze nicht mehr nur in einer einzigen globalen variable zu machen sondern und möglicherweise auch mehrere container
  211. anlegen zu können und um das machen zu können mussten wir den einzelnen funktionen und natürlich jeweils sagen offen welcher dieser datenstruktur noch
  212. welche auf welchen dieser container gearbeitet werden so und jetzt wäre es schön wenn wir das tatsächlich zusammenbringen können die daten mit den
  213. funktionen die auf diesen daten arbeiten also im endeffekt tatsächlich sagen wir haben einen zustand hier ruhen das sind die daten und ein verhalten was wir
  214. kopieren und wenn wir das tun sind wir tatsächlich an einer stelle was wir später eine objektorientierte programmierung klasse nennen eine
  215. kleinigkeit die sich jetzt noch ändert auf dieser folie beim ehc plus plus zur verfügung haben wir müssen eigentlich nicht mehr hier
  216. unseren container selber implementieren wir können uns ja in der ci plus standard bibliothek bedienen und ein container datentyp nutzen
  217. an der stelle den vektor aus der standard bibliothek über studenten was dieser vector macht gucken wir uns später an
  218. der vollständigkeit halber sei hier schon mal eingesetzt weil der code dann noch mal ein kleines bisschen kürzer wird aber das ist einfach nur ein fertig
  219. implementiertes dynamisches array so wie sie ist aus dem letzten semester kenne [Musik]

Zum Nachlesen