PF 03
Grundlagen
Grundlagen
Kartei Details
Karten | 30 |
---|---|
Sprache | Deutsch |
Kategorie | Informatik |
Stufe | Andere |
Erstellt / Aktualisiert | 23.12.2020 / 05.03.2021 |
Weblink |
https://card2brain.ch/box/20201223_pf_03
|
Einbinden |
<iframe src="https://card2brain.ch/box/20201223_pf_03/embed" width="780" height="150" scrolling="no" frameborder="0"></iframe>
|
Lernkarteien erstellen oder kopieren
Mit einem Upgrade kannst du unlimitiert Lernkarteien erstellen oder kopieren und viele Zusatzfunktionen mehr nutzen.
Melde dich an, um alle Karten zu sehen.
Was ist eine Enumeration und was weisst du darüber?
- Eine Enumeration ist eine abschliessende Aufzählung.
- Enumerationen erlauben es, konstante Werte bzw. unter einem eigenen Datentypen zusammenzufassen.
- Jede einzelne symbolische Konstante der Liste repräsentiert einen Zahlwert.
- Zeichenketten, Abstände oder andere Datentypen sind nicht erlaubt.
- Alle in der Enumeration enthaltenen Datentypen müssen identisch sein.
- Zulässig sind nur Inter-Datentypen byte, sbyte, short, ushort, int, uint, long und ulong.
- Wird der Datentyp bei der Deklaration weggelassen, wird automatisch int definiert.
- Jedem Element ist ein bestimmter Zahlenwert zugewiesen, jedes folgende Element erhält den nächst höheren Wert
- Der bestimmte Zahlenwert eines Elementes kann explizit geändert werden.
- Enumerationen erlauben es, konstante Werte bzw. unter einem eigenen Datentypen zusammenzufassen.
- Ohne Angabe des Wert zum Element würde die Enumeration mit dem Wert 0 beginnen.
enum Bezeichner : Datentyp {
Feld 1 = Wert1,
Feld 2 = Wert2,
...
}
Welcher Datentyp ist quasi eine Enumeration und wieso?
Datentyp bool:
- false = 0
- true = 1
- Differenziere zwischen Operant und Operator und erläutere den Begriff Ausdruck.
- Erkäre zudem den Unterschied zwischen unären und binären Operatoren.
Arithmetischer Operator: +
Hat zwei Funktionalitäten:
- Als Additionsoperator bildet er die Summe zweier Operanden (x + y).
- Als Vorzeichenoperator beschreibt er eine positive Zahl (+x), ist also ein einstelliger (unärer) Operator.
Verkürzte Schreibweise: x += y --> weist x den Wert von x+y zu (analog x = x + y)
Arithmetischer Operator: -
Hat ebenfalls zwei Funktionalitäten:
- Als Subtraktionsoperator eingesetzt, bildet er die Differenz zweier Operanden (x -y).
- Als unärer Vorzeichenoperator beschreibt er eine negative Zahl (-x).
Verkürzte Schreibweise: x -= y --> weist x den Wert von x - y zu. (analog x = x - y)
Arithmetischer Operator: *
Multiplikationsoperator; multipliziert zwei Operanden (x * y)
Verkürzte Schreibweise: x *= y --> weist x den Wert von x* y zu (analog x = x * y)
Arithmetischer Operator: /
- Divisionsoperator; dividiert zwei Operanden (x / y ), behält den Nachkommateil der Division.
- Verkürzte Schreibweise: x /= y --> weist x den Wert von x / y zu (analog x = x / y)
Besonderheit:
- double resultat = 3 / 4;
- dies ergibt 0. Grund:
Das Ergebnis der Division wird vor der endgültigen Zuweisung an resultat zwischengespeichert. Dazu wird Speicherplatz reserviert, der dem Typ des grösstender beiden beteiligten Operanden entspricht, mit der Folge, dass der Dezimalteil des Ergebnisses abgeschnitten wird. Bei der anschliessendenZuweisung an resultatist das Kind bereits in den Brunnen gefallen –das Ergebnis ist falsch. Um das Problem zu lösen, muss einer der beiden Operanden in den gewünschten Zieltyp konvertiert werden. Dabei spielt es keine Rolle, ob es sich um den ersten oder zweiten Operanden handelt.
- double resultat = 3 / (double)4;
oder Eine andere Möglichkeit besteht darin, bereits einen Operanden als Wert, welcher dem Zieltyp entspricht anzugeben.
- double resultat = 3 .0 / 4;
Arithmetischer Operator: % (Modulo)
- Restwertoperator; dividiert zwei Operanden und liefert als Ergebnis den Restwert der Operation (x % y).
- Verkürzte Schreibweise: x %= y --> weist x den Wert von x%y zu (analog x = x % y)
Arithmetischer Operator: ++ (Inkrement)
Erhöht den Inhalt des Operanden um 1.
- Das Ergebnis der Operation ++ x ist der Wert des Operanden nach der Erhöhung.
- Das Ergebnis der Operation x ++ ist der Wert des Operanden vor der Erhöhung.
Arithmetischer Operator: - - (Dekrement)
Verringert den Inhalt des Operanden um 1.
- Das Ergebnis der Operation - -x ist der Wert des Operanden nach der Verringerung.
- Das Ergebnis der Operation x - - ist der Wert des Operanden vor der Verringerung. Für die nächste Laufzeit wird der Variable 1 abgezogen.
Arithmetische Operatoren:
Erläutere die Besonderheit der Division im Hinblick auf die Datentypen.
- Beispiel: double resultat = 3 / 4;
- Problem: Laufzeit reserviert Platz der beiden Operanden in (int). --> ergibt 0 !!!
- Ursache: Resultat wird vor der Zuweisung zwischengespeichert und entspricht immer dem grössten Operandentyp
- Lösung: Einer der beiden Operanden muss in den gewünschten Zieltyp konvertiert werden.
double resultat = 3 / (double) 4 ;
Vergleichsoperatoren: a==b
- a muss identisch mit b sein, ist das so? Wenn ja --> true
Vergleichsoperatoren: a!=b
- a muss ungleich b sein, ist das so? --> wenn ja: true
Vergleichsoperatoren: a>b, a<b
- a muss grösser als b sein, ist das so? Wenn ja --> true
- b muss grösser als a sein, ist das so? WEnn ja --> true
Vergleichsoperatoren: a<=b, a >=b
- a muss kleiner oder gleich b sein, ist das so? Wenn ja --> true
- a muss grösser oder gleich b sein, ist das so? Wenn ja --> true
Logische Operatoren: !
Beispiel: !a
- unärer Negationsoperator oder auch logischer NICHT-Operator (vgl. bitweiser NICHT-Operator)
- Voraussetzung: a entspricht einem booleschen Wert: true oder false
- !a ist immer das Gegenteil:
- wenn a true ist, ist !a false
- wenn a false ist, ist !a true
Logische Operatoren: &
Beispiel: a & b
- Der Output ist ein boolenscher Wert: true oder false
- es werden immer a und b ausgewertet
- a und b müssen true sein, ist das so? Wenn ja --> true
- Verkürzge Schreibweise: x &= y weist x den Wert von x&y zu (analog x = x & y)
Logische Operatoren: |
Beispiel a | b
- Der Output ist ein boolenscher Wert: true oder false
- es werden immer a und b ausgewertet
- a oder b muss true sein, ist das so? Wenn ja --> true
Logische Operatoren: ^
Beispiel: a ^ b
- Xor-Operator
- a und b haben unterschiedliche Werte, ist das so? Wenn ja --> true
- Wird oft als Flag benutzt, resp. Ein- Ausschalter mit Bits
Logische Operatoren: &&
Beispiel: a && b
- And-Operator, 2. Variante
- sowohl a als auch b sind true, ist das so? Wenn ja --> true
- Hinweis: wenn a bereits false wird b nicht mehr ausgewertet
Logische Operatoren: | |
Beispiel: a | | b
- logischer Or-Operator, 2. Variante (Gegenstück zum bitweisen Or-Operator |)
- a oder b ist true, ist das so? Wenn ja --> true
- Hinweis: wenn a bereits true ist, wird b nicht mehr ausgewertet
Bitweise Operatoren: ~
Beispiel: ~a
- bitweiser NICHT-Operator (Hinweis: logischer NICHT-Operator wäre ! mit true/false)
- unärer Operator
- invertiert jedes Bit des Ausdrucks (Einerkomplement)
- quasi das Gegenteil von a --> ändert alle 1 zu 0 und umgekehrt
Bitweise Operatoren: |
Beispiel: x | y
- Or-Verknüpfung oder auch ODER-Verknüpfung
- vgl. logischer Or-Operator (Gegenstück): II --> wird bei true/false verwendet
- Aus x | y resultiert ein Wert, bei dem die korrespondierenden Bits von x und y Or-verknüpft werden.
- Bei jedem Paar ist das Ergebnisbit 0, falls beide Bits 0 sind, ansonsten ist das Ergebnisbit 1.
- Entweder x oder y muss 1 enthalten, dann 1. Wenn beide 0, dann 0.
Beispiel:
0101
0011
0111
Bitweise Operatoren: &
Beispiel: x & y
- bitweises UND resp. AND
- wird bei zwei BItfolgen gleicher Länge angewendet und gibt eine Bitfolge der gleichen Länge zurück
- Bei jedem Paar ist das Ergebnisbit 1, falls beide Bits 1 sind, ansonsten 0.
- Aus x & y resultiert ein Wert, bei dem die korrespondierenden Bits von x und y And-verknüpft werden.
- Verkürzte Schreibweise: x &= y weist x den Wert von x&y zu (analog x = x & y).
Bitweise Operatoren: ^
Beispiel: x ^ y
- Das bitweise exklusive ODER
- Aus x ^ yresultiert ein Wert, bei dem die korrespondierenden Bits von x und y Xor-verknüpft werden.
- Das Ergebnisbit ist 1, falls die zwei Bits unterschiedlich sind, und 0, falls sie gleich sind.
- "entweder x oder y"
- Ein Xor auf einem Bit wird für Ein- Ausschalter verwendet, quasi ein Flag
- Verkürzte Schreibweise: x ^= y weist x den Wert von x^y zu (analog x = x ^ y)
Bitweise Operatoren: <<
Beispiel: x << y
- Shift-Operator
- Aus x << y resultiert ein Wert, der durch die Verschiebung der Bits des ersten Operanden x um die durch im zweiten Operanden y angegebene Zahl nach links entsteht.
- Verkürzte Schreibweise: x <<= y --> weist x den Wert von x<< y zu (analog x = x << y)
00111100 << 2 = 11110000
Bitweise Operatoren: >>
Beispiel: x >> y
- Shift-Operator
- Aus x >> y resultiert ein Wert, der durch die Verschiebung der Bits des ersten Operanden x um die durch im zweiten Operanden y angegebene Zahl nach rechts entsteht.
- x >>= y --> weist x den Wert von x>>y zu (analog x = x >> y)
11110000 >> 2 = 00111100
Aufgabe A3-1-6
Bitrechner mit AND OR und XOR Verknüpfung. WIe gehst du vor?
- globale Variablen byte1 und byte 2
- Bei jedem Change-Num folgenden Code mit entsprechendem Dezimalwert:
byte1 ^= 1;
LblByte1Decimal.Text = Convert.ToString(desc1 + byte1);
- Für die Buttons AND, OR, XOR folgende codes:
string resultDez = Convert.ToString(byte1 & byte2);
string resultBin = Convert.ToString((byte1 & byte2),2);
LblResultDez.Text = desc2 + resultDez;
LblResultBin.Text = desc3 + resultBin;
-
- 1 / 30
-