1 / 11

Informatik Grundlagen, WS04, Seminar 11 Informatik

Informatik Grundlagen, WS04, Seminar 11 Informatik. 1. Was wir heute besprechen. Evaluation Wiederholung aus der Vorlesung: structs Besprechung und Ausarbeitung von Übungsblatt 10 Nachbesprechung Übungsblatt 9 und 10. 2. Evaluation. Ziel der Evaluation

Download Presentation

Informatik Grundlagen, WS04, Seminar 11 Informatik

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Informatik Grundlagen, WS04, Seminar 11 Informatik 1

  2. Was wir heute besprechen • Evaluation • Wiederholung aus der Vorlesung: structs • Besprechung und Ausarbeitung vonÜbungsblatt 10 • Nachbesprechung Übungsblatt 9 und 10 2

  3. Evaluation • Ziel der Evaluation • Erhalt von Feedback um den Übungsablauf zu verbessern. • Macht mit - das ist DIE Chance. • Ablauf • Jeder bekommt jeweils ein Kärtchen pro Leitfrage. • Auf diese Kärtchen schreibt ihr Anmerkungen/Vorschläge zur jeweiligen Frage • Danach werden die Karten eingesammelt und die Antworten gemeinsam durch diskutiert. • Jede Kritik ist willkommen !!! 3

  4. Evaluation • Leitfragen • Was hat Ihnen in diesem Kurs wirklich geholfen etwas über Programmieren zu lernen?Bitte nennen Sie ein bis zwei Beispiele. • Was/Welches Verhalten des Lehrbeauftragten hat Ihnen das Lernen in diesem Kurs schwer gemacht?Bitte nennen Sie ein bis zwei Beispiele. • Machen Sie bitte ein bis zwei konkreteÄnderungsvorschläge, die der Lehrbeauftragte umsetzen könnte, um Ihren Lernerfolg in diesem Kurs zu unterstützen. 4

  5. Wiederholung Vorlesungstructs • Wofür braucht man strukturierte Datentypen? • Strukturen in C • Schlüsselwort structstruct Point { int x; int y;}; • struct gehört mit zum Datentyp (auch bei Funktionsschnittstellen):struct Point p1; 5

  6. Wiederholung Vorlesungstructs • Verwendung von Strukturen struct Point { int x; int y; }; /* Initialisierung */ struct Point p = {5,10}; /* direkte Zuweisung */ struct Point p2 = p; /* Zugriff auf Komponenten */ printf(”p.x = %d”, p.x); printf(”p.y = %d”, p.y); 6

  7. Wiederholung Vorlesungstructs • Strukturen als Parameter von Funktionen werden als ganzes kopiert. • Daher genau überlegen ob es nicht sinnvoller (oder ohnehin erforderlich) ist, die Parameter mit Call by Reference zu übergeben. • Dynamische Speicherallokierung macht bei Strukturen erstmals richtig Sinn (z.B. bei Grafikanwendung steht nicht von vornherein fest, wieviele Punkte/Rechtecke denn gezeichnet werden). Wichtig: jedem malloc muss unbedingt ein free gegenüber stehen. 7

  8. Wiederholung Vorlesungstructs • Hat man einen Pointer auf eine Struktur gibt es verschiedene Möglichkeiten auf die Komponenten zuzugreifen: • Derefenzierung und Punktoperator • Pfeiloperator. void PrintPoint(struct Point *pPoint) { /* Dereferenzierung und Punktoperator */ printf(”x: %d”, (*pPoint).x); printf(”y: %d”, (*pPoint).y); /* Pfeiloperator Alternative */ printf(”x: %d”, pPoint->x); printf(”y: %d”, pPoint->y); } 8

  9. Wiederholung Vorlesungstructs • Übung: Erstellen Sie eine Struktur für eine Adresse mit relevanten Komponenten, initialisieren Sie diese Struktur und schreiben Sie eine Funktion zur Ausgabe dieser Struktur in zwei Varianten: Struktur wird als Wert übergeben und Struktur wird als Pointer übergeben. Verwenden Sie bei der Pointer-Variante auch die unterschiedlichen Möglichkeiten, um an die Komponenten heran zu kommen. 9

  10. Übungsblatt 10 Tipps... • Einträge für Tabellen (Daten der Personen) können Sie hardcoded eingeben, also z.b. struct Address {...} addresses[30] = { {6912,”Hoerbranz”},...} • Sie dürfen für Eingabe der PLZ scanf oder Funktion GetInt aus Ü9 verwenden. • Achtung: “Verkettung” von Personen und Adressen soll wie in Abbildung geschehen. Keine Pointer von Adr. nach Person (Richtung!) 10

More Related