Arbeiten mit .NET: C-Sharp/ Grundlagen/ Bestandteile/ Variable: Übungen
| Übung 1 | Definitionen | Zur Lösung |
Welche der folgenden Aussagen sind wahr, welche sind falsch?
- Der Wert eines Objekts wird Variable genannt.
- Durch eine Variable wird eine Stelle im Arbeitsspeicher gekennzeichnet, an der ein Objekt mit seinem Wert gespeichert ist.
- Zur Definition einer Variable gehört immer die Angabe des Datentyps.
- Zur Definition einer Variable gehört immer die Festlegung eines Wertes.
- Ein Objekt unter dem Namen einer Variablen wird erzeugt durch die erstmalige Zuweisung eines Wertes.
- Deklaration und Initialisierung einer Variablen gehören unter C# immer zusammen.
- Mit dem Schlüsselwort var wird eine Variable gekennzeichnet, die ihren Typ zur Laufzeit eines Programms ändern kann.
| Übung 2 | Variable benennen | Zur Lösung |
Welche der folgenden Namen von Variablen sind zulässig und geeignet, welche sind zulässig, aber ungeeignet, und welche sind unzulässig?
3rd_circle _ Adelsprädikat apfel apple b3 button2 customerTablePrenameRow default firstParagraph guitar-music i2 list1 next_step s1 stringNachname x
| Übung 3 | Gültigkeitsbereich und Lebensdauer | Zur Lösung |
Welche der folgenden Aussagen sind wahr, welche sind falsch?
- Eine Variable kann global im gesamten Programm verwendet werden.
- Eine Variable kann global in einer Klasse verwendet werden.
- Eine Variable kann lokal in einer Methode verwendet werden.
- Eine Variable kann eng begrenzt in einer Schleife verwendet werden.
- Alle Variablen können gemeinsam am Anfang eines Programmteils (Klasse, Methode, Block) deklariert werden.
- Alle Variablen können gemeinsam am Ende eines Programmteils (Klasse, Methode, Block) deklariert werden.
- Eine Variable kann mitten in einem Programmteil (Klasse, Methode, Block) deklariert werden.
- Wenn in einem Block verschiedene Variablen mit gleichem Namen zusammentreffen, wird immer die Variable aus dem größeren Bereich verwendet.
- Eine Variable bleibt solange gültig, bis sie explizit für ungültig erklärt wird.
| Übung 4 | Variable verwenden | Zur Lösung |
Welche der folgenden Verwendungen von Variablen sind zulässig, welche sind zwar zulässig, aber ungeeignet oder unvollständig, welche sind unzulässig?
Hinweise: Ungeeignete Bezeichner können Sie ignorieren, diese werden in Übung 2 behandelt. Die Punkte 6–8 beziehen sich auf die Car-Klasse aus dem Einstiegsprogramm.
double speed = 36.0;
length = 1.85
double weight;
double bmi = weight / (length * length);
// berechne die Fakultät von 1, 2, 3...9 for(i3 = 1; i3 < 10; i3 = i3+1) { int factorial = factorial * i3; Console.WriteLine( i3.ToString() + " Fakultät ist " + factorial.ToString() ); }
Console.WriteLine(mycar.speed);
mycar.ShowSignals();
if( mycar.NumberOfSeats = 0 ) Console.WriteLine("Ein Auto ohne Sitze ist kein Auto!");
| Übung 5 | Variable verwenden | Zur Lösung |
Schreiben Sie jeweils ein paar Code-Zeilen für die folgenden Situationen. (Sie beziehen sich auf die Car-Klasse und auf die Beispiele in diesem und im vorigen Kapitel.)
- Notieren Sie bei einem Rechteck Länge und Breite und berechnen Sie Fläche und Umfang.
- Es wird eine Variable für ein weiteres Auto benötigt: Typ "VW Caddy", 1600 cm3, Nummer 1483933.
- Schalten Sie bei diesem Fahrzeug das Warnblinklicht ein.
- Notieren Sie die aktuelle Geschwindigkeit dieses Fahrzeugs an einer neuen Stelle und geben Sie diesen Wert an der Console aus.
- Beschleunigen Sie dieses Fahrzeugs mit einer Abstufung von 6 km/h, bis die zulässige Geschwindigkeit innerorts erreicht oder überschritten ist.
| Lösung zu Übung 1 | Definitionen | Zur Übung |
Die Aussagen 2, 3, 5 sind wahr. Die Aussagen 1, 4, 6, 7 sind falsch.
| Lösung zu Übung 2 | Variable benennen | Zur Übung |
- Folgende Namen sind zulässig und geeignet:
apfel apple customerTablePrenameRow firstParagraph .
- Folgende Namen sind zulässig, aber eher ungeeignet:
- Adelsprädikat – möglichst kein Großbuchstabe am Anfang, keine Umlaute;
- b3 – als Kürzel keine Aussagekraft;
- button2 list1 – der Name beschreibt nicht die Funktion des Buttons bzw. der Liste;
- i2 s1 x – als Kürzel keine Aussagekraft, nur in Sondersituationen akzeptabel: i2 oder x als Schleifenvariable, s1 als String innerhalb eines kleinen Blocks oder einer kurzen Methode
- next_step – als Name einer Variablen eigentlich unproblematisch, entspricht aber nicht den .NET-Namenskonventionen;
- stringNachname – keine ungarische Notation;
- Folgende Namen sind nicht zulässig:
- 3rd_circle – keine Ziffer am Anfang;
- _ – kein einzelner Unterstrich;
- default – keine Schlüsselwörter;
- guitar-music – keine Sonderzeichen (hier: Bindestrich);
| Lösung zu Übung 3 | Gültigkeitsbereich und Lebensdauer | Zur Übung |
Die Aussagen 2, 3, 4, 5, 7 sind wahr. Die Aussagen 1, 6, 8, 9 sind falsch.
| Lösung zu Übung 4 | Variable verwenden | Zur Übung |
- Korrekte Verwendung der Variablen speed.
- Es fehlt das abschließende Semikolon. Die Deklaration von length fehlt ebenfalls; aber die könnte auch schon an einer früheren Stelle erfolgt sein.
- Als Deklaration in Ordnung. Irgendwo später muss die Initialisierung kommen; die ist Voraussetzung dafür, dass die Variable im nächsten Punkt verwendet werden kann.
- Als gleichzeitige Deklaration und Initialisierung der Variablen bmi in Ordnung – vorausgesetzt, dass die beiden Variablen weight und length korrekt vorbereitet wurden.
- Es ist notwendig, dass die Variable i3 deklariert ist. (Es ist möglich, aber nicht üblich, eine Schleifenvariable vorher zu deklarieren.) Die Variable factorial wird bei jedem Schleifendurchgang neu deklariert: Das passt nicht zur Aufgabenstellung, weil bei der Fakultät das vorherige Zwischenergebnis benötigt wird. Außerdem ist es falsch, weil rechts vom Gleichheitszeichen eine noch nicht initialisierte Variable verwendet werden soll. – Richtig wäre es, die Variable factorial vor der Schleife zu deklarieren und mit 1 zu initialisieren.
- Die Variable mycar darf verwendet werden, sofern sie vorher deklariert und initialisiert worden ist. Aber speed ist nur innerhalb der Klasse bekannt. Richtig wäre dieser Aufruf:
Console.WriteLine(mycar.Speed);
- Korrekte Verwendung der Variablen mycar und ihrer (öffentlichen) Methode ShowSignals().
- Die Variable mycar darf verwendet werden, ebenso ihre (öffentliche) Eigenschaft NumberOfSeats. Im Code-Fragment wird dieser Eigenschaft ein Wert zugewiesen (das ist zulässig); aber dann wird abgefragt, ob der Wert dieser Eigenschaft true oder false ist. Eine Zahl soll wahr oder falsch sein? Nein, das ist nicht möglich. Falsch ist also in diesem Zusammenhang die Zuweisung eines Wertes; gemeint ist die logische Abfrage mit dem doppelten Gleichheitszeichen:
if( mycar.NumberOfSeats == 0 ) Console.WriteLine("...");
| Lösung zu Übung 5 | Variable verwenden | Zur Übung |
double length = 15.8, width = 7.3; double area = length * width; double extent = 2*length + 2*width;
Car theCaddy = new Car("VW Caddy", "1600 cm³", 1483933); // oder ein beliebiger anderer Name
theCaddy.SetBothSignals(true);
int currentSpeed = theCaddy.Speed; Console.WriteLine(currentSpeed);
while(theCaddy.Speed < 50) theCaddy.Accelerate(6);