Wiederholung C-Programmierung

Ähnliche Dokumente
Wiederholung C-Programmierung

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

Kapitel 8. Adressen und Zeiger

Praktikum Ingenieurinformatik. Termin 5. Felder (Vektoren, Arrays), verschachtelte Schleifen

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

Praktikum Ingenieurinformatik. Termin 6. Matrizen, Zeichenketten, Zeiger

Ingenieurinformatik Diplom-FA (C-Programmierung)

Kapitel 6. Funktionen

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

Objektorientierte Programmierung

Kapitel 7. Zusammengesetzte Datentypen, Vektoren, Zeichenketten

2D-Arrays. InE1 M. Thaler, Office TG ZHAW, M. Thaler, K. Rege, G. Burkert

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.

*** Viel Erfolg! ***

Grundlagen der Programmierung

float *point(float a, float b); // Funktionsdeklaration Zeiger als Funktionswert // point liefert als Wert die Adresse seines Ergebnisses

Prüfung Algorithmen und Datenstrukturen, WS 2008/2009 (97 Punkte, 4 Seiten)

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

einlesen n > 0? Ausgabe Negative Zahl

Arrays (Felder/Vektoren)

Fliesskommazahlen. InE1 M. Thaler, Office TG ZHAW, M. Thaler, K. Rege, G. Burkert

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

Pointer und Arrays. INE1, Montag M. Thaler, Office TG208. ZHAW, M. Thaler, K. Rege, G.

Kapitel 4. Strukturierte Programmierung und Kontrollstrukturen

Kapitel 5. Datentypen und Operatoren

Objektorientierte Programmierung

System-Makro in time.h : #define CLOCKS_PER_SEC 1000 Frühere Makro-Bezeichnung (z.t. noch gebräuchlich): #define CLK_TCK CLOCKS_PER_SEC//aus:time.

Nachname:... Vorname:... MatrNr.:... Klausur PR2

Praxis der Programmierung

2. Programmierung in C

Modellierung und Programmierung

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

Programmierkurs C++ Datenstrukturen Seite 1

Praktikum Ingenieurinformatik. Termin 5. Felder, Kurvendarstellung mit Excel

1. Aufgabe (6 Punkte)

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

Hinweise zur Prüfung Programmieren WS0304 Seite 1. Schreiben Sie folgende For-Schleife in eine äquivalente While-Schleife um.

2. Programmierung in C

Einführung in die Programmiersprache C

1.6 Programmstrukturen/Abweisende Schleife

HMExcel Stand:

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

C-Crashkurs. Praktikum Systemmanagement und Sicherheit

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

Strukturen in C. Strukturen stellen eine Zusammenfassung von Datenelementen unterschiedlichen Typs unter einem Namen dar.

Praktikum 2: Erste C Programme, Kommandozeileneingabe

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

Wiederholungen / Schleifen

Übungspaket 14 Eindimensionale Arrays

Organisatorisches. Übungsleiter: Karsten Otto Homepage: Aufgaben

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