Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Informatik Grundlagen, Seminar 8 WS04 1 Informatik Grundlagen, WS04, Seminar 8 Informatik.

Ähnliche Präsentationen


Präsentation zum Thema: "Informatik Grundlagen, Seminar 8 WS04 1 Informatik Grundlagen, WS04, Seminar 8 Informatik."—  Präsentation transkript:

1 Informatik Grundlagen, Seminar 8 WS04 1 Informatik Grundlagen, WS04, Seminar 8 Informatik

2 Informatik Grundlagen, Seminar 8 WS04 2 Was machen wir heute? Nachbesprechen von Übungsblatt 6 Statische Variablen Modularisierung Übungsblatt 8 - worauf es ankommt.

3 Informatik Grundlagen, Seminar 8 WS04 3 Nachbesprechung Übungsblatt 6 Gute Lösungen, aber Lösungsidee nicht vergessen (für jede Funktion) Bei Funktionen: was macht sie? Zweck der Funktion Parameter Programmierstil beachten! Variablennamen Funktionsnamen Klammersetzung Einrückung

4 Informatik Grundlagen, Seminar 8 WS04 Nachbesprechung Übungsblatt 6 Keine globalen Vars Symbolische Konstanten für Feldlänge verwenden. Diese Konstanten überall verwenden, wo Feldlänge notwendig! Bei Feldern Grenzen abprüfen.

5 Informatik Grundlagen, Seminar 8 WS04 Nachbesprechung Übungsblatt 6 #define ROW 3 #define COLUMN 3 int Matrix[ROW][COLUMN] Nicht: For (r=0; r<3; r++) … Besser: For (r=0; r<ROW; r++) … Algorithmus soll allgemein sein; im Bssp. durch einfache Änderung von ROW wird überall Grösse geändert.

6 Informatik Grundlagen, Seminar 8 WS04 Nachbesprechung Übungsblatt 6 Array Grenzen immer überprüfen! Auch bei strings. Nicht nur auf `\0´ überprüfen, sondern while (string[i]!= `\0´ && i < MAX) Auch bei Kommandozeilenparams argv!

7 Informatik Grundlagen, Seminar 8 WS04 Vorstellung Übungsblatt 6 Aufgabe 2: Hämmerle Aufgabe 3: Sturn oder Masser

8 Informatik Grundlagen, Seminar 8 WS04 8 Nachbesprechung Übungsblatt 6 + 7 Programmierstil Beispiele Klammerung if (someCondition) { printf(condition true\n); } if (someCondition) { printf(condition true\n); } else { printf(condition false\n); } while (someCondition) { printf(looping\n); } int StrLen(char string[]) { return 0; } /* Einfache Bedingung */ /* Verzweigte Bedingung */ /* Schleifen */ /* Funktionen */

9 Informatik Grundlagen, Seminar 8 WS04 9 Nachbesprechung Übungsblatt 6 + 7 Programmierstil Beispiele Klammerung - so nicht: if (someCondition) printf(condition true\n); if (someCondition) printf(condition true\n); else printf(condition false\n); while (someCondition) printf(looping\n); int StrLen(char string[]) { return 0; }

10 Informatik Grundlagen, Seminar 8 WS04 10 Nachbesprechung Übungsblatt 6 + 7 Programmierstil Beispiele Klammerung - nicht so: if (someCondition) printf(condition true\n); if (someCondition) printf(condition true\n); else printf(condition false\n); while (someCondition ) printf(looping\n); int StrLen(char string[]) { return 0; }

11 Informatik Grundlagen, Seminar 8 WS04 11 Nachbesprechung Übungsblatt 6 + 7 Programmierstil Beispiele Variablen-Namen int i = 0; int j = 0; int calcResult = 0; char text[MAX_LENGTH] = {0}; const double cPi = 3.14; static int sIntermediateSum = 0; int gSwitch = 1; int main(int argc, char* argv[]) {... } z.B. Zählvariablen aussagegkräftige Namen Prefix c für Konstanten Prefix s für statische Variablen Prefix g für globale Variablen Beginnen immer mit Kleinbuchstaben!

12 Informatik Grundlagen, Seminar 8 WS04 12 Nachbesprechung Übungsblatt 6 + 7 Programmierstil Beispiele Variablen-Namen: so nicht int K = 0; int L = 0; int iResult = 0; char szText[MAX_LENGTH] = {0}; const double cpi = 3.14; static int intermediatesum = 0; int Switch = 1; int main(int argc, char* argv[]) {... }

13 Informatik Grundlagen, Seminar 8 WS04 13 Nachbesprechung Übungsblatt 6 + 7 Programmierstil Beispiele Variablen-Namen: so nicht int K = 0; int L = 0; int iResult = 0; char szText[MAX_LENGTH] = {0}; const double cpi = 3.14; static int intermediatesum = 0; int Switch = 1; int main(int argc, char* argv[]) {... }

14 Informatik Grundlagen, Seminar 8 WS04 14 Nachbesprechung Übungsblatt 6 + 7 Programmierstil Beispiele Funktions-Namen void PrintString(char str[]) {.... } int IsValidDate(int year, int month, int day) {... /* return 1 if valid, 0 if not valid */... } double SquareRoot(double value) {... } Beginnen immer mit Großbuchstaben! Aussagekräftige Namen verwenden.

15 Informatik Grundlagen, Seminar 8 WS04 15 Nachbesprechung Übungsblatt 6 + 7 Programmierstil Beispiele Funktions-Namen: so nicht int Leapyear(int year) { /* return number of days for february */ } int isvaliddate(int Year, int month, int day) {... /* return 0 if valid, 1 if not valid */... } double dSquareRoot(double value) {... } PrintString(char string[]) {... }

16 Informatik Grundlagen, Seminar 8 WS04 16 Nachbesprechung Übungsblatt 6 + 7 Programmierstil Beispiele Funktions-Namen: so nicht int Leapyear(int year) { /* return number of days for february */ } int isvaliddate(int Year, int month, int day) {... /* return 0 if valid, 1 if not valid */... } double dSquareRoot(double value) {... } PrintString(char string[]) {... }

17 Informatik Grundlagen, Seminar 8 WS04 17 Nachbesprechung Übungsblatt 6 + 7 Programmierstil Beispiele Einrückungen int DoSomeStuff(char str[]) { int i = 0;.... if (someCondition) { printf(%s; str); while (someOtherCondition) { int j = 0;... } }else { printf(wrong value); } return 0; } Leerzeilen sind immer erwünscht wenn Übersichtlichkeit erhöht wird.

18 Informatik Grundlagen, Seminar 8 WS04 18 Nachbesprechung Übungsblatt 6 + 7 Programmierstil Beispiele Einrückungen: so nicht int DoSomeStuff(char str[]) { int i = 0;.... if (someCondition) { printf(%s; str); while (someOtherCondition) { int j = 0;... } }else { printf(wrong value); } return 0; }

19 Informatik Grundlagen, Seminar 8 WS04 19 Nachbesprechung Übungsblatt 6 + 7 Programmierstil Beispiele Einrückungen: so nicht int DoSomeStuff(char str[]) { int i = 0;.... if (someCondition) { printf(%s; str); while (someOtherCondition) { int j = 0;... } }else { printf(wrong value); } return 0; }

20 Informatik Grundlagen, Seminar 8 WS04 20 Statische Variablen Statische Variablen - was ist das? Wofür werden sie eingesetzt? Wann werden sie initialisiert? Details auf Vorlesungsfolien Beispiel LaufendeSumme Funktion bekommt über Parameter int Wert. Diese Params werden laufend aufsummiert. int CalculateSomething(int value) { static int sum = 0;... }

21 Informatik Grundlagen, Seminar 8 WS04 21 Modularisierung Was versteht man unter Modularisierung? Was sind die Vorteile? Unterschiede Deklaration/Definition? Wann nimmt man: #include und wann #include name.h Details siehe Vorlesungsfolien.

22 Informatik Grundlagen, Seminar 8 WS04 Module: Beispiel zum Üben Ändern Sie Ihr Progr. Ü7 Ascii2Int so um, dass sie eine eigene Bibliothek mit der Funktion Ascii2Int implementieren. Wie sieht das header file aus? Wie sieht die Implementierung aus? Wie sieht main aus? (für die ganz schnellen und gwieften: Int2Ascii zusätzlich) Int2Ascii (int zahl; char *string[]);

23 Informatik Grundlagen, Seminar 8 WS04 Zeiger Was ist Zeiger; Initialisierung (NULL); Adressen & *

24 Informatik Grundlagen, Seminar 8 WS04 Fragestunde zur Klausur Angaben genau durchlesen Beginne mit der Aufgabe die du glaubst, zu können Niemals zu lange an einer Aufgabe herumdoktern = (sich aufhalten) Kurze Aufgaben: ca. max. 10 min

25 Informatik Grundlagen, Seminar 8 WS04 25 Übungsblatt 8 Worum geht es? Modularisierung kennen lernen und anwenden Mit Pointern vertraut werden. Worauf sollte geachtet werden: Angaben genau lesen. Testprogramm für Aufgabe 1 nicht vergessen. Programmierrichtlinien einhalten In Zukunft rigoroser Punkteabzug!!!


Herunterladen ppt "Informatik Grundlagen, Seminar 8 WS04 1 Informatik Grundlagen, WS04, Seminar 8 Informatik."

Ähnliche Präsentationen


Google-Anzeigen