Wiederholung C-Programmierung

Ähnliche Dokumente
Wiederholung C-Programmierung

Ingenieurinformatik Diplom-FA (Teil 2, C-Programmierung)

Kapitel 8. Adressen und Zeiger

Hochschule München, FK 03 FA WS 2012/13. Ingenieurinformatik

Wiederholung C-Programmierung

Hochschule München, FK 03 FA SS Ingenieurinformatik

*** Viel Erfolg! ***

*** Viel Erfolg! ***

FH München, FB 03 FA WS 06/07. Ingenieurinformatik. Name Vorname Matrikelnummer Sem.Gr.: Hörsaal Platz

Ingenieurinformatik Diplom-FA (C-Programmierung)

Praktikum Ingenieurinformatik. Termin 2. Verzweigungen (if-else), printf und scanf, while-schleife

Praktikum Ingenieurinformatik. Termin 2a. Schleifen und Verzweigungen in C und mit MATLAB

Hochschule München, FK 03 FA WS 2010/11. Ingenieurinformatik

*** Viel Erfolg!!! ***

Hochschule München, FK 03 FA SS Ingenieurinformatik

Kapitel 7. Zusammengesetzte Datentypen, Vektoren, Zeichenketten

Teil 5: Zeiger, Felder, Zeichenketten Gliederung

Verwendung Vereinbarung Wert einer Funktion Aufruf einer Funktion Parameter Rekursion. Programmieren in C

Programmiersprachen Einführung in C

Praktikum Ingenieurinformatik. Termin 4. Funktionen, numerische Integration

Praktikum Ingenieurinformatik. Termin 6. Mehrdimensionale Felder, Kurvendarstellung mit Excel

FH Ravensburg-Weingarten Schriftlich Prüfung Programmieren

Vom Algorithmus zum Programm

Objektorientierte Programmierung

Klausur. 2. Aufgabe (3 Punkte) Ergänzen Sie die leeren Zellen derart, dass sich in einer Zeile die selben Zahlenwerte ergeben.

Grundlagen der Programmierung

Praktikum Ingenieurinformatik. Termin 3. Fehlervermeidung, Fehlersuche, Schleifen (while, do-while, for)

einlesen n > 0? Ausgabe Negative Zahl

Arrays (Felder/Vektoren)

Programmiersprachen Einführung in C

Propädeutikum. Dipl.-Inf. Frank Güttler

Viel Erfolg bei der Bearbeitung der Aufgaben!

Teil 5: Felder, Zeiger, Zeigerarithmetik Gliederung

Kapitel 4. Strukturierte Programmierung und Kontrollstrukturen

Kapitel 5. Datentypen und Operatoren

Objektorientierte Programmierung

2. Programmierung in C

Programmierung mit C Modularisierung von Programmen. Präprozessor-Anweisungen nutzen.

Programmierkurs C++ Datenstrukturen Seite 1

Praktikum Ingenieurinformatik. Termin 5. Felder, Kurvendarstellung mit Excel

4. Einfache Programmstrukturen in C Einfache Programmstrukturen in C

Dr. Monika Meiler. Inhalt

2. Aufgabe (3 Punkte) Ergänzen Sie die leeren Zellen derart, dass sich in einer Zeile die selben Zahlenwerte ergeben.

Übung 1 (Entwurf von Algorithmen) Beispiellösung

Einführung in C. Alexander Batoulis. 5. Mai Fakutltät IV Technische Universität Berlin

Programmieren in C. Eine Einführung in die Programmiersprache C. Prof. Dr. Nikolaus Wulff

Nachname:... Vorname:... MatrNr.:... Klausur PR2. Erstellen Sie eine Struktur für eine Komplexe Zahl mit den Elementen real und imag vom Typ double.

2. Programmierung in C

Lösung Übungszettel 4

Klausur Programmiersprachen SS 2005

Kurzeinführung in C99

Labor Software-Entwicklung 1

Lösung Übungszettel 6 Aufgabe 1-4

2. Programmierung in C

Einführung in die Programmiersprache C

1.6 Programmstrukturen/Abweisende Schleife

Programmieren in C. Zeiger auf Funktionen. Prof. Dr. Nikolaus Wulff

Ein- und Ausgabe von Daten

Grundlagen der Programmierung

Funktionen und Arrays in C

Arrays, Zeiger und Funktionen (call by reference)

2. Programmierung in C

Programmieren in C. Burkhard Bunk

Strings (Zeichenketten)

CEN1112 Labor Software-Entwicklung

Programmieren in C. Eine Einführung in die Programmiersprache C. Prof. Dr. Nikolaus Wulff

Funktionen. mehrfach benötigte Programmteile nur einmal zu schreiben und mehrfach aufzurufen

Nachname:... Vorname:... MatrNr.:... Klausur PR2. int main() { char Text[] = "Sehr geehrte Damen und Herren!"; char *tmp=text;

Wiederholungen / Schleifen

Übungspaket 14 Eindimensionale Arrays

Programmieren in C. Funktionen mit Zeigern und Adressen. Prof. Dr. Nikolaus Wulff

Die Programmiersprache C Eine Einführung

Lesen Sie alle Aufgabenstellungen sorgfältig durch, bevor Sie mit der Bearbeitung der ersten Aufgabe beginnen.

Musterlösung: 12. Jgst. 2. Kursarbeit Datum: Fach: Informationsverarbeitung (LK)

Transkript:

1.1. Gliederung Kapitel 1 Wiederholung C-Programmierung Entwicklungsumgebung Qt Creator Ein- und Ausgabe Kontrollstrukturen, Verzweigungen, Schleifen Funktionen, lokale und globale Variablen Felder und Matrizen Zeiger und Adressen Modulare Programmierung Mehrere Quelldateien in einem Projekt Folie 1

1.2. Entwicklungsumgebung Qt Creator Anlegen eines neuen C++-Projekts, zunächst noch ohne Qt: Folie 2

1.3. Entwicklungsumgebung Qt Creator Folie 3

1.4. Entwicklungsumgebung Qt Creator Folie 4

1.5. Entwicklungsumgebung Qt Creator Folie 5

1.6. Entwicklungsumgebung Qt Creator (rechte Maustaste) Wenn die Bearbeitung eines Projekts beendet ist, sollte das Projekt geschlossen werden. Es wird dann nicht mehr in der Projektliste im Qt Creator angezeigt. Folie 6

1.7. Gliederung Kapitel 1 Wiederholung C-Programmierung Entwicklungsumgebung Qt Creator Ein- und Ausgabe Kontrollstrukturen, Verzweigungen, Schleifen Funktionen, lokale und globale Variablen Felder und Matrizen Zeiger und Adressen Modulare Programmierung Mehrere Quelldateien in einem Projekt Folie 7

1.8. Ein- und Ausgabe /* Ein- und Ausgabe in C */ #include <stdio.h> int main(void) int i; float f; double d; char str[100]; printf("int eingeben: " ); scanf("%d", &i ); printf("float eingeben: " ); scanf("%f", &f ); printf("double eingeben: "); scanf("%lf", &d ); printf("string eingeben: "); scanf("%99s", str); printf("\nfolgende Werte wurden eingegeben:\n"); printf("%6d \n%6.1f \n%6.1f\n%s\n\n", i, f, d, str); return 0; Download-Tipp: Hilfsblatt zum printf-befehl auf http://kuepper.userweb.mwn.de/ Folie 8

1.9. Ein- und Ausgabe Ausgabeformat festlegen, Nachkommastellen, tabellarische Ausgabe: printf(" Formatbeschreibung ", Liste, auszugebender, Variablen); /* Kosinustabelle ausgeben */ #include <stdio.h> #include <math.h> int main(void) double x, y; printf("kosinus-tabelle\n\n"); printf( ); for(x = -M_PI; x <= M_PI; x += M_PI/4) y = cos(x); printf( ); return 0;... (1)?? (2)?? Folie 9

1.10. Gliederung Kapitel 1 Wiederholung C-Programmierung Entwicklungsumgebung Qt Creator Ein- und Ausgabe Kontrollstrukturen, Verzweigungen, Schleifen Funktionen, lokale und globale Variablen Felder und Matrizen Zeiger und Adressen Modulare Programmierung Mehrere Quelldateien in einem Projekt Folie 10

1.11. Kontrollstrukturen Aufgabe: Zeichnen Sie ein Struktogramm, welches den genauen Ablauf der Funktion main beschreibt. /* 5x5-Einheitsmatrix ausgeben */ #define DIM 5 #include <stdio.h> int main(void) int row, col, value; for(row = 0; row < DIM; ++row) for(col = 0; col < DIM; ++col) value = 0; if(row == col) value = 1; printf("%4d", value); printf("\n"); return 0; Internet-Tipp: Der deutsche Wikipedia- Artikel zu Struktogrammen ist sehr gut! Folie 11

1.12. Kontrollstrukturen Klausuraufgabe Ingenieurinformatik 1, WS 2014/15 Das Struktogramm auf der folgenden Seite zeigt den Ablauf eines Programms zur Simulation von elektronischen Kippschwingungen. Hinweis: In der Datei chart.h befinden sich alle für den Aufruf der Funktionen chart_lineto und chart_show notwendigen Prototypen und symbolischen Konstanten. /* Simulation von Kippschwingungen */ #include "chart.h" int main(void) int zustand; double t, uc;... Folie 12

1.13. Kontrollstrukturen Folie 13

1.14. Gliederung Kapitel 1 Wiederholung C-Programmierung Entwicklungsumgebung Qt Creator Ein- und Ausgabe Kontrollstrukturen, Verzweigungen, Schleifen Funktionen, lokale und globale Variablen Felder und Matrizen Zeiger und Adressen Modulare Programmierung Mehrere Quelldateien in einem Projekt Folie 14

1.15. Funktionen, lokale und globale Variablen /* Quadratische Gleichung */ #include <stdio.h> #include <math.h> double x1, x2; /* glob. Variablen! */ int qsolve(double p, double q); int main(void) double p, q; printf("x^2 + px + q = 0\n\n"); printf("p eingeben: "); scanf("%lf", &p); printf("q eingeben: "); scanf("%lf", &q); Aufgabe: Fügen Sie die Definition der Funktion qsolve zum Lösen quadratischer Gleichungen zum Quelltext hinzu. if(qsolve(p, q)!= 0) printf("reelle Nullstellen bei %.2f und %.2f\n\n", x1, x2); else printf("keine reellen Nullstellen!\n\n"); return 0; Folie 15

1.16. Gliederung Kapitel 1 Wiederholung C-Programmierung Entwicklungsumgebung Qt Creator Ein- und Ausgabe Kontrollstrukturen, Verzweigungen, Schleifen Funktionen, lokale und globale Variablen Felder und Matrizen Zeiger und Adressen Modulare Programmierung Mehrere Quelldateien in einem Projekt Folie 16

1.17. Felder und Matrizen, Zeiger Klausuraufgabe Ingenieurinformatik 1, WS 2014/15 Das folgende Programm soll das Kreuzprodukt ( Vektorprodukt ) der Vektoren v1 und v2 berechnen und im Vektor erg speichern. Ergänzen Sie den abgebildeten C-Quelltext. #include <stdio.h> int main(void) double v1[3], v2[3], erg[3]; printf("vektor 1:\n"); scanf("%lf", &v1[0]); scanf("%lf", &v1[1]); scanf("%lf", &v1[2]); printf("vektor 2:\n"); scanf("%lf", &v2[0]); scanf("%lf", &v2[1]); scanf("%lf", &v2[2]); /* Kreuzprodukt berechnen und in Vektor "erg" speichern */?? printf("ergebnis: (%f, %f, %f)\n", erg[0], erg[1], erg[2]); return 0; Folie 17

1.18. Felder und Matrizen, Zeiger Klausuraufgabe Ingenieurinformatik 1, WS 2014/15 Das folgende Programm soll alle 100 Elemente der Matrix m mit Zufallszahlen belegen. Die Zufallszahlen sollen im Intervall von 0,25 bis 0,75 liegen. Ergänzen Sie den C-Quelltext! #include <stdlib.h> #include <stdio.h> int main(void) double m[10][10]; /* Matrix mit Zufallszahlen von 0.25 bis 0.75 belegen */?? printf("zufallszahl in Element m[3][3] = %f\n", m[3][3]); printf("zufallszahl in Element m[5][5] = %f\n", m[5][5]); printf("zufallszahl in Element m[7][7] = %f\n", m[7][7]); return 0; Folie 18

1.19. Gliederung Kapitel 1 Wiederholung C-Programmierung Entwicklungsumgebung Qt Creator Ein- und Ausgabe Kontrollstrukturen, Verzweigungen, Schleifen Funktionen, lokale und globale Variablen Felder und Matrizen Zeiger und Adressen Modulare Programmierung Mehrere Quelldateien in einem Projekt Folie 19

1.20. Zeiger und Adressen Fragen: Wie kann man die Adresse im Hauptspeicher des Rechners ermitteln, an der eine bestimmte Variable abgespeichert ist? Wie kann man eine solche Adresse zwischenspeichern? Wie liest man bzw. wie beschreibt man eine Variable, wenn man deren Adresse im Hauptspeicher aber nicht deren Namen kennt? Welche Vorteile bringt dieser direkte Zugriff auf den Hauptspeicher? Mit Zeigern können Funktionen programmiert werden, die mehrere Rückgabewerte (Ergebnisse) an den Aufrufer zurückgeben sollen. Und zwar ohne globale Variablen! Außerdem werden Zeiger benötigt, um Felder (Vektoren, Matrizen, Zeichenketten) zur Weiterverarbeitung an eine Funktion zu übergeben. Folie 20

/* Rückgabe mehrerer Ergebnisse (ohne globale Variablen) */ 1.21. Zeiger und Adressen #include <stdio.h> #include <math.h> int qsolve(double p, double q, double *x1, double *x2); int main(void) double p, q, nst1, nst2; printf("x^2 + px + q = 0\n\n"); printf("p eingeben: "); scanf("%lf", &p); printf("q eingeben: "); scanf("%lf", &q); if(qsolve(p, q, &nst1, &nst2)!= 0) printf("reelle Nullstellen bei %.2f und %.2f\n\n", nst1, nst2); else printf("keine reellen Nullstellen!\n\n"); return 0; int qsolve(double p, double q, double *x1, double *x2) double w = p*p/4.0 - q; if(w < 0) return 0; *x1 = -p/2.0 - sqrt(w); *x2 = -p/2.0 + sqrt(w); return 1; Tipp: Video-Tutorial zu Zeigern http://commons.wikimedia.org/wiki/ File:Pointer_(Zeiger)_in_C.ogv Folie 21

1.22. Zeiger und Adressen /* Vektor an Funktion übergeben */ /* Zeigerschreibweise */ #include <stdio.h> #include <math.h> double laenge3d(double *vec); int main(void) double len, a[3] = 3, 4, 0 ; len = laenge3d(&a[0]); printf("laenge: %.2f\n\n", len); return 0; double laenge3d(double *vec) double quad = 0; int i; for(i = 0; i < 3; ++i) quad += pow( *(vec+i), 2 ); return sqrt(quad); /* Vektor an Funktion übergeben */ /* Vektorschreibweise */ #include <stdio.h> #include <math.h> double laenge3d(double vec[]); int main(void) double len, a[3] = 3, 4, 0 ; len = laenge3d(a); printf("laenge: %.2f\n\n", len); return 0; double laenge3d(double vec[]) double quad = 0; int i; for(i = 0; i < 3; ++i) quad += pow(vec[i], 2); return sqrt(quad); Folie 22

1.23. Gliederung Kapitel 1 Wiederholung C-Programmierung Entwicklungsumgebung Qt Creator Ein- und Ausgabe Kontrollstrukturen, Verzweigungen, Schleifen Funktionen, lokale und globale Variablen siehe Felder und Matrizen Praktikum! Zeiger und Adressen Modulare Programmierung Mehrere Quelldateien in einem Projekt Folie 23