[Playlisten] [Impressum und Datenschutzerklärung]

12C.6 zweidimensionales Array mit dynamischem Speicher; Spalte einfügen


CC-BY-NC-SA 3.0

Tempo:

Anklickbares Transkript:

?? was zu den Zeigern und der Speicherverwaltungstellen sich vor sie haben eineTabellenkalkulationenTabellenkalkulationsprogrammdas musser typischerweiseTabellen von Zahlen lassen zwar bezahlen verwaltenalso eine Tabelle hier ein zwei dimensionalesArray von Zahlensowas möchte ich bauen das könnte natürlich jetztdirektals zweidimensionalesRay bauendie vier hoch Butlers eins zwei drei vier fünf ist es hochund ein zwei drei vier fünf sechs ist es bereits sie könnten das so direkt bauen sie können es auch direkt initialisierenwie dreizehnzweiundvierzigund so weiterdanndas ist das eine aberdas ist der Anfang aber was man dann sofort über typischerweise machen wollen würde istdas mansacht ich vorher ?? Spalte wie ist das mit dem Einfügen einer Spaltedannsteht man hier mit dem RE auf dem Schlauch das hat die feste Größe fünf mal sechsund dann ist FeierabendPunkt ordentlich hinter machen sosehr wenn ich jede Zeile einfügen willwenn ich so ein festes RE habehabe ich da verlorenwas manmachen kann oder die erste Möglichkeit die man machen kann istdoch die übliche Möglichkeitist das man dieses Ding hier eben reserviert mit Memory ?? ich reservieren dasim Speicherund wenn ich mehr Platz brauche schöndann geb ich wieder frei beziehungsweise nicht sofort wieder frei ich reservierengrößereZahl an Anwalts im Speicherkopiererumund gibt es also dann wieder frei das Komma zum Beispiel tundas irgendwie probieren also erst malvielleichtwie würden Sie genug Speicherplatzfür dieses Gerät ?? wirklich an mit fünf sechs?? würden sie genug Speicherplatzdafür reservierenund wie würden sie dann wenn der irgendwelche netten Daten in diesem Gerät drinstehenwie würden Sie es dann hinkriegen eine Spalte einzufügenZeile einzufügen Komma sondern angucken aber ist dann analogPunkt man dies dann gehen würde eine Spalte einzufügen entitiesin diesesversuchen sie das man ?? zu schreiben und erst maleine wave von dieser Größe fünf mal sechsreservierenwie ginge dasdasversuchen Sie mal zu schreibenwer sie sagen Memory Kate im Blog sagen sie euch auch dreißigins fünf mal sechswirklich hingeschrieben der Compiler keine rechten fünf mal sechszu ermöglichen geschriebendamals heiß auf ihn sie können auf dieser Maschine statt Zeitung findet auch zwei Schreibenauf einer Maschine ist das wahrscheinlich falschwahrscheinlich aber vielleicht falsch die Seite sind durch zwei ersetzt so ist auf jeden Fall sicherso groß ist ein Hint?? und was rauskommtist einZeigernunauch direkt schreibenAnzeigeauf einen indischenKomma das was Tabelleso waskönnte hier noch das hatte ich früher gemacht im Sternchen vorschreibendas geht aber automatischund ist vielleichtauch weniger verwirrend ?? Klammer zu schreibt für die neueren Sprachen ist das spannender wegen Typ Korrektheithiersie machen es einfach Memory N okay liefert ein Zeiger zurück und sorgt ?? C sorgt dann dafür auch das zeige dann wirklich als Zeiger auf ein in Gletscher in Sternchenanzeigeauf eine ganze Zahl aufgefasstwirddamit Memory Gerät funktioniert müssen WarsteinerLippen haben in CloudStandardlippPunkt habund bevor ich's vergesse schreibe ich dann auch immer solche Stellen sofortdas free dazubei diesem Programm ist es egal weil das Programm sowiesodamit alles freigegeben wird aber man weiß ja nieKomma ganz streng ist müsste man eigentlich noch was tunwas wahrscheinlich immer ganz streng ist wenn man ernsthaft programmiert müsste man noch eine Sache einbauenerstens als Anführungszeichen aufdankeich es sowieso keine Funktion es isteinsehr eingebaute ist hier auch in schwarz keine Funktionsweiseund jetzt fehlt hier noch eigentlich eine Geschichtestrenges was müsste man im wahren Leben auch noch tunkönnen zu wenig Speicher haben aus der kleinen Kiste hierdreißig mal zwei Bytesauf der großen Kiste dreißig mal zwei Gigabyte will ja nicht gehenwas ich zwei mal zwei Megabyte könnte auf der großen Kiste auch schon nicht genauso dass es gefährlich diese Funktion kann fehlschlagen?? liefert sie ein Nullzeiger kann also das was ich müsste eins gucken ob hier Tabellenicht der Nullzeiger plötzlich steht ganz was schief gegangenmit der Speicherreservierungan Fußnotegehört in jedes räumliche Programm dann reinamdamit habe ich Speicherund jetzt schreiben Sie doch mal tatsächlichdie dreizehnund die zweiundvierzigInselspeicher?? mal ganz dreistschreiben sich hier mal die Zahl hundert rein stellenalso wir haben jetzt Speicherplatzder reserviertschreiben Sie mal die dreizehndavon reindie zwoundvierzig da rein und da schreiben Sie mal hundert drei sehe das jetzt ausich will alsoin der Tabelleaufden allerersten Eintrag zugreifenKomma dass so auf Martin C meint wenn er immer das ist das vorderste Wasser drin istundschon gemerktwas ich da gebaut habe fühlt sich für den Rächer Rechner ja nicht zweidimensionalan für den Rechner fühlt sich das anwie einlangesein dimensionalesRay so fühlt sich das für den Rechner analles in einer Strecke hintereinander geschrieben nicht zweidimensionaldas heißt du müsstest irgendwie umrechnen von eindimensionalauf zwei dimensional im Flugehier bei den ersten beiden ist das keine Aktiondoch kein Unterschied ?? ich möchte also dass das vordersteda Drinnentabelledas vorderste Ding das Rennen soll auf dreizehn Gesetz werden so geht das nichtTabelle ist ein Zeiger die Hausnummer sie setzen nicht die Hausnummer auf dreizehnsetzen das Wasser steht auf dreizehn so konnte das seineine Möglichkeitgeschaffen oder hinter oderandere Möglichkeitistes verhält Sicherzeigernverhält sich an vielen Stellen Siewie der Name eines Lexikons auch so schreibendas sieht wesentlich freundlicher ausPunkt sie können diese SchreibenTabelle ist ein Zeiger auf das vorderste Elementdas was da stehtnämlich das vorderste Elementsetzen auf dreizehnoder sie benutzen das jasie nutzen aus das für zehndieses Ding hier aussieht wie einein dimensionalesGerätmit dreißig Einträgen und davon nimmt sie den Eintrag Nummer null?? könnte das tunsie das natürlich weiter der nächsteich habe es bei Hindernissein dieser Ray Schreibweise aussehen ist etwas freundlicher und sagt dann der nächste soll also auf zweiundvierzig gesetzt werden zweiundvierzigaufsich überlegen okay wie sieht das jetzt aus mit dem Sternchenwird es fürchterlichsie müssten Bildenvon den Zeiger der in Tabelle stehen gehe icheine Hausnummer weiterdann guck ich mir anwas der Inhalt davon ist und diesen Inhalt setzt sich aufzweiundvierzigdas sieht sehr unübersichtlich aus was mit dem Zwangsfall so schreibenbetrachte das hierwie ein ein dimensionalesRay dreißig Einträgender Eintrag Nummer eins wird auf zwoundvierzig gesetzt und jetzt hier mit der hundert?? natürlich anfangen durch zu nummerieren ??null eins zwei drei vierfünf sechssiebenacht neun zehnelfzwölfdreizehn vierzehnfünfzehnsechzehnsiebzehnachtzehnneunzehn zwanzig also ich könnte jetzt ganz dreistden Eintrag Nummer zwanzig auf hundert setzenraffinierter wer natürliche man das ausrechnenkann ich möchte irgendwas rechnenhier mitamhier möchte ?? damit rechnen die Nummer der Spalte null eins zwei nulleins zwei ?? die Nummer der Spalteist zweiund ich möchte mit rechnen null eins zwei drei die Nummer der Zeile ist dreisein?? damit möchte ich eigentlich rechnendie beiden Koordinaten nie gegeben haben zwei drei normalen zweidimensionalenEssays könnten sie ja schreibendreizweials sowas wie BWA von drei zweites können Sie beim normalen zweitem ?? meine Rechtschreibunggeht jetzt ja nicht weil ich nur den schlichten Zeiger habesogar wieder nicht zwei Indices in der Klatschenaber aus der zwei der drei König diese zwanzig berechnenwo kommt die zwanzig Jahre ?? die zwei haben die drei habewie komme ich auf die zwanziggenau drei mal sechseins zwei drei drei mal sechs Plus hege ich noch null eins zwei weiterso könnte man es also rechnen wenn sie Spaltennummerund Zeilennummerhabenkönnen Sie also um RechnenZeilennummermalwie viele stehen in jeder Zeile drei mal sechs plus zweidas wäre dieUmrechnung das passiert hinter den Kulissen bei zwei dimensionalenweißdas verbirgt uns Cich nehme ?? WellevonJungschar Beistrich aber sie ?? zum Schreiben sechsMaldie Zahl der Zeilenplusdie Zahl der Spaltentitelschreiben das auf hundert gesetzt werdensind ja vom Schreibenkönnen auch direkte sozusagen exotische Koordinateneinsetzenso würde man sich daraus Lügen das heißt aber auch ich muss die Zahl der Spalten wissenwie sie sich erinnern wenn sie bei Cmit zweidimensionalenReis hantierenkönnen Sie an vielen Stellendie ersten klammern wir lassen aber die zweiten Klammer zu müssen was reinschreibendas ist genau die sechs zieht sie auch am PC rechne dies hinter den Kulissen selberzweidimensionalfrei habenjetzt das alles im Sinne bodenständigerso käme die hundert an die richtige Stelleschon mal sagen warum macht man so ?? und Unsinn sie sehen zweidimensionaleArrays wenn doch so viel schöner wenn sie schreiben würden beginnt aberich brauchedas alles jetzt fünf Zeilenundfünf der fünf Zeilen sechs beidendas wäre doch so viel freundlicherund damit Doppelklammern Jahraberdie Größe von diesem Razor festgenageltdas kriegen sie nicht mehr umgebaut auf andere Größenundauch nicht wieder lossolange ich innerhalb dieser Schweifklammer bin wenn ich dieses Gerät auch nicht mehr losist alles nicht so raffiniert mit dem dynamischen Speicherhier im reell okaybin ich flexibler es umständlicheranzusprechenKomma könnte sich eine Funktion schreibenund gibt Hilfefunktionamder ist flexiblerdennKomma folgendeswie würden Sie es schaffen in diese Tabelleeine Extraspalteeinzufügenich möchte hiereine weitere Spalte einfügendas heißt sie müssen eine neue Tabelle anlegenund sie kopieren alles was in der alten Tabelle drin stehtund die Spalte die sie einfügendieser aus lauter Nullen bestehenimmer das dahinter also einen neueneuen Speicher reservierenweiter Speicher reservierenfür eine Rede sein Spalte mehr hatdas alte da reinkopierendiese Spalte die neue ist mit Nullen füllendas als natürlich wieder freigeben es war nicht mehrdas beste ?? zu sein zwei for-Schleife zu machen Komma viele Arten machen ich würde zwei for-Schleife machenund vor allem natürlich erst mal die neue Tabelle anlegen Punkt und damitzwei fortlaufend fühlenden Westerwelle neuund die neue Tabelle hat eineSpalte mehrso jetzt würde ich mit zwei verschachtelten for-Schleife durch die Tabelle gehenin was in ihmman würde als äußere for-Schleifeimmer die Zeilen nehmenund als innerer for-Schleife die Spalten nehmenwenn sie die Spalten durchgehen haben sie zahlen die dicht beieinander stehendas mag der Prozessorspeichertechnisch Zahlen dicht aneinander steht deshalb wird man als innere Schleife typischerweiseSpalten im ?? des ?? zum Algorithmus ja kein unterschied aber das kann von dem temporär von der Geschwindigkeiteine extrem unterschied machenals die äußerewäre für dieZeilen die heißen jetzt eben I ?? Zganz kleines S für die Zeilen ist die gehen vonnullBasefünf ausschließlichZ plus plusZeilenund indie Spalten schreibt man esund da gehe ich von nullbissie können ausschließlicheinschließlichnull ausschließlichsiebennatürlich das ganze Ding füllenda musste der bestehen Tabelle neueTabelle neuvon irgendwasist Tabelle als?? zu dieser Tabelle von irgendwasausrechnenaber nicht immer mancher muss auf null gesetzt werden das heißt ich brauche ein ??istwenn irgendwas passiertPunkt aber das ist der einfachste Teil ?? wenn das passende passiert wird sich dieneue Tabelle aufnullund ansonsten setzt sich die neue Tabelleauf was passendes aus der alten Tabelle und jetzt muss man sich nur noch überlegen was er für die Fragezeichenrein kommtwas ist hier die Bedingung wann setzen sie das was in der neuen Tabelle steht auf null was ist diese Bedingunggenau die Spaltennummerist vier das hier wird ja die neue vierte Spalte das rote was dazwischenkommtalso wenn die Spaltennummergleich vier istSpaltennummergleich vier istvierzig null reinjetzt kommt der spannende Teilder Nebenschreibersausgerechnetdas muss ja von der Form sein sechsmal die Nummer der Zeile plusdie Nummer der Spalte zwei war die Nummer der Spalte als ihr muss verstehen wie sechsmalNummer der Zeile wir sindbei derselben Zeile die Zahlen haben sicherlich geändert plusNummer derFallPunkt und User die vier stehenund das natürlichwas ich habe dich könnte sogar die vier eintragen aber ich glaub es klarer wenn ich es rein schreibean die Stelle gehörtdie nullwenn ich in der neuen Tabellein derSpalte vier binich null Schreibennull eins zwei drei dass wir die Spalte vier der neuen Tabelleihr muss ich jetztausrechnenwo ich in der neuen Tabellewas hinschreiben willwelchewelcher Eintrag ist das wenn ich von vorne beginnt ab null durch Zähleneben hatten wir dassechsmal drei plus zweidie Zahl der Spaltenmaldie Nummer der aktuellenZeile plus die Nummer der aktuellen Spalte das muss jetzt das analoge sein die Zahl der Spaltentitel ?? siebenmaldie Nummer der aktuellen Zeile ist Zplus die Nummer der aktuellen Spalte ist esdasselbe da unten passierenwo möchte ich reinschreiben das Ramadandie Frage ist jetzt so Bully sich rauses wird nicht immer sechsmaldieNummer der Zeile plus dieNummer der Spalte seinmuss irgendwann auch korrigieren was mussich korrigierenund wenn sie die alte Spalte null eins zwei drei haben dann bleibt es auch die neue Spalte null eins zwei dreiaber die alte Spalte vier die alte Spalte fünf muss ein zweiterSpalier muss fünf werden die als Spalte fünf und sechs werdenwenn ichgrößer gleich vier bin in der Spaltennummergucken wenn ich größer gleich vier bin der Spaltennummer der Muster einer mehr dazu ?? das mit ganz was sointeressant könnte man raffinierter schreiben oder soll ich ihn nie gezeichnet raffinierter schreiben kann ich das mal sowenn ich in der Spaltegrößerbin alsvier größer als vier Busse gleich gesagt größer als Fürsorgebingermit erstes bezieht sich auf die neue Tabelle wenn ich größer bin als vierdann merke ich mirdas ich mit Ada auf eins G unter die Richter hinten eins draufda regt sich Widerstand in meinem hier in der Musik natürlich einsabziehenes ist die Nummer der neuen Spaltewenn die Nummer der neuen Spalteüber vier istmuss ich in der alten Tabelleeins nach links gehenund guckendie Nummer der neuen Spalte vier istnicht einmal ansatzweise Hinz Zeichen wie das aussehen ?? die neue Tabelle hat eine Spalte mehrKommaeine neueSpalte mehrwenn die Nummer der Spalte null eins zwei drei vier fünfwenn die Nummer der neuen Spalteüber vier ist muss ich in der alten Tabelleeins vorher nachguckenbei fünf ?? investiert wenn die Nummer der einen neuen Spalte drei ist wirklich in der alten Tabelle an der selbstso jetzt Hammers auchtausend Möglichkeiten dasSchiff zu machendas wäre jetzt das Füllen der neuen Tabelleund danach könnte ich die alte Tabelle loswerden?? ich wird mit der neuen Tabelle arbeitenetwas sinnvolles tunmit Tabelle neu arbeiten Schrankes war das ein?? der Prozessor könnte den Speicherplatzfür die als Tabelle freigegebenwerde jetzt dann nur noch die neue Tabelleim Speicher irgendwo unterzubringenund wenn ich ganz fertig bin sage ich okay wir können auch dieneue freigebenPunkt so könnte das aus einer Anmeldungzum ?? syntaktisch richtig sindsoweit