schule:arrays_und_listen
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende Überarbeitung | ||
schule:arrays_und_listen [2015-12-03 10:24] – [Listen] marco.bakera | schule:arrays_und_listen [2017-04-19 08:39] (aktuell) – Externe Bearbeitung 127.0.0.1 | ||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
+ | ====== Arrays und Listen ====== | ||
+ | |||
+ | Arrays und Listen sind zwei wichtige Datenstrukturen, | ||
+ | |||
+ | ===== Arrays ===== | ||
+ | |||
+ | Gleichartigen Daten können in einem Array zusammengefasst werden. Hierbei werden die Daten in einer Reihe angeordnet und können über eine Nummer (den Index) abgerufen werden. [[http:// | ||
+ | |||
+ | Im Quelltext erkennt man Arrays an den eckigen Klammern hinter dem Datentyp. Sie werden mit '' | ||
+ | |||
+ | <code csharp> | ||
+ | int[] intVars = new int[4]; | ||
+ | string[] strArr = new String[2]; | ||
+ | </ | ||
+ | |||
+ | Allgemein würde man also schreiben: '' | ||
+ | |||
+ | Einzelne Elemente können nun über einen Index gesetzt werden. Achtung: Die Zählung beginnt immer mit 0! Der Index des letzten Elements ist demnach eins kleiner als die Länge des Arrays. Der Index ist immer eine ganze Zahl ('' | ||
+ | |||
+ | <code csharp> | ||
+ | // Index | ||
+ | // v // Inhalt des Arrays | ||
+ | intVars[0] = 5; // 5 0 0 0 | ||
+ | intVars[3] = 7; // 5 0 0 7 | ||
+ | |||
+ | strArr[0] = " | ||
+ | strArr[1] = " | ||
+ | strArr[0] = " | ||
+ | </ | ||
+ | |||
+ | So können wir das Array mit einer Schleife durchlaufen. | ||
+ | |||
+ | <code csharp> | ||
+ | for(int i=0; i<4; i++) | ||
+ | { | ||
+ | Console.WriteLine(" | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | Wenn die Länge des Arrays nicht bekannt ist, kann sie mit '' | ||
+ | |||
+ | <code csharp> | ||
+ | for(int i=0; i< | ||
+ | { | ||
+ | Console.WriteLine(" | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | Eine weitere Möglichkeit, | ||
+ | |||
+ | <code csharp> | ||
+ | foreach(int i in intVars) | ||
+ | { | ||
+ | Console.WriteLine(i + " ist ein Element des Arrays." | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | ===== Listen ===== | ||
+ | |||
+ | Listen sind den Arrays sehr ähnlich. Auch sie speichern Daten des gleichen Typs ab. Jedoch muss ihre Größe nicht zu Beginn feststehen. Sie wachsen dynamisch mit. [[http:// | ||
+ | |||
+ | Beim Erzeugen einer Liste werden die Typen der Elemente der Liste in spitzen statt eckigen Klammern angegeben. So wird eine Liste aus '' | ||
+ | |||
+ | <code csharp> | ||
+ | // Inhalt der Liste | ||
+ | List< | ||
+ | l.Add(3); | ||
+ | l.Add(6); | ||
+ | l.Count; | ||
+ | </ | ||
+ | |||
+ | Einzelne Elemente werden wie bei Arrays abgerufen. | ||
+ | |||
+ | <code csharp> | ||
+ | Console.WriteLine(" | ||
+ | Console.WriteLine(" | ||
+ | </ | ||
+ | |||
+ | Alle Elemente können auch wieder mit einer Schleife ausgegeben werden. Beim Abfragen der Länge wird '' | ||
+ | |||
+ | <code csharp> | ||
+ | for(int i=0; i< | ||
+ | { | ||
+ | Console.WriteLine(" | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | ===== Übungen ===== | ||
+ | |||
+ | ==== Abstimmung ==== | ||
+ | |||
+ | Wir simulieren eine Abstimmung bei " | ||
+ | |||
+ | Schreiben Sie ein Programm, in dem der Benutzer zunächst die Anzahl an Sängern und anschließend für jeden Sänger die Anzahl an Anrufen eingeben muss. Speichern Sie die Daten in einem geeigneten Array ab. Anschließend soll das Ergebnis der Abstimmung in Form eines Balkendiagramms auf den Bildschirm ausgegeben werden. Und zwar sollen entsprechend der prozentualen Verteilung der Telefonanrufe jeweils Balken aus *-Zeichen (100 % entsprechen dabei 100 *-Zeichen) sowie anschließend der absolute Wert der Telefonanrufe auf den Bildschirm ausgegeben werden. | ||
+ | |||
+ | Beispiel für einen Programmablauf (Eingaben stehen in <>): | ||
+ | < | ||
+ | Anzahl der Saenger (> 0): <4> | ||
+ | Anrufe für Saenger 1 (>= 0): <50> | ||
+ | Anrufe für Saenger 2 (>= 0): <50> | ||
+ | Anrufe für Saenger 3 (>= 0): <40> | ||
+ | Anrufe für Saenger 4 (>= 0): <60> | ||
+ | |||
+ | Abstimmungsergebnis: | ||
+ | ************************* 50 | ||
+ | ************************* 50 | ||
+ | ******************** 40 | ||
+ | ****************************** 60 | ||
+ | </ | ||
+ | |||
+ | ==== Enthalten ==== | ||
+ | |||
+ | Schreiben Sie eine Methode '' | ||
+ | |||
+ | |||
+ | ==== Gleichheit prüfen ==== | ||
+ | |||
+ | Schreiben Sie eine Methode '' | ||
+ | |||
+ | <code csharp> | ||
+ | using System; | ||
+ | |||
+ | namespace Test | ||
+ | { | ||
+ | class Testklasse | ||
+ | { | ||
+ | static void Main() | ||
+ | { | ||
+ | double[] arr1; | ||
+ | double[] arr2; | ||
+ | |||
+ | arr1 = new double[] { 1.0, 2, -1 }; | ||
+ | arr2 = new double[] { 1.0, 2, -1 }; | ||
+ | |||
+ | Console.WriteLine(sindGleich(arr1, | ||
+ | |||
+ | arr1 = new double[] { 1.0, 2, -1, 5 }; | ||
+ | arr2 = new double[] { 1.0, 2, -1 }; | ||
+ | |||
+ | Console.WriteLine(sindGleich(arr1, | ||
+ | |||
+ | arr1 = new double[] { 1.0, 2, -1, 5 }; | ||
+ | arr2 = new double[] { 1.0, 2, -1, 6 }; | ||
+ | |||
+ | Console.WriteLine(sindGleich(arr1, | ||
+ | |||
+ | } | ||
+ | |||
+ | static bool sindGleich(double[] arr1, double[] arr2) | ||
+ | { | ||
+ | // Quelltext hier ergänzen | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | ==== Sieb des Eratosthenes ==== | ||
+ | |||
+ | Mit Hilfe des [[wpde> | ||
+ | |||
+ | > Zunächst werden alle Zahlen 2, 3, 4, ... bis zu einem Maximalwert aufgeschrieben. Die zunächst unmarkierten Zahlen sind mögliche Primzahlen. Die kleinste unmarkierte Zahl ist immer eine Primzahl. Nachdem eine Primzahl gefunden wurde, werden alle Vielfachen dieser Primzahl markiert. Man bestimmt die nächstgrößere nicht markierte Zahl. Diese wird dementsprechend als Primzahl ausgegeben. Man streicht wieder alle Vielfachen und führt das Verfahren fort, bis man am Ende der Liste angekommen ist. Im Verlauf des Verfahren werden alle Primzahlen ausgegeben. | ||
+ | |||
+ | - Probiere den Algorithmus zunächst auf einem Blatt Papier mit einem Sieb bis zur Zahl 20 aus.((Auf der [[http:// | ||
+ | - Entwickle ein Programm, das nach Eingabe einer Zahl alle Primzahlen bis zur eingegebenen Zahl ausgibt. | ||
+ | |||
+ | ==== Zentrieren ==== | ||
+ | |||
+ | Schreibe eine Methode '' | ||
+ | |||
+ | < | ||
+ | cat | ||
+ | zebra | ||
+ | elephant | ||
+ | egg | ||
+ | </ | ||
+ | |||
+ | Verwende den folgenden Quelltext als Vorlage. | ||
+ | |||
+ | <code csharp> | ||
+ | using System; | ||
+ | |||
+ | namespace Zentrieren | ||
+ | { | ||
+ | class MainClass | ||
+ | { | ||
+ | public static void Main(string[] args) | ||
+ | { | ||
+ | string[] arrAnimals = {" | ||
+ | center(arrAnimals); | ||
+ | } | ||
+ | |||
+ | public static void center(string[] arrStrings) | ||
+ | { | ||
+ | // Quelltext hier einfügen | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | ==== Zahlen sortieren ==== | ||
+ | |||
+ | Der Benutzer kann fünf Zahlen eingeben. Anschließend werden die Zahlen in aufsteigender Reihenfolge ausgeben. | ||
+ | |||
+ | Hinweis: Schaue dir den Artikel zu [[wpde> | ||
+ | |||
+ | ---- | ||
+ | |||
+ | [[privat: | ||