[Playlisten] [Impressum und Datenschutzerklärung]

12A.1 Informatik, Datenstrukturen, Array, struct, Warteschlange, Stack, Baum


CC-BY-NC-SA 3.0

Tempo:

Anklickbares Transkript:

letztesJahr ging's ja umProgrammieren hauptsächlich wie man der Sprache C irgendwas mitteilen kann oder genauer gesagt dem Rechner in der Sprache C etwas mitteilen kanndanndie letzten Termine dieses Jahr wollte ich dann eben noch benutzen um in das will ich was über Informatikzu erzählennicht was ich so sehr was programmieren ?? immer als Randthema das Programmieren dabei aber hauptsächlich solche Informatik werdenmeine Ideeerzählen meine Idee wasder Zusammenhang zwischen Programmieren und Informatik istdannProgrammieren auf der einen Seite und Informatikist für mich so ähnlich wie Rechnen und Mathematikwenn man in der Grundschule sagteinmal eins das schon Mathematik dannist das sehr gewagt?? Mathematik sollte eigentlich eher seinwie man rechnet die Theorie hinter dem Rechnen effizient zu rechnenwas man wie ausrechnen kann mit welchen Fehlernund ähnliche Sachen ähnliche Sachen dieer inhöheren weihen sozusagen des Rechnens und so ähnlichwürde ich das auch zwischen Programmieren und Informatik sehenProgrammieren ist daswas sieein Heckenin das EntwicklungssystemC oder Java oder was auch immer gerade sein mag Informatik ist das was dahinter passiert die Theoriewie programmiert ich etwasEffizienzwartbarwie vor mich so das ich drei Tage später noch verstehen dann oder andere Leute ein Jahr später noch verstehen können was ich da gemacht habewie gehe ichvor um ein Problem Informatik zu lösen was ist der Ansatzin welche Teilproblemezerlegt ich ein Problem und ähnliche Geschichten das wäre für mich das Informatikdas reine Programmierenbraucht man dann zwar das Satelliten umzusetzenaber das große Ganze dahinter wäre die Informatikunddie restlichen Termin jetzt wollte ich wissen was Informatik erzählen??erstes große Themain der Informatik sind typischerweise die Datenstrukturendass man sich Gedanken machtwie man seine Daten ablegtso das man sie später wieder finden kannin vernünftiger Formwas sie schon kennenund was sind sie ja eingebautesist das okaydas heißt sie habenzum Beispieleineam eindimensionalenInlayquasieine Liste von Sachenund können dann einfach der Nummer drauf zugreifensie können sagen gibt mir null eins zweidrei gibt mir die Nummer vierNamen des Rayseckige Klammern viergib mir die Nummer vier aus dieser Liste rausdamit was veranstalten sie können aber auch umgekehrt sagen in die Nummer vier in dieser Listegleich schreibe irgendwas reinund analog dann zwei dimensionalendreidimensionalenund so weiterNC das ist relativweitgehend in die Sprache eingebautmit diesen eckigen Klammernamwas auch noch eingebautessammelgesinnterVerbundtraktschonkommendass sie mehrere verschiedene Sachenin dasselbe Objekt rein kippen können werden das bei der Bestellung zum für das sie sagen können um eine Bestellnummerist so zu viel und dann gibt'seinen Titel des ganzen Wasserzeichenkettesondern gezeichnet eine Anzahl wie oft das Bestell des weiteren Preisen so weiter all das geb ich zusammen in einen Verbundund kann dann gezielt die einzelnen Sachen wieder rausholendas war ja in C das man Punkt schreibtder Namedieses Verbunds der Variable die für diesen Verbund ist der Name dieser Variablen Punkt und dann der Name des jeweiligenMemberHöhedes jeweiligen Eintrags hiersowie da der Zugriff in Cfür sich war das ein bisschenblödsinnig warum soll ich wenn ich diese Sachen einzeln habedas jetzt in den Kasten ließenan viel sinnvoller sind diese verbünde wenn ich viele davon habe zum Beispiel wenn ich einGerät aus Akts habe das kann auch schon in denPraktika voreinem ?? aus Trakt eines sehr viel sinnvoller dieser Verbundzu drittes typischerweise aufnicht alleinesonderngleich die ganze Sammlung davonzum Beispiel eine Datenbankkönnen Sie sich so vorstellen als Sammlung von Snacks steht die Vornahmeder Vornahme drin über die der Nachname drinüber die die Telefonnummerdrinnen übersteht die Adresse drin in jedem Datensatz und jeder dieser verbünde wäre dannein Datensatz?? aber der nackte Verbund ist tatsächlich nur so ein Link von dieser Sorte und man baut dann gerne kompliziertere Sachen draußendas sind diewesentlichen Datenstrukturendie in C eingebaut sind in anderen Programmiersprachensind nur weitere Datenstrukturenmehr oder minder eingebaut zumindest bibliotheksmäßigverfügbarund kann er schon in denVideos vor ?? an das was manhäufiger braucht ist die WarteschlangeEditionder zynischen Schreibweisewie die Warteschlange duedasist im Endeffektso was wie ein eindimensionalesPhänomenallerdingsvariabler Längeda passendanngerade so viel Wein wie vor dem Schalter stehenin der Warteschlangees gibt eine Funktionum jemanden in die Warteschlange zu stellenEditionals sie danntypischerweisewas ein schönes deutsches Wort ein Schlangenan die Schlange stellen eine Schlange hängenan und es gibt eine Funktionum den ersten vor dem Schalter zu bedienen EditionSie wollen EntschlangenBenQ ein Schlangenan Schlangen und die zu Entschlangenandas Insel die beiden wesentlichen Funktionen die man dafür Sonne DatenstrukturhatbeiLW und bei der Strack war das in C mehr oder minder eingebaut wenn sie im Ray sagen wollen und ich möchte die Nummer vier was reinschreibendann schreiben Sie so die Nummer vier was rein und er nicht abstraktPunkt irgendwas gleichandas es von der Sprache schönabgebildetKomma sowas haben will wie eine Warteschlangeist das in den meisten Sprachen nicht so direkt abgebildet muss ich Funktionen aufrufen ?? Cube die Cubezu sagen jetzt wieder ein in die Schlange stellen und dannimmer wieder natürlich auch mal ein abholendie Warteschlange sehen siesehr häufig wird um irgendwelcheDatenübertragungengehtan ich habe vielleicht ein Modul in meinem Programm das Sachenverschicktdrucktspeichertund habe ein Modul in meinem Programm das Sachen einliestund um diese beidenhalbwegsunabhängig zu halten setzt man da gerne eine Jura ineine Warteschlangedieses Modul was sie dann liestfüttert die Warteschlange mit and youund das Modul was die Daten verarbeitetweiter schickt was auch immerliest die Daten mit die Queue rausund welchem Tempo das jeweils passiert wird durch diese Warteschlangeunabhängig voneinander es muss nicht dieses Modul das Daten verarbeitetgenau einen Datensatz lesenwenn das Modul das Daten erzeugt in einem Dachsdatensatzliefertder Datensatz kann dann einfach hierin der Warteschlange stehenwieWeihnachten mit dem Päckchenbei der Postim Endeffekt sollte natürlich auf lange Sichtsollte genauso vielihr an Daten verarbeitetwerdenwie an Daten erzeugt wird und heißt das ja dass sie sich das in der Warteschlange noch mehr Leute stehen bleiben dass wir keine gute Idee?? auf lange Sicht sollte das Tempo dann schon dasselbe seinoderdas Tempo hier des Daten Verarbeiterseigentlich noch im bisschen schneller sein als es Tempo des Datenerzeugersder sie sicher sein können was sie Warteschlangetatsächlich leerläuftund ich denke ?? drin hängen bleibtdas ist die Warteschlangemit ihren beiden wesentlichen Funktionen in Judith youverwandt damit ist der Stack der Stapelich lege einfach Datensätzeauf den Tischund arbeite immer mit dem oberstengibt's auch für diese Datenstrukturzwei übliche Funktionenfür den Zugriffzur Erinnerung noch mal beimMann der Welt schreiben sie ja zum Leseneinfach nur A von vier ?? machen das war von vier mal irgendwas machen was damit ?? und zum Schreiben schon sie beim Ceravon vier ist gleich irgendwasandas es alles nett in die Sprache eingebautbei der Queueverwenden sie zum Schreiben eine Funktion ein Queue zum Lesen eine Funktion die Cube und bei dem Stackauch immer auch dann eine Funktion zum Schreiben die heißt Pushtypischerweisesich dann über die Jahrzehnte darauf geeinigt und eine Funktion zum Lesen gehasst Popptypischerweiseder Unterschied zwischen Stack und Warteschlangeist das beim Stack immer dasallerletzte Element hierbetrachtet wird sie legen das letzte Element draufwenn sie was holen vom Stack kriegen sie auch das letzte wieder?? sein das jüngste ist weit klarerbei derWarteschlangeträgt sie das älteste Element wiederdenjenigender sich vor Urzeitenin die Warteschlange gestellt hat der wird hier wieder rausgeholtals ersterdas ist fast in fast all das noch wesentlicheAbkürzungbei den ganzen Techniken gibt's dann auch in Hardware first in first Authwar der erste der reinkommt in den Laden ist auf der ersten ?? wieder ausgeht aus dem Ladenund der Stack ist ebenandersrumdas ist ?? last in first auch der letzte drei Com Glasinfostoreder letzte der reinkommt ist der erste daraus gehtder letzte reinkommtist der erste Dennoch wieder rausgehtamVerlauf zeigen wenn der erste rein kommtman ruft Busch aufdannkommt vielleicht noch jemandmit Busch draufgelegtnoch jemand mit Booster draufgelegtund jetzt ?? aufrufenist der erste daraus geht der letzte der reingekommen istdie jüngsteder oberstedass es anders beim Stack als bei derWarteschlangedannim ?? Leben konnte sich sehr häufig vor man sieht ihn nur nichts der Arbeit im Hintergrund im RechnerZimmer schwitzt umgehend dieRücksprünge ausden Funktionsaufrufezu organisierender Rechner legt sich auf einem Stick ab aus welcher Funktion er gerade gekommen istund wenn aus der Fusion in der gerade ist in einer Funktion spricht nicht abwo wieder zurück muss und so weiter und so weiter bei jedem Sprung in irgendeine Funktion nicht abfuhr wieder zurück mussdannan der Stelle kommt als der ganz prominent in den ganzenMikrochips vorallem man sieht ihn aber seltener beim Programmierenunsja was man dann tatsächlich noch sehr häufig sieht anders als den Stack ist der Baum oder ?? wiezum Beispiel Dateisystemenes gibt eineWurzel des Dateisystemsbereitsbei Windows ist das dann immer gerneauf Ekzem oder Ähnliches eine Wurzel des Dateisystemsanunterliegen auf derobersten Ebene zum Beispiel Ordnerin den Dateisystemvielleicht auch schon Dateienweißund in den Ordnernkönnen wieder Ordner liegenoder Dateien liegendas wasoder noch mehr Ordnerund so weiterund so weiter sowas wäre ein Baumsie sehen eine ganz typische Wendung Dateisystemenhaben Bäumeich kannte zu diesem Knoten ist in dieser Knoten ich gehe von einem Wurzelknotenzu diesem Knotendieser Knoten ist ein Ordnerkann damitweitere Kinder enthalten Kindknotenenthaltendas sie werden jetzt Kinder von diesemKnotenKindknoten von den Coknotendiese Kindknotenkönnten auch selbst wieder Kindknoten enthalten zumindest als Ordner sindund das Ganze sieht aus ein umgekehrter Baum die Wurzel ist oben Komma das typischerweisein Informatik so das die Wurzel des Baums oben ist und der Baum dann nach unten aufgefächert ist wenn sich hier irgendwoans Ende geraten ?? das nur was wenn sie hier irgendwo ans Ende geratennicht Beistrich mein Ordner meinte noch irgendwas hat hier manchmal eineinzelnes Dokument rein will sie ans Ende geratenen haben sieein Blattso nennt sich das dann wenn es sicher weiter verzweigtausstattetum mit der Wurzel und irgendwounten endet dannmit Blätterndas ist die Analogie zum Plan zum Baumund insbesondere gibt es hier keine Zyklen also es gibtim echten Baum soll ich sagen echten Baum gibt es nicht diese Situationdass eine Dateiin zwei Ordner nichtim wahren Dateisystemengibt's das dann lustigerweisedoch weil es an einigen Stelleneleganter istder Stein der ?? des Baums gibt's das nicht das ein Ast mit dem anderen verwachsen versickern sie nie in zwomöchten Komma Baum kann sie nirgendwo im Kreis rumlaufenist A zyklisch es gibt kein Zyklus kein Zügeleingeschlossene Kreisen richtigen Baumim wahren Leben macht man sein Geld mit seinen Dateien dochwarenandere Beispiele für Bäume wären HTML Dateiendass sie auf einer WebseitemehrereAbschnitte haben in den Abschnittensitzt Text und dann ein Foto und eine Liste und in der Liste sitzt leicht was Anliegens oder noch mal Fotos und so weiter sofortals auch diese Struktur vonWebseitenist dann automatisch ein Baumoffensichtlichetwas das sehr häufig vorkommt wahrnehmenwill