PRG03SU07 Programmierung Variablen Variable lerneAccess https://www.youtube.com/watch?v=_NbjbIfGdic Transkript (automatisch erstellt) 0:00 wir haben jetzt alle bestandteile kennengelernt um uns noch einmal genauer mit der variablen und der damit verwandten konstante zu beschäftigen 0:11 also steigen wir gleich einen die variable eine variable deklarieren wir mit dem schlüsselwort team das haben wir jetzt schon mehrfach gesehen wir 0:20 schreiben die dann folgt dann der zeichen und der variablen bezeichnet anschließend ein leerzeichen und das schlüsselwort es und daran schließt sich 0:30 dann der datentyp an hier unten sehen wir beispiele bmi cynthia dem ss drin und so müssen wir unser variablen deklarieren 0:44 halt müssen wir nein müssen wir nicht in vba ja dann müssen wir das nicht bisher haben wir das dennoch getan wir haben bisher manuell alle unsere variablen mit 0:57 dem schlüsselwort dem bekanntgemacht deklariert es gibt in visual basic eine komfortable scheinbar komfortable alternative nämlich die automatische 1:10 deklaration immer wenn visual basic im programmcode auf etwas stößt von dem es denkt dass das eine variable sein soll deklariert 1:19 ist die automatisch und benutzt sie dann das nimmt uns scheinbar viel arbeit ab das ist aber eine ganz große fehlerquelle für anfänger gerade 1:28 anfänger die auf der tastatur noch nicht geübt sind und die gelegentlich tippfehler produzieren die werden schnell frustriert sein den tippfehler 1:37 bleiben bei der automatischen deklaration lange zeit unbemerkt und produzieren ergebnisse die kaum zu erklären sind man sieht hier ein ganz 1:47 einfaches beispiel ich deklariere zwei variablen eine zahl und zweite zahl dann weiß ich weil ich der einzahl 1 zu und der zweiten zwei zu und dann agiere ich 1:58 eine zahl und zweite zahl und dann kommt im direct bereich nicht 3 heraus wie man vielleicht vermuten sollte 1+2 ist ja ganz eindeutig 3 2:08 stattdessen kommt indirekt bereich null raus und woran liegt das jetzt nur wenn man genau hinguckt dann entdeckt man dass 2:21 sich ihr tipp fehler gemacht habe es haben sich zwei tippfehler eingeschlichen einer hier ich habe nicht zweite zahl 2:29 geschrieben sondern suite zahl und einer hier ich habe statt eines kleinen elz ein großes e geschrieben auch schwer zu sehen an manchen stellen her das führt 2:41 nun dazu dass vision basic im falle auf des programms zwar hier zwei variablen eine zahl und zweite zahl deklariert bekommt und hier 2:52 auch zugewiesen wird hier unten tauchen aber neue bezeichne auf die hier oben ja nicht deklariert wurden und deshalb geht vw davon aus dass es sich hier wohl um 3:02 eine neue variable handelt die es dann automatisch deklariert dies auch gleich initialisiert mit 0 und hier eine zweite variable die es auch automatisch für uns 3:14 deklariert und auch initialisiert mit 0 und dann wird ja nicht wie es zunächst scheint 1+2 gerechnet sondern 0 + 0 und das ergibt dann 0 glauben sie mir solche 3:24 fehler suchen sie sehr sehr lange in größeren programmen deshalb sollten sie sich von anfang an angewöhnen solche tippfehler die nicht offensichtlich sind 3:36 dadurch zu vermeiden da sie die automatische deklaration abschalten in der zweiten zeile jedes ihrer module sollte option express entstehen 3:49 drückt man sich hier nach option compare data base einmal enter und schreiben sie option explicit hin und drücken sie dann nochmal enter damit diese zeile 3:57 erscheint wenn ihnen das zu viel tipparbeit ist können sie für alle zukünftig angelegten module auch im menü extra 4:08 dann der menüeintrag optionen öffnet ein dialog wir heißt auch optionen und dort können sie auf der registerkarte editor die checkbox 4:21 variablen deklaration erforderlich an haken und wenn dort ein haken gesetzt ist wird diese zeile option explicit bei allen neu angelegten modulen stets 4:33 hinzugefügt wenn dort option explicit steht und wir das programm ausführen würden würde diese fehlermeldung erscheinen zweimal 4:44 sogar einmal bezieht sie sich auf die erste offene variablen die wir ja hier durch einen tippfehler versehentlich neu ins leben gerufen haben und einmal auf 4:54 die zweite variable die ebenfalls durch einen tippfehler ins leben gerufen wurde und beides mal sagt die fehlermeldung fehler beim kompilieren 5:04 okay wir wissen ja der interpret er versucht das hier zu übersetzen und dann weiter variable nicht definiert und damit meint visual basic variable nicht 5:15 deklariert insofern ist das schon ein sehr deutlicher hinweis darauf dass wir uns eine solche stelle genauer angucken denn 5:23 meistens steckt dort ein tippfehler aha bei genauerem hinsehen entpuppt sich das wir zur deklaration der eben doch noch etwas lernen konnten obwohl wir die 5:35 ganze zeit immer fleißig dem geschrieben haben und schon variablen deklariert haben prima damit aber jetzt auch genug zur 5:45 deklaration die haben wir jetzt ausführlich besprochen was wir auch sehen hier an diesem beispiel ist das variablen immer einen bezeichne haben 5:54 ich finde diese bezeichnung i und es aber nicht aussagekräftig stellen sie sich mal größere programme vor wo vielleicht nicht bloss zwei variablen 6:04 sondern 25 gebraucht werden und die sind alle mit einem buchstaben versehen atx dvi i denn es geht natürlich nicht man weiß dann überhaupt nicht mehr welche 6:15 variable repräsentiert hier eigentlich was und deshalb finde ich diese bezeichnung nicht besonders aussagekräftig das sind weniger gute 6:24 bezeichne wir sehen auch dass jede variable einen datentyp hat und nun kommen wir mal dazu was ich mir 6:33 für aussagekräftige bezeichne vorstelle und auch was man überhaupt als bezeichnung vergeben darf zunächst einmal was sind denn die 6:43 zulässigen bezeichne zulässige bezeichne sind jede beliebige folge von 255 maximal 255 unicode zeichen also fast der gesamte zeichen vorrat mit 6:55 folgenden ausnahmen das erste treffen muss ein buchstabe seien hier rechts sehen wir beispiele das ist ein buchstabe das ist also schon 7:05 ein gültiger bezeichne str name ist auch ein gültiger bezeichnet mein alter ist auch ein gültiger bezeichne und hier jetzt 7:15 r2d2 oder c 3po das endgültige bezeichnung ja das erste zeichen ist ein buchstabe und nachfolgend können dann auch noch ziffernfolgen oder sogar 7:28 unterstrich und insofern ist r2d2 durchaus zulässig und c3po auch nicht zulässig sind leer oder sonderzeichen 7:42 deshalb hier rot dargestellt ist mein leerzeichen alter kein gültiger bezeichne für eine variable auch 2 r2 de bekommt auch so verrückte 7:53 ideen weil hier vorne eine zahl steht ist das auch nicht zulässig und hier das sonderzeichen fragezeichen ist auch nicht zulässig 8:03 wir dürfen keine reservierten schlüsselworte benutzen hier oben steht das ab und wir haben schon gelernt ab damit leiten wir unsere programme 8:12 unserer prozeduren 1 und deshalb ist eine variable die wir es ab nennen wollen nämlich auch nicht zulässig und alle anderen reservierten schlüsselworte 8:21 wie end oder so was gehen auch nicht und bei der groß und kleinschreibung gibt die sonderregel dass das in visual basic for applications nicht 8:31 unterschieden wird wenn sie die variable groß schreiben wird die genauso behandelt wie die variable die sie klein schreiben und aus der gleichen folge von 8:38 zeichen besteht das ist in anderen programmiersprachen anders deshalb wollen wir uns das kann angewöhnen wir schreiben unsere variablen steht so wie 8:47 wir sie oben auch deklariert haben und achten dabei auf großen klein geschriebene buchstaben 8:54 was man noch erwähnen sollte ist das eine variable innerhalb ihres bereichs in gültig und innerhalb des bereichs in dem sie gültig ist auch eindeutig sein 9:04 sollte wir haben bisher gesehen dass innerhalb des programms was wir schreiben also zwischen zab und ends up eine variable deklariert wird und 9:13 innerhalb dieses bereichs kann sie benutzt werden es kann dort keine zweite variable mit dem gleichen namen deklariert werden es ist aber möglich in 9:24 einem anderen programm und das sieht man hier unten eine variable zu deklarieren die den gleichen namen hat wie eine variable in dem programm hier oben das 9:34 ist kein problem man sagt dann das ist ein gültigkeitsbereich und dass sie unten ist ein anderer gültigkeitsbereich und die variablen müssen nur innerhalb 9:44 ihres eigenen gültigkeitsbereich es eindeutig sein das sind all die regeln die wir beachten müssen um zulässige bezeichne 9:58 schreiben zu können jetzt wollen wir zusätzlich auch noch aussagekräftige bezeichnet schreiben ich fand ja so was wie oder j oder b nicht besonders 10:09 aussagekräftig in der praxis ist es tatsächlich so dass es in der regel konventionen gibt wie variablen zu bezeichnen sind damit unterschiedliche 10:18 programmierer möglichst einheitlich programmieren was nämlich die lesbarkeit und verständlichkeit durch dritte erhöht außerdem ermöglicht das rückschlüsse auf 10:29 den verwendungszweck eine variable die beispielsweise vorname heißt oder eine die alte heißt lässt sofort rückschlüsse auf die verwendung zu in der einen steht 10:41 eine zeichenkette vermutlich die den namen von jemandem repräsentiert und in der anderen wird das alter von etwas stehen 10:48 das verbessert nämlich auch die wartungsfreundlichkeit man kann eigene programme mal schneller nachvollziehen aber wenn man die programme nicht mehr 10:57 selber betreut weil man vielleicht ausgeschieden ist aus einem projekt müssen andere kommen und damit die sich schnell einen überblick verschaffen 11:04 wollen wir uns angewöhnen aussagekräftige bezeichnet zu formulieren aussagekräftig bedeutet noch etwas 11:11 anderes wir wollen nämlich in diesem kurs in anlehnung an die sogenannte ungarische notation folgenden aufbau von variablen bezeichnen wählen wir 11:21 schreiben stets ein präfix und erst dann folgt ein variablen bezeichnet beides zusammen ist natürlich der variablen bezeichnen aber ich will hier mal 11:30 hervorheben dass wir vorn immer ein präfix stehen haben und dieses präfix soll aus drei kleinen buchstaben bestehen die auskunft über den typ geben 11:39 zum beispiel schreiben wie rind wenn wir eine variable vom typ intica deklarieren wollen und gehalt beispielsweise oder wir 11:49 schreiben str wenn wir eine variable deklarieren in der einst ring stehen soll beispielsweise str vorname und 11:59 diesen variablen bezeichne gehalt oder vorname und so weiter den wählen wir sinnvoll möglichst auch aussagekräftig gerne 12:09 abgekürzt der beginnt immer mit einem großen buchstaben und wird in der sogenannten kernel case schreibweise wenn sie das wort kämen case seltsam 12:19 finden man sieht hier dass die cs jeweils groß geschrieben sind im deutschen ist dass das binnenmeer das ist glaube ich noch komischer der 12:27 begriff aber wir wollen das so machen camel case schreibweise wir schreiben einen großen anfangsbuchstaben und trennen jeden wortbestandteil dann 12:36 wieder ab durch einen weiteren großbuchstaben gerne abgekürzt geburtsdatum als gerd plz ort für die angabe postleitzahl und 12:47 ort und kreis durch sieht man auch sehr schön was das hier ausdrücken soll das sind beispiele für variablen bezeichne hier fehlt natürlich 12:59 noch das präfix das ist dann noch entsprechend des datendiebs davor zu setzen auf der nächsten folie sehen sie die pre fixe die ich verwenden möchte 13:08 und für intica str fse dringen hatten wir schon benutzt wie oops i lon t für byd auch schon und hier einige beispiele 13:19 sehen sie sich das einmal in ruhe an vielleicht wenn sie programmieren legen sie sich dass daneben oder machen sie sich eine notiz für die gängigen 13:28 datentypen das soll uns als namens konvention für bezeichne dienen und damit können wir jetzt auch sagen warum das hier weniger 13:38 gute bezeichne sind die sind nicht sehr aussagekräftig und man kann erkennt auch nicht welchen datentyp sie haben wenn sie nachgehen 13:46 einem programm code verwendet werden aussagekräftige bezeichnet werden beispielsweise diese byd alter oder sgl betrag man sieht dass es sich um einen 13:56 single handelt und dort um ein weiterer mann weiß auch was darin gespeichert werden soll wir können 14:03 unseren variablen werte und ausdrücke zu weisen das haben wir schon gemacht dazu benutzen wir den led- das schlüsselwort led- und gefolgt von dem war von ihm 14:13 bezeichnen der variable gefolgt vom zuweisung operator und dann steht entweder einen wert kleinen ausdruck beispielsweise so weit alter gleich 20 14:23 der wert 20 wird der variablen beide alter zugewiesen weil das das erste mal ist dass wir der variablen alter einen wert zu weisen ist dass die erstmalige 14:35 zuweisung die hat den fachbegriff initialisierung hier unten sieht man eine weitere initialisierung nämlich sgl betrag wird 14:44 auch initialisiert mit einem ausdruck nämlich mit dem ausdruck byd alter mal 3 der wird zunächst ausgewertet 60 und dann wird er sgl betrag 14:56 zugewiesen das ist die initialisierung in marl hier als eine form der erstmaligen zuweisung dann können wir auch zu greifen nämlich 15:08 lesen indem wir den variablen bezeichne benutzen wir schreiben die back print danach den variablen bezeichne und dann wird der wert der variablen im direct 15:17 bereich ausgegeben wir können noch schreiben oder ändern da zugreifen indem wir erneute zuweisung machen und der variable dann einen 15:26 geänderten wert oder einen neuen ausdruck zu weisen byd alter ist gleich balda +1 hätte also die variable byd alter nun den wert 21 15:39 das hat damit zu tun dass die zuweisung zwei seiten hat die rechte seite die immer erst vollständig ausgewertet wird hier hat byd alter zunächst noch den 15:49 wert 20 von hier oben dann wird 1 addiert 21 und nachdem die rechte seite komplett ausgewertet wurde wird sie der linken zu gewesen byd alter hat dann 15:59 anschließend auch den wert 21 hier unten sieht man eine einfache variante nämlich wir weisen den wert 42 der variablen betrag zu beitrag zu 16:13 da sieht man wie der zugriff funktioniert was können wir hier vielleicht noch lernen nun wenn wir lesen auf die variable zugreifen dann 16:24 ist es so dass unsere variable einen speicherbereich referenziert der extra für sie referent reserviert wurde und dort wird der vorhandene wert gelesen 16:35 und zurückgegeben wenn wir schreibend auf eine variable zugreifen weil wir den zuweisung operator benutzen dann wird zunächst der von der variable 16:45 referenziert speicherbereich ermittelt und dann dort der wert eingetragen können uns also unser variablen bezeichne so vorstellen als wären die 16:55 referenzen verweisen auf adressen in unserem speichern man sieht hier eine variable byd alter repräsentiert also eine speicherzelle die genau ein 17:08 waidspeicher platz reserviert bei long waren es ja vier bei entsprechend verweist unsere variable lng betrag auf einen speicher adresse 17:21 ab der dann vier byd für uns reserviert sind und bei integer ganz ähnlich eine speicher adresse wo 23 serviert sind wenn wir jetzt werte speichern wollen 17:33 sehen sie hier dran auch dass wir nur diesen platz zur verfügung haben wir werden es also nie schaffen werte zu speichern die außerhalb des werte 17:44 bereichs unserer datentypen liegen dass vielleicht noch zur abrundung des zugriffs den wir jetzt aber auch besprochen haben und damit haben wir 17:58 alles kennt was wir über die variable wissen müssen