Hochschule Fulda – FB ET Sommersemester 2010

Slides:



Advertisements
Ähnliche Präsentationen
ALP II: Objektorientierte Programmierung Sommersemester 2006
Advertisements

Hochschule Fulda – FB ET Sommersemester 2010
Hochschule Fulda – FB ET Sommersemester 2010
Hochschule Fulda – FB ET Sommersemester 2010
Hochschule Fulda – FB ET Sommersemester 2010
Hochschule Fulda – FB ET Sommersemester 2010
der Universität Oldenburg
EINI-I Einführung in die Informatik für Naturwissenschaftler und Ingenieure I Kapitel 2 Gisbert Dittrich; Claudio Moraga FBI Unido
Universität Dortmund, Lehrstuhl Informatik 1 EINI II Einführung in die Informatik für Naturwissenschaftler und Ingenieure.
Imperative Programmierung
PKJ 2005/1 Stefan Dissmann Zusammenfassung Bisher bekannt: Einfache Variable Feld Vereinbarung Zuweisung Block while-Schleife Bedingte Anweisung (if) Typ.
Hochschule Fulda – FB ET Sommersemester 2010
Struktogramme IF-ELSE FOR – Schleife
Grundkonzepte Java - Klassendefinition
Informatik 1 Übung 2.
Programmieren in C Zeichen-/Stringfunktionen Dynamischer Speicher
Einführung in die Programmierung Wintersemester 2011/12 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund.
EINI-I Einführung in die Informatik für Naturwissenschaftler und Ingenieure I Vorlesung 2 SWS WS 99/00 Gisbert Dittrich FBI Unido
Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) (Vorlesung) Prof. Dr. Günter Rudolph Fachbereich.
Einführung in die Programmierung
Informatik 1 Übung 4.
Programmieren in C Einführung
Purga - Scriptengine Ein Einblick.
Informatik II Grundlagen der Programmierung Programmieren in C Programmstrukturen / Kontrollstrukturen Hochschule Fulda – FB ET Sommersemester 2014.
Programmieren in C Einführung
Programmieren in C Dynamische Listen / Bäume
Programmieren in C Grundlagen C 5
Informatik II Grundlagen der Programmierung Programmieren in C Benutzerinteraktion / Ein- und Ausgabe Hochschule Fulda – FB ET Sommersemester
CuP - Java Sechste Vorlesung Entspricht ungefähr Kapitel 3. 1 – 3
Starten der Entwicklungsumgebung (IDE)
Agenda für heute, 7. April, 2005 Bedingte ProgrammausführungBedingte Programmausführung Algorithmische Grundlagen Vergleichsoperatoren, Wahrheitswerte.
Programmieren in C Grundlagen C 3 Hochschule Fulda – FB AI Wintersemester 2013/14 Peter Klingebiel, HS Fulda, DVZ.
Programmieren in C Grundlagen C 2
BMEVIEEA100 Grundlagen der Programmierung
Vorlesung 3. if else Anweisung if (Ausdruck) Anweisung1 else Anweisung2 Ausdruck hat einen von 0 verschiedenen Wert, so wird Anweisung 1 ausgeführt. Bei.
PHP: Operatoren und Kontrollstrukturen
Informatik II Grundlagen der Programmierung Programmieren in C printf() mit variabler Feldbreite Hochschule Fulda – FB ET Sommersemester 2014
Programmieren in C Einführung
Hochschule Fulda – FB ET Sommersemester 2014
Hochschule Fulda – FB ET Sommersemester 2014
Hochschule Fulda – FB ET Sommersemester 2014
Informatik II Grundlagen der Programmierung Programmieren in C Funktionen, Adressen, Zeiger Hochschule Fulda – FB ET Sommersemester 2014
Informatik II Grundlagen der Programmierung Programmieren in C Ausflug printf() Hochschule Fulda – FB ET Sommersemester 2014
Hochschule Fulda – FB ET Sommersemester 2014
Programmieren in C Annäherung an C
Programmieren in C Grundlagen C 3
Programmieren in C Module und Bibliotheken Hochschule Fulda – FB AI Sommersemester Peter Klingebiel, HS Fulda, DVZ.
Programmieren in C Dateien
Programmieren in C Grundlagen C 2
Programmieren in C Sortieren, Suchen
Hochschule Fulda – FB AI Sommersemester 2014
Programmieren in C "Was ist wichtig?"
Java-Kurs - 4. Übung Hausaufgabe Weitere Kontrollstrukturen
Lernlandkarte OOP (ObjektOrientiertes Programmieren)
Java-Kurs - 4. Übung Hausaufgabe Weitere Kontrollstrukturen
Prüfungsbesprechung Barbara Scheuner Vorlesung: Programmieren und Problemlösen Prof. Hans Hinterberger.
Java-Kurs - 4. Übung Hausaufgabe Weitere Kontrollstrukturen
Programmieren in C Grundlagen C 1 Hochschule Fulda – FB AI Sommersemester Peter Klingebiel, HS Fulda, DVZ.
Fallunterscheidung und Iteration Programmierung I Prof. Dr. Michael Löwe.
Programmieren Hexenwerk oder Zauberspuk? Kinderuniversität Mittwoch, 16. März 2016 Kinder-Akademie Fulda & Hochschule Fulda Peter Klingebiel, HS Fulda,
TRUE und FALSE in C Der Wert 0 steht für FALSE Jeder von 0 verschiedene Wert steht für TRUE FALSE wird als 0 dargestellt TRUE wird als 1 dargestellt.
Programmieren in C Dynamische Listen / Bäume
Programmieren in C Grundlagen C 2
Programmieren in C Grundlagen C 1
Programmieren in C Wie speichert C
Java-Kurs - 4. Übung weitere Kontrollstrukturen
Projektmodul DM Kurze Einführung C-Programmierung
Unterschiedliche Kontrollstrukturen
Syntax: while ( BEDINGUNG ) { // Anweisungen die so lange immer wieder ausgeführt // werden, wie die Bedingung zutrifft } for (INITIALISIERUNG; BEDINGUNG;
Unterschiedliche Arten von Kontrollstrukturen
 Präsentation transkript:

Informatik II Grundlagen der Programmierung Programmieren in C Grundlagen C 4 Hochschule Fulda – FB ET Sommersemester 2010 http://www.rz.hs-fulda.de/et Peter Klingebiel, HS Fulda, DVZ

Anweisungen Anweisung im allgemeinsten Sinn: Programmieren in C - Peter Klingebiel - HS Fulda - DVZ

Ausdrücke 1 Ausdrücke (siehe auch früherer Abschnitt) Definitionen, Zuweisungen, … arithmetische, logische, … Operationen, … Bei Zuweisungen zu beachten: gültiger l-value und r-value l-value (left, location) Variable mit Speicherplatz r-value (right, read) auswertbarer Ausdruck Beispiel: int i, j; i = 9 / 3; /* gültiger l-value */ 45 = j; /* ungültiger l-value */ Programmieren in C - Peter Klingebiel - HS Fulda - DVZ

Ausdrücke 2 Sind die Zuweisungen korrekt? Programmieren in C - Peter Klingebiel - HS Fulda - DVZ

Blöcke 1 Zusammenfassung mehrerer Anweisungen Geklammert mit { } v.a. bei Funktionen, Kontrollstrukturen, aber auch lokale Blöcke, Unterblöcke zur Definition z.B. von lokalen Variablen, insbesondere Hilfsvariablen legt Lebensdauer von Variablen fest legt Sichtbarkeit (Scope) von Variablen fest Bei Namensgleichheit ist Variable des innersten Blocks sichtbar Programmieren in C - Peter Klingebiel - HS Fulda - DVZ

Blöcke 2 Programmieren in C - Peter Klingebiel - HS Fulda - DVZ

Kontrollstrukturen Kontrolle des Programmablaufs abhängig von Ergebnis von Ausdrücken Selektionen / bedingte Anweisungen Einfache Alternative if … else Mehrfache Alternative if … else if … else Fallunterscheidung switch Iterationen / Schleifen Abweisende Schleife while Annehmende Schleife do … while Laufanweisung for Programmieren in C - Peter Klingebiel - HS Fulda - DVZ

Selektionen 1 Bedingte Anweisung if Syntax: if (ausdruck) anweisung Struktogramm Programmieren in C - Peter Klingebiel - HS Fulda - DVZ

Selektionen 2 Bedingte Anweisung if … else if (ausdruck) anweisung else anweisung Programmieren in C - Peter Klingebiel - HS Fulda - DVZ

Selektionen 3 Anweisung kann ein Block sein, bei mehreren Ausdrücken Verwendung von { } notwendig Beispiel: int c, i; ... c = getchar(); if (c != EOF) { if(i < 32) { putchar(c); i++ } } Programmieren in C - Peter Klingebiel - HS Fulda - DVZ

Selektionen 4 Beispiel: Zeichen groß  klein und vice versa int c; ... c = getchar(); if ( (c >= 'A' && c <= 'Z') || (c >= 'a' && c <= 'z')) { if (c >= 'A' && c <= 'Z') c = c – 'A' + 'a'; else c = c – 'a' + 'A'; } ... Programmieren in C - Peter Klingebiel - HS Fulda - DVZ

Selektionen 5 Beispiel: ctoggle.c Programmieren in C - Peter Klingebiel - HS Fulda - DVZ

Selektionen 6 Mehrfache Alternative if…else if…else if (ausdruck_1) anweisung_1 else if(ausdruck_2) anweisung_2 else if(ausdruck_3) anweisung_3 else if (ausdruck_n) anweisung_n ... ... else /* kann auch fehlen */ anweisung_else Programmieren in C - Peter Klingebiel - HS Fulda - DVZ

Selektionen 7 Syntaxdiagramm Programmieren in C - Peter Klingebiel - HS Fulda - DVZ

Selektionen 8 Mehrfache Alternative / Fallunterscheidung switch switch(ausdruck){ case k1: anweisung_1; break; case k2: anweisung_2; break; . . . default: anweisung_default; } Programmieren in C - Peter Klingebiel - HS Fulda - DVZ

Selektionen 9 Syntaxdiagramm Programmieren in C - Peter Klingebiel - HS Fulda - DVZ

Selektionen 10 Beispiel enum color { red, green, blue }; enum color col = red; switch(col) { case red: printf("Farbe: rot\n"); break; case green: printf("Farbe: grün\n"); break; case blue: printf("Farbe: blau\n"); break; default: printf("Farbe: nicht definiert!\n"); } Programmieren in C - Peter Klingebiel - HS Fulda - DVZ

Selektionen 11 Beispiel: lettercount.c Programmieren in C - Peter Klingebiel - HS Fulda - DVZ

Selektionen 12 Beispiel: mydraw3.c Programmieren in C - Peter Klingebiel - HS Fulda - DVZ

Iterationen 1 Abweisende Schleife while, manchmal auch kopfgesteuerte Schleife genannt Syntax while (ausdruck) anweisung Bedingung ausdruck wird vor Ausführung vom Schleifenkörper anweisung geprüft Schleifenkörper wird nur ausgeführt, wenn Bedingung ausdruck wahr ist Programmieren in C - Peter Klingebiel - HS Fulda - DVZ

Iterationen 2 Struktogramm Beispiel: int c; while ((c = getchar()) != EOF){ putchar(c); } Programmieren in C - Peter Klingebiel - HS Fulda - DVZ

Iterationen 3 Nicht-annehmende Schleife do while, machmal auch: fußgesteuerte Schleife Syntax do anweisung while (ausdruck) Bedingung ausdruck wird erst am Ende des Schleifenkörperts geprüft  Schleife wird mindestens einmal durchlaufen Programmieren in C - Peter Klingebiel - HS Fulda - DVZ

Iterationen 4 Struktogramm Beispiel char *s1, *s2; do *s2++ = *s1++; while (*s1); Programmieren in C - Peter Klingebiel - HS Fulda - DVZ

Iterationen 5 Beispiel: stringcopy() mit while -Schleife void stringcopy(char *s1, char *s2) { while(*s1) *s2++ = *s1++; *s2 = '\0'; } Beispiel: void stringcopy mit do-Schleife void stringcopy(char *s1, char *s2) { do *s2++ = *s1++; while(*s1); } Programmieren in C - Peter Klingebiel - HS Fulda - DVZ

Iterationen 6 Laufanweisung oder abweisenden Schleife mit for Syntax for(ausdruck1; ausdruck2; ausdruck3) anweisung Programmieren in C - Peter Klingebiel - HS Fulda - DVZ

Iterationen 7 Beispiel: Summenbildung von 1 … 100 int x, i; x = 0; for (i = 1; i <= 100; i++) x = x + i; eine Alternative int x, i; for (x = 0, i = 1; i <= 100; i++) x += i; Programmieren in C - Peter Klingebiel - HS Fulda - DVZ

Iterationen 8 for-Schleife ist eigentlich eine while-Schleife ausdruck1 while(ausdruck2){ anweisung ausdruck3 } Beispiel: stringcopy() mit for void stringcopy(char *s1, char *s2) { for ( ; *s1; s1++, s2++) *s2 = *s1; *s2 = '\0'; } Programmieren in C - Peter Klingebiel - HS Fulda - DVZ

Iterationen 9 Programmieren in C - Peter Klingebiel - HS Fulda - DVZ

Iterationen 10 Schleifensteuerung break continue bricht die Ausführung der Schleife bzw. switch-Anweisung ab und verlässt diese continue bricht den aktuellen Schleifendurchlauf ab setzt mit Ausführung des Schleifenkopfes fort Endlosschleife while(1) ... for(;;) ... Programmieren in C - Peter Klingebiel - HS Fulda - DVZ

Iterationen 11 Beispiel: eingabegesteuertes Programm int c; while(1) { c = getchar(); if(c = 'Q') break; switch(c) { case 'A': funca(); break; case 'B': funcb(); break; ... } } Programmieren in C - Peter Klingebiel - HS Fulda - DVZ

Funktionen 1 Funktionen sind Programmteile (Blöcke) mit Namen, ggfs. Parametern und ggfs. einem Rückgabewert elementare Bausteine für Programme gliedern umfangreiche Aufgaben in kleinere Komponenten reduzieren Komplexität Wiederverwendung von Komponenten verbergen Details der Implementierung vor anderen Programmteilen (black box) Programmieren in C - Peter Klingebiel - HS Fulda - DVZ

Funktionen 2 dienen der Abstraktion Name und Parameter abstrahieren vom tatsächlichen Programmstück von Darstellung und Verwendung der Daten Verwendung mehrfach benötigte Programmstücke werden einmal erstellt und können durch Angabe des Funktionsnamens aufgerufen werden schrittweise Abstraktion möglich Entwurf top-down oder bottom-up Programmieren in C - Peter Klingebiel - HS Fulda - DVZ

Funktionen 3 Beispiel: Summenbildung int summe(int a, int b) { int sum = 0, i; for(i = a; i <= b; i++) sum += i; return(sum); } Beliebig immer wieder verwendbar: s1 = summe(20, 50); s2 = summe(2, 120); Programmieren in C - Peter Klingebiel - HS Fulda - DVZ

Funktionen 4 Beispiel Programmieren in C - Peter Klingebiel - HS Fulda - DVZ

Funktionen 5 vor Programmstart Programmieren in C - Peter Klingebiel - HS Fulda - DVZ

Funktionen 6 Programmstart: Speicherreservierung Programmieren in C - Peter Klingebiel - HS Fulda - DVZ

Funktionen 7 Kopieren des aktuellen Parameters a Programmieren in C - Peter Klingebiel - HS Fulda - DVZ

Funktionen 8 Aufruf der Funktion quadrat() Programmieren in C - Peter Klingebiel - HS Fulda - DVZ

Funktionen 9 In Funktion quadrat(): berechnen Programmieren in C - Peter Klingebiel - HS Fulda - DVZ

Funktionen 10 Returnwert liefern  in a kopieren Programmieren in C - Peter Klingebiel - HS Fulda - DVZ

Funktionen 11 Rückkehr aus quadrat() nach main() Programmieren in C - Peter Klingebiel - HS Fulda - DVZ

Funktionen 12 Nach Rückkehr Programmieren in C - Peter Klingebiel - HS Fulda - DVZ

Funktionen 13 Funktionsdefinition Schnittstelle (Typ, Name, Parameterliste) Typ Datentyp, der von Funktion zurückgeliefert wird Kann beliebiger Typ sein void  kein Rückgabewert (Prozedur) Name Bezeichner kann beliebig gewählt sein keine Schlüsselworte Programmieren in C - Peter Klingebiel - HS Fulda - DVZ

Funktionen 14 Syntaxdiagramm Beispiel int add(int a, int b) { r = a + b; return(r); } Programmieren in C - Peter Klingebiel - HS Fulda - DVZ

Funktionen 15 Formale Parameter beliebiger Typ, beliebiger Bezeichner formale Parameter  Platzhalter für aktuelle an Funktion übergebene Parameter in Funktion wie vorbelegte lokale Variable Programmieren in C - Peter Klingebiel - HS Fulda - DVZ

Funktionen 16 Beliebiger Block mit {} geklammert Zusätzliche Anweisung return(ausdruck)  Rückkehr aus der Funktion Bei void-Funktion: nur return Nach Rückkehr aus Funktion  Programm wird nach Funktionsaufruf fortgesetzt Typ von Ausdruck und Funktion müssen übereinstimmen Klammern bei return können entfallen Programmieren in C - Peter Klingebiel - HS Fulda - DVZ

Funktionen 17 Aufruf einer Funktion jeder Funktionsaufruf ist ein Ausdruck void-Funktionen können keine Teilausdrücke sein  wie Prozedur in anderen Sprachen Programmieren in C - Peter Klingebiel - HS Fulda - DVZ

Funktionen 18 Die Ausdrücke in der Parameterliste werden vor dem Sprung in die Funktion ausgewertet  aktuelle Parameter Anzahl und Typen der Ausdrücke der aktuellen Parameter müssen mit denen der formalen Parameter in der Definition der Funktion übereinstimmen Die Auswertungsreihenfolge der Parameter-ausdrücke ist nicht festgelegt Programmieren in C - Peter Klingebiel - HS Fulda - DVZ

Funktionen 19 Regeln für Funktionen Funktionen werden global definiert, damit keine lokalen Funktionen möglich main() ist normale Funktion, die aber beim Programmstart automatisch aufgerufen wird Rekursion ist problemlos möglich: int fak(int n) { if(n == 1) return(1); else return(n * fak(n-1)); } Programmieren in C - Peter Klingebiel - HS Fulda - DVZ

Funktionen 20 Funktionen müssen deklariert sein, bevor sie aufgerufen werden können Name, Rückgabetyp und Parametertypen müssen dem Compiler bekannt sein Funktionsdefinition  Funktion ist automatisch deklariert und bekannt sonst Prototype, z.B. in Headerdatei typ name ( liste der parametertypen ); Beispiele: double sin(double); double cos(double x); Programmieren in C - Peter Klingebiel - HS Fulda - DVZ

Funktionen 21 Wdh: Parameterübergabe an Funktionen call by value aktuelle Parameter werden in Speicherbereich der Funktion kopiert in Funktion: Änderungen nur lokal in Funktion call by reference In C nur über Zeiger realisierbar Adresse der Parameter werden in Funktion kopiert Änderungen an Parametern  Änderungen an den originalen Variablen Programmieren in C - Peter Klingebiel - HS Fulda - DVZ