Jetzt kannst du eigentlich alle Grundlegenden Dinge. Alles was jetzt kommt, macht den Code kürzer, übersichtlicher und einfacher.
Arrays dienen dazu, zusammengehörige Variablen gleichen Typs zusammenzufassen. Hier die Definierung und Initialisierung eines Arrays:
Grundsätzlich ist es so, dass ein Array einen Datentyp und einen Namen hat. Danach folgt allerdings eine öffnende eckige Klammer '[' die Anzahl der „Elemente“, welche dieses Array hat, eine schließende eckige Klammer ']', ein '=', eine öffnende geschweifte Klammer '{' und jetzt werden hier den einzelnen „Untervariablen“ hier Werte zugewiesen. Zum Schluss folgt die schließende geschweifte Klammer '}'. Jede Variable ist zur nächsten durch ein Komma ',' getrennt.
Dann machst du das Semikolon ';' direkt nach der schließenden geschweiften Klammer '}'.
Bei der Initialisierung des Arrays musst du entweder allen „Untervariablen“ einen Wert zuweisen oder gar keiner.
Du musst unbedingt darauf achten, das alle „Untervariablen“ des Arrays den selben Datentyp haben! Verschiedenen Datentypen sind nicht erlaubt!
Jetzt weißt du zwar, wie man ein Array Definiert und Initialisiert, aber nicht wie man daraus ließt oder gar schreibt. Zuerst das Lesen:
Alles funktioniert so wie bei jeder anderen Variablen auch, nur das man bei einem Array zuerst den Namen des Arrays und in den in den eckigen Klammern '[ ]' dann die wievielte Element ausgelesen werden soll. An dieser Stelle musst du ganz besonders aufpassen! Das für den Menschen erste Element, in der Reihe der Element, ist für den Computer das nullte. Das heißt hier musst du immer bei 0 anfangen zu zählen! Deshalb ist in diesem Fall auch das fünfte und nicht das sechste Element das letzte.
Aber nun zum Schreiben in ein Array:
Eine Zuweisung, wie bei jeder anderen Variablen auch. Nur das wie beim lesen auch in den eckigen Klammern '[ ]' das Element angegeben wird, in welches geschrieben wird. Auch hier ist das erste Element wieder das nullte!
Grundsätzlich solltest du beim Lesen, sowie beim Schreiben in ein Array darauf achten, dass du nicht in undefinierte Elemente schreibst bzw. ließt. Das kann (bzw. wird in den meisten Fällen) einen Programmabsturz zur Folge haben!
Für diese Aufgabe, brauchst du 4 neue Funktion. Die erste heißt 'rand()'. Sie liefert eine Zufallszahl. Doch bevor du 'rand()' ausführst, musst du mit der Funktion 'srand()' der 'rand()'-Funktion einen neuen Startwert zuweisen, weil 'rand()' sonst immer die selben „Zufallszahlen“ in der selben Reihenfolge zurück gibt. 'srand()' musst du dann allerdings immer eine andere (Ganz-)zahl übergeben. Das erreichst du, indem du 'srand()' einfach den Rückgabewert der Funktion 'timeGetTime()' übergibst. Diese Funktion gibt die Laufzeit des Betriebssystems seit dem letzten Start in Millisekunden zurück. Für 'rand()' musst du den Header 'stdlib.h' (standard library) und für für 'timeGetTime()' 'windows.h' einbinden.
Weil das jetzt vielleicht ein bisschen viel Text ohne Beispielcode war, hier ein Programm, dass immer eine Zufallszahl zwischen 0 und 9 ausgibt:
Hier ist sie nun, deine Aufgabe zu eindimensionalen Arrays: Schreibe ein Programm, das dir mithilfe der rand-Funktion 6 Lottozahlen generiert, in ein Array speichert und dann aus dem Array wieder ausließt und ausgibt. Das speichern der Zufallszahlen macht an dieser Stelle wenig Sinn, man könnte sie auch einfach gleich ausgeben. Den Sinn erhält die Sache in Aufgabe 2. Tipp: for-Schleife(n) nicht vergessen ;). Lösung:
Du hast vielleicht gemerkt, dass das Programm aus Aufgabe 1 manchmal zwei Mal oder öfters die selbe Lottozahl zurück gibt. Das kannst du so nicht auf dir sitzen lassen und deshalb darfst du den Code von Aufgabe 1 so erweitern, das eine Überprüfung stattfindet, ob die Zahl schon mal gezogen wurde, bevor dem Element die Zufallszahl zugewiesen wird. Lösung:
Ein Array kann nicht nur eine dimension an Elementen enthalten, sondern es sich auch mehrere Dimensionen möglich. Jede Dimension hat allerdings die selbe Anzahl an Elementen. Definirung und Initialisierung eines zweidimensinalen Arrays:
Wie du vielleicht siehst, gibt es hier 2 Diemnsionen, die erste Dimension hat 3 Elemente, wobei jedes Element wieder ein Array ist und 2 Elemente enthält
Lesen und Schreiben funktioniert genauso wie bei den eindimensionalen Arrays. Beispiel um den Wert "9" aus dem oben gezeigten zweidimensionalen Array auszulesen:
Das heißt, auch hier wird bei 0 angefangen zu zählen.
Ein Beispiel für ein dreidimensionales Array:
Theoretisch kannst du das mit den Dimensionen bis unendlich treiben, allerdings wird es für uns Menschen mit der vierten Dimension schwer. Das hängt damit zusammen, dass wir auch nur in drei Dimensionen sehen können.
Für diese Aufgabe, brauchst du etwas, das dir den Curser in der Konsole an eine bestimmte Stelle setzt, das du dort etwas ausgeben kannst. Dazu kopierst du dir einfach diesen Code zwischen die includes und 'int main ()':
Mehr dazu in einem späteren Teil, in welchem ich Unterprogramme erklären werde. Jetzt kannst du, indem du in deinem Code 'gotoxy(X,Y);' schreibst anstelle des X und Y einen Wert (bzw. eine Variable/Array) eintragen und der Curser wird an diese Position gesetzt. 0,0 liegt links oben in der Ecke. 79,24 rechts unten in der Ecke. Das heißt die Konsole ist 80 Zeichen breit und 25 Zeichen hoch.
Jetzt sollst du aus diesem zweidimensionalen Array die x und y Position auslesen, den Curser an diese Stelle Positionieren und an dieser Stelle ein Zeichen deiner Wahl ausgeben:
Lösung:
© by Sascha "Brügä" Brügmann