Kochrezepte â Schritt fĂŒr Schritt durch jeden Aufgabentyp
Status: GEPRĂFT. Je Aufgabentyp: Woran erkenne ich die Aufgabe â Schritte â fertige Vorlage â typische Punktekiller. Die vollstĂ€ndig durchgerechneten Beispiele stehen in âĂbungsaufgaben â alle gelöstâ.
Rezept 1: Dezimalzahl in BinÀrzahl
Erkennen: âWandeln Sie ⊠in eine Single-Gleitkommazahl umâ, ânur die ersten beiden Schritteâ.
- Schritt 1 (Vorkomma, Divisionsmethode): fortlaufend durch 2 teilen, Reste notieren, von unten nach oben ablesen. Probe machen.
- Schritt 2 (Nachkomma, Multiplikationsmethode): mit 2 malnehmen; steht vorne eine 1 â notieren und 1 abziehen; von oben nach unten ablesen, bis die geforderte Stellenzahl erreicht ist.
Punktekiller: Reste in falscher Richtung ablesen · die 1 nicht abziehen · âgeht nicht aufâ schreiben statt zu notieren, dass sich das Muster wiederholt. Merkhilfe: Vorkomma = Division = Drehen (untenâoben), Nachkomma = Multiplikation = Mitschreiben (obenâunten).
Rezept 2: Ausdruck auswerten (Ergebnis + Datentyp)
Erkennen: Tabelle mit Spalten âErgebnisâ und âDatentypâ. PrioritĂ€tentabelle liegt bei.
- Klammern zuerst â
**(von rechts!) â Vorzeichen â* / // %â+ ââ Vergleiche/is/inânotâandâor. - Typ: Vergleich/logisch â
bool; irgendwo/oder Kommazahl âfloat; sonstint; Text âstr.
Punktekiller: Datentyp-Spalte vergessen (zĂ€hlt separat!) · bei / â2â statt â2.0â · is mit == verwechseln. Zwischenschritte hinschreiben, nicht im Kopf rechnen.
Rezept 3: âWelche Ausgabe?â
Erkennen: fertiger Code mit # Ausgabe: ____.
- Code Zeile fĂŒr Zeile durchgehen, Inhalt jeder Variablen danebenschreiben.
- Bei
append/update/pop/remove/sort/insert: Ănderung gilt ab da fĂŒr alle folgenden Zeilen. - Ausgabe exakt notieren: Klammern, Hochkommas, Leerzeichen,
dictkeys(...).
Punktekiller: dictkeys(...)-Wrapper weglassen · Slicing-Obergrenze mitzÀhlen · vergessen, dass sort()/append() None liefern.
Rezept 4: Schleife bauen (3 Varianten)
Erkennen: âwhile-Schleife, anschlieĂend for mit range, schlieĂlich List Comprehensionâ.
- Schritt 0: Reihe aus der Beispielausgabe analysieren: erste Zahl? letzte Zahl? Schrittweite oder Bedingung (
% 3 == 0)? - while: Startwert · Bedingung · hochzÀhlen (sonst endlos).
- for:
range(start, stop+1, step). - LC:
[n for n in range(âŠ) if âŠ].
Punktekiller: range hört eins vorher auf, fĂŒr 39 muss der Stop-Wert also 40 sein. âErste 7 Zweierpotenzenâ = range(0, 7), nicht range(0, 8).
Rezept 5: Typ-sichere Funktion
Erkennen: âtyp-sichere Funktionâ, âĂbergabeparameterâ, âzurĂŒckliefernâ.
def name(â 2. Parameter mit Typn: intâ 3. RĂŒckgabetyp) -> int:â 4. Hilfsvariablen vor der Schleife (Startwert!) â 5. Schleife + ZĂ€hler â 6.return, danach ohne EinrĂŒckung Aufruf +print.
Startwert: Summe â 0 · Produkt â 1 · Maximum â liste[0] · ZĂ€hler â 0.
Punktekiller: Funktion nicht aufgerufen · return vergessen · Typ-Hinweise weggelassen.
Rezept 6: Liste / Dictionary anlegen und auswerten
Erkennen: âspeichern Sie in einer Liste / Dictionaryâ, âberechnen Sie den Durchschnittâ.
- Liste sammeln: leere Liste vor der Schleife anlegen, in der Schleife
append. - Dictionary ausgeben:
for key in d: print(key + " " + str(d[key])). - Durchschnitt:
sum(d.values()) / len(d.values()). - hinzufĂŒgen:
d.update({key: value}). - gröĂter Wert mit Namen: zwei Hilfsvariablen (Wert + SchlĂŒssel).
Punktekiller: Liste erst in der Schleife anlegen (wird jedes Mal zurĂŒckgesetzt) · print(key + d[key]) ohne str() · Maximum mit maxi = 0 starten (falsch bei negativen Zahlen).
Rezept 7: Klasse schreiben
Erkennen: âErstellen Sie eine Klasse ⊠Methode zur Initialisierung ⊠erzeugen Sie ein Objektâ.
class Name:(groĂ) â 2.def __init__(self, âŠ):â 3.self.attribut = paramâ 4. weitere Methoden mitselfâ 5. Objekt erzeugen, Methode mitobj.methode().
Punktekiller: self im Kopf vergessen oder beim Aufruf mitgegeben · self.x = x vergessen · Objekt nie erzeugt · Klassenname klein.
Rezept 8: Relationales Datenmodell
Erkennen: âKardinalitĂ€tenâ, ân:m auflösenâ, âFremdschlĂŒsselâ.
- Substantive â Tabellen. 2. Je Tabelle PS
<Name>ID+ Attribute. 3. Jeden Beziehungssatz beidseitig fragen. 4. 1:n â FS in die n-Seite. 5. n:m â Zuordnungstabelle mit beiden FS (zusammengesetzter PS). 6. 1:1 â FS auf einer Seite.
Punktekiller: KardinalitÀt nur einseitig · n:m nicht aufgelöst · FS auf der falschen Seite · PS nicht unterstrichen.
Rezept 9: Fehler finden und korrigieren
Erkennen: nummerierte Codezeilen mit Spalte âKorrekturâ.
Zeile fĂŒr Zeile prĂŒfen: Variable vorher definiert? · Anzahl Argumente? · Doppelpunkt bei Typangabe a: int und am Zeilenende? · Text + Zahl (str() nötig)? · Datentyp passt? · benannte Argumente richtig? · richtige Schleifenart (for vs while)? · Klammern der Datenstruktur? · = vs ==?
Die Benennung des Fehlers reicht (so die offizielle Musterlösung), z. B. âkein câ oder âDoppelpunkt fehltâ. Die richtige Zeile dazuschreiben gibt nie Abzug. Zeilen ohne Fehler bleiben leer.
Rezept 10: Werkzeugkasten
- Eingabe:
int(input("âŠ"))bzw.float(input("âŠ"));input()liefert immer einen String. - Ausgabe:
print(a, b)(Leerzeichen dazwischen) ·print("Text " + str(x))·print(f"âŠ{x}âŠ"). - Runden:
round(5.155, 2)â5.16.int(2.75)â2(schneidet ab!). - math:
import mathâmath.sqrt,math.pow,math.pi,math.log2. - Zufall:
from random import randintârandint(1, 6).