PF 02
Grundlagen
Grundlagen
-
- 1 / 29
-
Flashcards
Steuerelement: TextBox
Welche nennenswerten Eigenschaften (properties) hat die TextBox (Txt)?
- Text: als String
- Multiline: Wenn true, dann ist die Eingabe über mehrere Zeilen möglich
- ScollBars: Wenn true, wird Bildlaufliste eingeblendet.
- MaxLength: Einschränkung von Anzahl Zeichen mittels Wert.
- PasswordChar: Blendet Platzhalter ein, wenn Zeichen eingegeben werden. (Verschleierung der Eingabe)
Steuerelement: NumericUpDown
Welche nennenswerten Eigenschaften (properties) hat das NumericUpDown (NumAge)?
- Value: Startwert zur Laufzeit und aktueller Wert zur Laufzeit (auslesen)
- Maximum, Minimum
- Increment: Schrittweite, welcher Value beim Klicken auf Pfeiltasten ändert (bspw. +5)
- DecimalPlaces: Anzahl der Nachkommastellen im Anzeigefeld
Definition Variablen
- Platzhalter für konkrete Werte, ein abstrakter Behälter für einen bestimmten Wert)
- Der Wert wird im Speicher unter einer bestimmten Adresse im Arbeitsspeicher (RAM) abgelegt.
--> durch die Variable muss man sich die Adresse nicht merken - Name der Variable repräsentiert oft den Inhalt
- Hinweis: Deklaration und Initialisation
Definition Deklaration
- Der Variable wird ein Datentyp zugewiesen.
- Sinn: Es regelt, welche Art von Wert gespeichert wird und es wird entsprechend Platz im Speicher reserviert.
Definition Initialisation
- Jede Variable muss vor ihrer Verwendung einen Anfangswert erhalten. Man spricht von der Initialisierung.
Datentyp byte und sbyte?
byte
- .Net-Laufzeittyp: Byte
- Bits: 8
- Wertebereich: 0 ... 28-1 = 255
sbyte
- .Net-Laufzeittyp: SByte
- Bits: 8
- Wertebereich: -128 ... 127
Datentyp short und ushort?
short:
- .Net-Laufzeittyp: Int16
- Bit: 16
- Wertebereich: -215... 215-1
ushort:
- .Net-Laufzeittyp: UInt16
- Bits: 8
- Wertebereich: 0... 216-1 = 65'535
Erläutere den Wertebereich von Datentypen.
Bei ausschliesslich positiven Datentypen:
- 2n-1
Bei negativen Datentypen:
- 1. Bit wird für negative Werte verwendet,
- Negativer Wertebereich: 2n-1
- Positiver Wertebereich: 2n-1-1 --> wegen der Null
Datentyp int und uint?
int:
- .Net-Laufzeittyp: Int32
- Bit: 32
- Wertebereich: -231... 231-1
uint
- .Net-Laufzeittyp: UInt32
- Bits: 32
- Wertebereich: 0... 232-1
Datentyp long und ulong?
long:
- .Net-Laufzeittyp: Int64
- Bit: 64
- Wertebereich: -263... 263-1
ulong
- .Net-Laufzeittyp: UInt64
- Bits: 64
- Wertebereich: 0... 264-1
Datentyp float?
float
- .Net-Laufzeittyp: Single
- Bit: 32
- Wertebereich: 1.4 x 10-45 bis 3.4 x 1038
Datentyp double?
double
- .Net-Laufzeittyp: Double
- Bits: 64
- Wertebereich: 5.0 x 10-324 bis 1.7 x 10308
Datentyp char?
char
- .Net-Laufzeittyp: Char
- Bits: 16
- Wertebereich: Unicode-Zeichen zwischen 0 ... 216-1 = 65535
Datentyp string?
string
- .Net-Laufzeittyp: String
- Bits: pro Zeichen 16 Bits
- Wertebereich: Ca. 231 Unicode-Zeichen
Datentyp bool?
bool
- .Net-Laufzeittyp: Boolean
- Bits: 8
- Wertebereich: true, false
Welche Vorschriften bei der Bezeichnung von Variablen gibt es?
- nur alphanummerische Nummern inkl. _
- einmalige Verwendung
- aussagekräftig
- innerhalb der Methode: beginnt mit einem Kleinbuchstaben
- Camel-Case Darstellung
- keine methodeninternen Schlüsselworte verwenden (vgl. Liste). wenn doch nötig zuvor: _
Wie nennt man die Grossklein-Schreibweise von Variablen?
- Camel-Case Darstellung
Wie geht man vor, wenn eine Variable immer den gleichen Wert haben soll? Nenne ein Beispiel.
- const double PI = 3.141592659;
Erläutere den Unterschied einer globalen und lokalen Variable.
Lokale Variable
- Nur in der entsprechenden Methode sichtbar.
- Lebenszeit endet mit der Abarbeitung der Methode.
- Kann gleichnamige globale Variable "überlagern".
Globale Variable
- In der ganzen Klasse bzw. Objekt sichtbar.
- Aus allen Methoden zugreifbar.
- Lebenszeit endet mit Beendigung des Programms, bzw. bei Zerstörung des Objekts.
Hinweis: mit this kann man innerhalb einer Methode auf die gloable Variable zugreifen, auch wenn sie den gleichen Namen hat wie methodenintern eine Variable.
Datentypen: Erläutere die Typenkompatibilität und Typenkonvertierung und unterscheide dabei implizit und explizit.
Konvertierung
Wenn eine Variable bzw. ein Wert eines bestimmten Typs in einen anderen Typ umgewandelt werden soll, spricht man von Typkonvertierung oder engl. type conversion bzw. type casting. Hierzu verwendet man den "Casting-Operator" bspw. (int).
- implizites type casting:
- Der Compiler übernimmt die Umwandlung des ursprünglichen Typs zum Zieltyp automatisch
- Geht nur von einem grösseren in einen kleineren Wert, resp. von einem ungeauen in einen genauen
- explizites type casting:
- Umwandlung des ursprünglichen Typen in einen Zieltypen der ungenauer ist
- Hierfür verwenden wir die Klasse "Convert" mit der entsprechenden Methode "ToString" etc.
- Hinweis: halte für die Prüfung die Bits vor Augen
Aufgabe A2-1-1/2
- Textbox: Firstname, Nachname
- NumericUpDown: Alter
- Button: Ausgeben, Löschen
Wie sieht der Code für das Label aus?
Ausgeben:
- LblResultat.Text = TxtFirstname.Text + " " + TxtLastname.Text + "Alter: " + Convert.ToString(NumAge.Value);
Löschen:
- TxtFirstname.Text = " ";
Aufgabe A2-1-3
Taschenrechner programmieren
- Zahl 1 + 2: Textbox
- Resultat: Textbox
- Operatoren: Buttons
Bsp. Multiplikation
- TxtResultat.Text = Convert.ToString(Convert.ToInt32(TxtBox1.Text) * Convert.ToInt32(TxtBox2.Text));
- TxtResultat.Text = Convert.ToString(Convert.ToDouble(TxtBox1.Text) / Convert.ToDouble(TxtBox2.Text));
oder
int value1;
int value2;
int result;
value1 = Convert.ToInt32(TxtBox1.Text);
Value2 = Convert.ToInt32 (TxtBox2.Text);
result = value1 + value2;
txtResultat.Text = Convert.ToString(result);
Aufgabe A2-2-2
Welche der folgenden Bezeichner für Variablen sind gültig? (begründe)
Aufgabe A2-2-3
Wo liegen die Fehler in den folgenden Variablenzuweisungen? (begründen)
- const int PI = 3.14159;
- char firstValue = "A";
- double tall = 12,34521;
- sbyte value = 128;
- String firstname='Max';
const int PI = 3.14159; -->Falscher Datentyp, Fliesskommazahl!
char firstValue = "A"; --> Keine Anführungszeichen, sondern Hochkommas
double tall = 12,34521; -> Kein Komma sondern ein Punkt!
sbyte value = 128; --> max. 127!
String firstname='Max'; --> Anführungszeichen werden für den Wert
erwartet, keine Hochkommas.
Aufgabe A2-2-4 (Teil 1)
Welche Aussagen sind richtig?
Aufgabe A2-2-4 (Teil 2)
Welche Aussagen sind richtig?
Aufgabe A2-3-1
Welche dieser Konvertierungen müssen explizit vorgenommen werden? Mit welchem Operator?
- byte -> short
- long -> float
- double - long
- short -> float
- double -> byte
- int -> char
- char -> int
- byte -> short (implizit)
- long -> float (implizit)
- double - long (explizit: long)
- short -> float (implizit)
- double -> byte (explizit: byte)
- int -> char (explizit: char)
- char -> int (implizit)
Aufgabe A2-3-2
Bestimmen Sie den jeweiligen Wert der Konvertierung:
- byte var1 = 128;
sbyte var2 = (sbyte)var1;
- byte var1 = 134;
sbyte var2 = (sbyte)var1;
- ushort var1 = 256;
byte var2 = (byte)var1;
- double var1 = 123.45454;
int var2 = (int)var1;
- -128
1000 0000
- -122
1000 0110
- 0
(0000 0001) 0000 0000
- 123
Komma abgeschnitten.
Aufgabe A2-3-3
Farb-Panel mit RGB-NumericUpDown
Für jeden NumericUpDown analog:
int actValueRed = Convert.ToInt16(NumRed.Value);
int actValueGreen = Convert.ToInt16(NumGreen.Value);
int actValueBlue = Convert.ToInt16(NumBlue.Value);
PanColor.BackColor = Color.FromArgb(actValueRed, actValueGreen, actValueBlue);