#13-16 und #21-23 Flashcards

1
Q

Was sind Festkommazahlen?

A

Komma an bestimmer stelleEs kann nur ein beschränkter wertebereich abgedeckt werdenStelle des kommas muss allgemein festgelegt werdenWird nur für spezialanwendungen genutzt

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Was sind Gleitkommazahlen?

A

Beispiel 1.0111101 * 2^3Mit Mantisse und Exponent dargestelltKommastelle muss nicht im vorhinein bekannt seinGroßer darstellungsbereichÜbliche darstellungsweise für kommazahlen im Rechner

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Was ist das IEEE 754/854- Format?

A

Standardformat zur Darstellung von GleitkommazahlenNormalisierte Kodierung, sodass das gedachte Komma immer nach der ersten stelle steht (Verschiebung über Exponent)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

IEEE 754/854 Format: Aus was setzt sich eine Zahl zusammen?(32-Bit Single Precision)

A

1 Bit Vorzeichen -> (0 = positive zahl, 1= negative zahl)8 Bits Biased Exponent -> (bei float 127 + stellen um die bei der normalisierung verschoben wird) , (bei double 1023 +stellen um die bei der normalisierung verschoben wird)23 Bits Mantisse -> (der teil nach der ersten 1 und dem punkt. nachdem die zahl normalisiert wurde)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Nenne die 4 Spezialen Belegungen von Float-Werten

A

Null (vorzeichen bit:0 biased exp bits:0 mantisse bits:0 )Positive unendlichkeit (vorzeichen bit:0 biased exp bits:1 mantisse bits: 0)negative unendlichkeit (vorzeichen bit:1 biased exp bits:1 mantisse bits:0 )keine gültige nummer (not a number) (vorzeichen bit:0 biased exp bits:1 mantisse bits:1 )

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

was ist das problem bei der darstellung von peiodischen binärzahlen als Float?

A

es führt zu einem genauigkeitsverlust

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Was ist die Semantisch Lücke im Von Neumann Rechner?

A

der typ der baiablen kann aus dem speicherinhalt nicht ermittelt werden: gefahr der fehlinterpretation

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Wie sieht der Adressoperator aus und was ist seine funktion?

A

der adressoperator &int zahl;&zahl; liefert die adresse der variable (in der regel nur die erste adresse, wenn die anzahl belegter speicherstellen durch den datentyp bekannt ist)1 speicherstelle = 1 Byte / 8BitLänge des datentyps int; 2 Byte, also 2 speicherstellen

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

was ist ein Zeiger?

A

ein zeiger ist eine variable, die die adresse einer variablen enthältzeiger sind tyspgebundenzeigerdefinition in C;”datentyp” *variablennameBeispieldouble zahl = 12;double *gleitkommazeiger = &zahl;

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

was heißt: zeiger sind typgebunden?

A

das bedeutet, sie müssen einen bestimmten datentyp haben.da zeiger jedoch nur adressen speichern, ist der speicherbedarf aller zieger auf einem system identisch, egal ob zeiger des typs int oder des typs double.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

was ist dereferenzierung und wie sieht der inhaltsoperator aus?

A

der inhaltsoperator ist ein *zugriff auf den Inhalt der speicherstelle, auf die der zeiger verweist.dieser zugriff wird dereferenzierung genannt.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

gib ein beispiel für dereferenzierung an

A

/* Beispiel Zeiger */int main(){short int n, m;short int *zeiger;n = 15;zeiger = &n;m = zeiger;zeiger = 42;}

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

was sind 3 anwendungen von zeigern?

A
  • Werterückgabe bei Funktionen: einer Funktion kann eine Adresse einerVariablen übergeben, in der Sie ein Ergebnis, eine Benutzereingabe, etc.ablegt (siehe schon bekanntes Beispiel scanf), aus Sicht der Funktion ist diesein Zeiger.* Dynamische Speicherverwaltung: wenn bei der Erstellung des Programmsnicht feststeht, wie viel Speicher benötigt wird. Mit speziellen Funktionenkann Speicher angefordert werden, die Startadresse wird in einerZeigervariablen gespeichert.* Hardwarenahe Programmierung: wenn direkt auf feste Speicherstellenzugegriffen werden muss.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

was ist die generelle Definition von Aussagenlogik?

A
  • Logik ist die Lehre von der Folgerichtigkeit des Denkens und Schließens.* Die einfachste Form von Logik ist die Aussagenlogik* Jeder Aussage ist genau einer der zwei Wahrheitswerte „wahr“ und „falsch“zugeordnet.* Der Wahrheitswert einer zusammengesetzten Aussage lässt sich ohnezusätzliche Informationen aus den Wahrheitswerten ihrer Teilaussagenbestimmen.* Ziele der Aussagenlogik:* Analyse der Wahrheitswerte zusammengesetzter Aussagen* Ist eine zusammengesetzte Aussage erfüllbar / allgemeingültig / äquivalent zueiner anderen Aussage?
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Was sind Elementaraussagen?

A

aussagen, denen genau ein wahrheitswert zugeordnet istwahr = w =1falsch =f =1auch atomare Formeln genannt

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Was sind zusammengesetzte Aussagen?

A

verknüfpte elementaraussagen ergeben zusammengesetze aussagenᴧ (und),ᴠ (oder),¬ (nicht)Sind A und B Aussagen, so sind auchA ᴧ B,A ᴠ B,¬ AAussagen und haben entweder den Wahrheitswert „wahr“ oder „falsch“.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
17
Q

Was bedeutet konjunktiv, disjunktiv, Negation, Subjunktion, Bijunktion im Bereich der Aussagenlogik?

A

UND-Operator (Konjunktion)Eine mit dem UND-Operator (ʌ) gebildete Aussage ist nur dann wahr,wenn beide Teilaussagen in A ʌ B wahr sindODER-Operator (Disjunktion)Eine mit dem ODER-Operator (ᴠ) gebildete Aussage ist wahr, wennmindestens eine der Einzelaussagen in A ᴠ B wahr istNicht-Operator (Negation)Eine mit dem Nicht-Operator (¬) gebildete Aussage ¬A ist wahr, wenn dieUrsprungsaussage A falsch ist.zusatz: doppelte verneinung ist eine bejahung¬ ¬ A = AImplikation: wenn → dann (Subjunktion)Ist die Bedingung A (Prämisse) wahr, so muss auch die Folgerung(Konklusion) B wahr sein, damit die Subjunktion A → B wahr ist.* Ist die Bedingung (Prämisse) A falsch, so ist die Subjunktion A → Bunabhängig vom Wahrheitswert von B wahr.* A → B kann durch ¬ A v B ersetzt werden.Äquivalenz: genau dann, wenn (Bijunktion)Zwei Aussagen A und B sind äquivalent, wenn sowohl A B impliziert alsauch B A impliziert.* Die Aussage A ↔ B ist also genau dann wahr, wenn (A → B) ʌ (B → A)wahr ist.* Vereinfacht: A ↔ B ist genau dann wahr, wenn A und B entweder beidewahr oder beide falsch sind.XOR / Exklusives Oder (Antivalenz)Eine mit dem XOR-Operator (⨁) gebildete Aussage ist nur dann wahr,wenn die Einzelaussagen in A ⨁ B unterschiedliche Wahrheitswerte haben.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
18
Q

Wie lautet die Bindungshirarchie der Junktoren?

A
  • ¬ bindet stärker als ʌ (nicht stärker als und)* ʌ bindet stärker als ᴠ (und stärker als oder)* ᴠ bindet stärker als → (oder stärker als Implikation)* → bindet stärker als 㲗 (Implikation stärker als Äquivalenz)* dann folgen die anderen OperatorenBeispiele: ¬ A ʌ B ᴠ C = ¬ A ᴠ B ʌ C =((¬ A) ʌ B) ᴠ C(¬ A) ᴠ (B ʌ C)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
19
Q

Wann ist eine aussagenlogische Formel erfüllbar?

A

wenn es mindestens eine Belegung der variablen gibt, so dass die aussage wahr ist.wenn eine Formel nicht erfüllbar ist, ist sie widerspruchvoll

20
Q

Wie kommt man von Umgangssprache zu einer Aussagenlogischen Struktur?

A
  1. Identifiziere Elementaraussagen (Aussagen, die wahr oder falsch seinkönnen) und ordne ihnen Aussagen-Variablen zu.2. Markiere alle Wörter, welche die Verknüpfungen der Aussagenbeschreiben (z.B. nicht, und, oder).3. Prüfe welche logischen Operatoren den umgangssprachlichenBeschreibungen am besten entsprechen.4. Prüfe, welche Gliederung der Aussage (Klammer-Setzung) der Intentiondes Verfassers am besten entspricht
21
Q

was ist allgemeingültigkeit in der aussagenlogik?

A
  • Eine aussagenlogische Formel heißt allgemeingültig, wenn sie fürjede Belegung der Variablen wahr ergibt.Einfaches Beispiel:Es regnet (A) oder es regnet nicht (¬A).A v ¬A (für alle Belegungen wahr)* Oder: Eine Formel F ist genau dann allgemeingültig,wenn ¬F widerspruchsvoll ist.
22
Q

was heißt Äquivalenz von aussagen im Bereich der Aussagenlogik?

A

Wenn zwei Aussagen für alle Variablenbelegungen dieselben Wahrheitswertebesitzen, nennt man diese Aussagen äquivalent.z. B. A → B und ¬ A v B

23
Q

wie werden wahrheitswerte in C gespeichert?

A

in form von zahlenwertender wert != 0 entspricht wahrder wert 0 entspricht falsch

24
Q

wie funktioniert die if-Anweisung in C?

A

Syntax:if (Ausdruck) { Anweisungsblock1}● Wenn Ausdruck wahr ist, wird Anweisungsblock1 ausgeführt.● Reaktion auf alle andere Ereignisse mit else:if (Ausdruck) { Anweisungsblock1} else { Anweisungsblock2}● Reaktion auf alternative bedingte Ereignisse mit beliebig vielen else if:if (Ausdruck1) { Anweisungsblock1} else if (Ausdruck2) { Anweisungsblock2} else if (Ausdruck3) { Anweisungsblock3 …} else { Anweisungsblock4}● if-Anweisungen werden von oben nach unten ausgeführt.● Wird nur eine Anweisung als Reaktion auf ein if/else/else if-Zweigausgeführt, darf man auf geschweifte Block-Klammern { } verzichten.Dies ist aber schlechter Stil.● Daher: Immer geschweifte Klammern nach if-Anweisungen!

25
was sind die relationalen operatoren und was sind ihre funktionen?
ermöglichen vergleiche zwischen wertenergebnis ist 0 oder 1, also wahr oder falsch (bei wahr wird die if anweisung ausgeführt)if(x == y) { printf("x ist gleich y.\n");}if(x != y) { printf("x ist ungleich y.\n");}if(x >= y) { printf("x ist größer oder gleich y.\n");}Mathematisch C-Operator= == ≠ !=> >≥ >=< <≤ <=Die Operatoren = (Zuweisung) und == (Vergleich) sollten nicht verwechseltwerden.
26
was sind die logischen operatoren und was sind ihre funktionen?
&&, ||, ...
27
was sind operatoren, operanden und ausdrücke?
operatoren dienen zum verknüpfen von operandenz.b. +,*in C gibt es ein, zwei und dreistellige operatorenoperanden sind argumente der operatorenin C; Literale, variablen, funktionsaufrufe oder ausdrückeausdrücke sind kombinationen aus variablen, literalen , operatoren und rückgabewerten von funktionenauswertung eines ausdrucks ergibt einen wert.Beispiel: -c1 + c2 - 5 * (f(j) - 10)
28
auswertungs reihenfolge von operatoren?
Gruppierung (Auswertungsreihenfolge)1. geklammerte Teilausdrücke2. einstellige Postfix-Operatoren3. einstellige Präfix-Operatoren4. mehrstellige Operatoren gemäß Vorrangregeln (z.B. „Punkt vor Strich“)● Assoziativität: Auswertungsreihenfolge bei Operatoren der gleichenVorranggruppe (in C meist linksassoziativ, d.h. von links nach rechts)● Tipp zur Fehlervermeidung: Häufig Klammerung benutzen
29
was sind lvalue, rvalue und seiteneffekte?
lvalue: Ausdruck, dem Wert zugewiesen werden kann (z.B. Variable)rvalue: Ausdruck, dem kein Wert zugewiesen werden kann
30
wie kann man die operatoren in C gruppieren?
Arithmetische Operatoren +, -,*, ...* Zuweisungsoperatoren =, +=, ...* Inkrement- und Dekrement-Operatoren ++, --* Relationale Operatoren ==, !=, ...* Logische Operatoren &&, ||, ...* Bitweise Operatoren &, |, ...* Sonstige Operatoren sizeof ...
31
was sind arithmetische operatoren?
Zweistellig, keine Seiteneffekte● Linksassoziativ, d.h. A + B + C ist gleichbedeutend mit (A + B) + C● Es seien A und B Ausdrücke* Additionsoperator: A + B* Substraktionsoperator: A - B* Multiplikationsoperator: A * B* Divisionsoperator: A / B * Bei Integer-Division wird der Nachkommateil des Ergebnisses abgeschnitten* Restwertoperator: A % B * Nur für ganzzahlige Operanden (char, int) definiert
32
was sind zuweisungsoperatoren?
● Rechtsassoziativ, d.h. A = B = C ist gleichbedeutend mit A = (B = C)● Automatische Konvertierung, wenn die Operatoren von unterschiedlichen,aber kompatiblen Datentypen sind● Kombinationen mit arithmetischer/bitweiser Operation* Additionszuweisung: A += B (entspricht A = A + B)* Substraktionszuweisung: A -= B (entspricht A = A - B)* Weitere: A *= B, A /= B, A %= B, A &= B, A |= B, A <<= B, A >>= B* Vorteil: Effiziente Umsetzung in Maschinensprache möglich
33
Inkrement- und Dekrementoperatoren
● Inkrementoperatoren erhöhen den Wert einer Variablen,Dekrementoperatoren senken ihn.● Beispiel:int k, l, m;k = 5;k++;--k;l = k++;m = --k;wichtig, unterschied ob k++ oder ++k
34
Relationale Operatoren
Ermöglichen Vergleiche zwischen Werten.* Ergebnis ist 0 oder 1.if(x == y) { printf("x ist gleich y.\n");}if(x != y) { printf("x ist ungleich y.\n");}if(x >= y) { printf("x ist größer oder gleich y.\n“);}
35
Logische Operatoren
Ermöglichen Auswertung von logischen Aussagen.* Ergebnis ist 0 und 1int adult = (age > 17);if(adult) { printf("You are an adult.");}if(age > 17) { printf("You are an adult.");}if(age >= 13 && age < 20) { printf("You are a teenager.");}if(age < 13 || age > 19) { printf("You are not a teenager.");}if(!(age >= 13 && age < 20)) { printf("You are not a teenager.");}
36
Bitweise Operatoren
● Bitweise Operatoren arbeiten auf der internen binären Darstellungder Operanden.● Verknüpfung zweier Operanden Bit für Bit:& UND | ODER ^ EXCLUSIV-ODER ~ Einer-Komplement (invertieren)● Frage: Was liefert 10 & 6 ?● Bitweises Verschieben von x um y (Binär-)Stellen nach links(x << y) oder rechts (x >> y), auffüllen mit 0en● x = y << z entspricht rechnerisch x = y * 2z● x = y >> z entspricht rechnerisch x = y / 2z
37
wie funktioniert die bedingte zuweisung?
* Der ?-Operator erlaubt die Auswahl einer Zuweisung anhand vonBedingungen: Bedingung ? Ausdruck bei true : Ausdruck bei false* Zunächst wird die Bedingung ausgewertet. Ist das Ergebnis wahr (≠0), dannwird der erste Ausdruck zurückgegeben, sonst der zweite.ist meistens unübersichtlich, nur bei offensichtlichen bedingungen verwenden
38
Sonstige Operatoren
● Funktionsaufruf: F(X), Aufruf der Funktion F mit Parametern X● Typkonvertierung: (Typ) A, wandelt A in den angegebenenTyp um● Adressoperator: &● Dereferenzierungsoperator: *● Feldindex-Operator: A[B]● Elementauswahloperatoren: A.B, A->B* sizeof: liefert interne Größe einer Variablen oder eines Typs* Beispiel: s = sizeof(float);* Komma-Operator (A, B): wertet die Ausdrücke A und B nacheinander aus undliefert das Ergebnis von B
39
Anweisungen, definition?
* Anweisungen definieren den Programmfluss, sorgen für die grobe Struktureiner Funktion und geben den logischen und funktionalen Unterbau.* Ausdrucksanweisung: Ein Ausdruck wird zu einer Anweisung, indem ;angefügt wird.* Leere Anweisung: ;* Blöcke: Zusammenfassung von Deklarationen und Anweisungen in { }(z.B. in Funktionsdefinitionen). Ein Block gilt als eine Anweisung.* Spezialfall: Block kann leer sein. {}
40
wofür dienen schleifen im allgemeinen?
* Schleifen werden benutzt, um eine Anweisung oder einen Block vonAnweisungen wiederholt auszuführen.* Logische Ausdrücke definieren eine Abbruchbedingung.* Prüfung kann am Anfang oder am Ende der Schleife stattfinden.* Bei jedem Durchlauf wird diese Bedingung untersucht, ist das Ergebnis falsch,wird die Schleife verlassen.* Schleifen ändern die sequentielle Ausführung eines Programms.
41
while schleife
* = „Solange eine Bedingung erfüllt ist, führe ein Block aus.“* Testausdruck wird vor Ausführung der Anweisungen ausgewertet* Ist er falsch, wird mit erstem Befehl nach der Schleife fortgefahren.* Nach der Ausführung der Anweisung(en) wird der Testausdruck erneutgeprüft.* Schleife wird so lange durchlaufen, bis Testausdruck „false“ ergibt.* Der Schleifenrumpf wird unter Umständen nicht ein einziges Mal durchlaufen(abweisende Schleife).Syntax: while (Testausdruck) Anweisung oder Anweisungsblock● Beispiel (Ausgabe der Zahlen 1 bis 10):int i = 1;while (i <= 10) { printf("%d ", i); i++;}● Beispiel (Warten auf Eingabe 'e'):5int i = 1;while (i <= 10) { printf("%d ", i); i++;}int c;while ( (c=getchar()) != 'e' );
42
do-while-Schleife
* = „Führe einen Block aus und wiederhole ihn, solange eine Bedingungerfüllt ist.“* Testausdruck wird nach Ausführung der Anweisungen ausgewertet.* Ist er erfüllt, wird mit erstem Befehl innerhalb der Schleife fortgefahren.* Ist er nicht erfüllt, wird mit dem ersten Befehl hinter der Schleife fortgefahren.* Der Schleifenrumpf wird mindestens einmal durchlaufen(nichtabweisende Schleife).
43
for schleife
* Häufigster Einsatz bei fester Anzahl von Durchläufen.* Besteht aus drei Teilen:* Initialisierungsteil: Legt Startwert der Laufvariablen fest, ggf. Definition Laufvariable(Datentyp). Variable ist nur innerhalb der Schleife gültig.* Bedingungsteil: Definition der Ausführungsbedingung als Boolschen Ausdruck(true = Ausführung, false = Abbruch).* Veränderungsteil: Definition der Veränderung der Laufvariablen nach demSchleifendurchlauf (i.d.R. Inkrementierung oder Dekrementierung)* Testausdruck wird vor Ausführung der Anweisungen ausgewertet.* Ist er nicht erfüllt, wird mit erstem Befehl nach der Schleife fortgefahren.* Der Schleifenrumpf wird u.U. nicht ein einziges Mal durchlaufen.(abweisende Schleife) Syntax: for(Initialisierung; Testausdruck; Veränderung) Anweisung oder Anweisungsblock● Initialisierung, Testausdruck und Veränderung sind optional.● Fehlt der Testausdruck wird wahr angenommen.● Anwendung ist nicht auf das Durchzählen beschränkt, es können beliebigeAusdrücke genutzt werden.for (int i = 1; i <= 10; i++) { printf("%d ", i);}int i, j;for (i = 1, j = 10; i < j; i++, j--) { printf("(%d, %d) ", i, j);}
44
was sind komplexe schleifenköpfe bei for schleifen?
* Initialisierungs- und Veränderungsteil eines Schleifenkopfes können ausmehreren Anweisungen bestehen.* Im Initialisierungsteil können Variablen deklariert werden, die imVeränderungsteil unabhängig voneinander variiert werden.meistens schlechter stil und schwer lesbar
45
beispiel für eine verschachtelung von schleifen?
for(int i = 0; i < 5; i++) { for(int j = 0; j < 5; j++) { printf("%d\t", i*j); } printf("\n");}
46
was sind sprunganweisungen?
break-anwendung in allen schleifen und switch anweisung-springt hinter die schleife/ den switch blockcontinue-anwendung in allen schleifen-springt zum testausdruck, bei der for schleife wird zuvor der veränderungsausdruck ausgeführtreturn-anwendung an jeder posiitonbeendet die aktuelle funktion, rückkehr zum aufrufenden programmteil mit rückgabewert!!! häufiges verwenden von sprunganweisugnen kann zu unübersichtlichen Programmen führensprunganweisungen werden verwendet, um endlosschleifen zu verlassen