Kontrollstrukturen und Funktionen in C

Werbung
Hochschule Niederrhein Fachbereich 03 Bachelor Informatik Einführung in die Programmierung WS 2015/16 Prof. Dr. Nitsche Prof. Dr. Davids Blatt 5 Kontrollstrukturen und Funktionen in C Lernziele: Vertiefen der Kenntnisse über Operatoren, Kontrollstrukturen und die Verwendung von Funktionen. Aufgabe 1: Quickies: Datentypen in C a) Was sind die elementaren Datentypen für ganzzahlige Werte in C? b) Was versteht man unter expliziter bzw. impliziter Typumwandlung? Nennen Sie jeweils ein Beispiel. Aufgabe 2: Quickies: Operatoren a) Geben Sie die natürliche Abarbeitungsfolge der folgenden Ausdrücke durch entsprechende Klammerung an. j
<
m
&&
n
m
+
n
||
!p
x
*
5
||
5
j
<=
10
&&
<
m
&&
x
m
>=
/
5
n
&&
m
b) Erläutern Sie den Unterschied zwischen dem Pre-­‐ und Postinkrement-­‐Operator. S. 1 / 6 Hochschule Niederrhein Fachbereich 03 Bachelor Informatik Einführung in die Programmierung WS 2015/16 Prof. Dr. Nitsche Prof. Dr. Davids Blatt 5 Aufgabe 3: Kontrollstrukturen: Schleifen Geben Sei folgender Algorithmusschritt: Die Variable i wird auf 10 gesetzt SOLANGE i größer als 0 ist FÜHRE AUS Drucke den Wert i aus i wird dekrementiert ENDE SOLANGE Drucke “Los geht‘s“ aus Übersetzen Sie diesen Algorithmusschritt dreimal in C-­‐Code. 1. Verwenden Sie eine while-­‐Schleife 2. Verwenden Sie eine do-while-­‐Schleife 3. Verwenden Sie eine for-­‐Schleife Zusatz-­‐‑Aufgabe 4: Kontrollstrukturen: Fallunterscheidung Schreiben Sie ein C-­‐Programm, das prüft, ob eine eingegebene Uhrzeit (d.h. Stunde, Minute und Sekunde) korrekt ist. (Optional: Schreiben Sie dafür Testfunktionen wie istStundeKorrekt(...) etc.) Hinweis: Überlegen Sie sich, welche Werte für Stunde sowie Minute und Sekunde zulässig sind. Aufgabe 5: Maximum aus drei Zahlen a) Entwickeln Sie eine C-­‐Funktion max3_1(x, y, z), die das Maximum aus drei übergebenen Zahlen bestimmt und zurückliefert. b) Entwickeln Sie eine C-­‐Funktion max3_2(x, y, z), die das Maximum aus drei übergebenen Zahlen bestimmt und zurückliefert. Verwenden Sie dabei folgende C-­‐
Funktion: int max(int x, int y) {
int ergebnis;
if ( x > y ) {
ergebnis = x;
} else {
ergebnis = y;
}
return ergebnis;
}
c) Schreiben Sie ein C-­‐Hauptprogramm, das mit Hilfe von max3_1(x, y, z) und max3_2(x, y, z) das Maximum aus 0, -­‐5 und 14 bestimmt und am Bildschirm ausgibt. S. 2 / 6 Hochschule Niederrhein Fachbereich 03 Bachelor Informatik Einführung in die Programmierung WS 2015/16 Prof. Dr. Nitsche Prof. Dr. Davids Blatt 5 Aufgabe 6: Modularisierung durch Funktionen Modularisieren Sie das angegebene C-­‐Programm, in dem Sie die Berechnung des Mittelwertes als C-­‐Funktion implementieren. Diese neue C-­‐Funktion soll lediglich die Berechnung (mit Eingabe der einzelnen Zahlen), aber selbst keine Ausgabe-­‐Operationen enthalten. Bitte geben Sie das vollständige C-­‐Programm mit der neuen C-­‐Funktion und der adaptierten main-­‐Funktion an. #include <stdio.h>
// Ermittlung und Ausgabe des
// Mittelwertes einer Zahlenfolge
void main(void) {
int zahl, summe, i;
printf("Mittelwert\n");
summe = 0;
i = 1;
while (i <= 4) {
printf("Zahl = ");
scanf("%d", &zahl);
summe = summe + zahl;
i = i+1;
}
printf("Mittelwert = %d \n", summe/4);
}
Aufgabe 7: Aufruf von Funktionen / Call-­‐‑by-­‐‑Value Geben Sie die Ausgabe des folgenden Programms an: #include <stdio.h>
int fun(int x, int y) {
int res;
x = x + y;
y++;
res = x -­‐ y; printf("fun: x = %d, y = %d, res = %d\n", x, y, res);
return res;
}
void main(void) {
int a = 5, b = 2, ergebnis;
printf("a = %d, b = %d\n", a, b);
ergebnis = fun(a, b);
printf("a = %d, b = %d, ergebnis = %d\n",
a, b, ergebnis);
}
S. 3 / 6 Hochschule Niederrhein Fachbereich 03 Bachelor Informatik Einführung in die Programmierung WS 2015/16 Prof. Dr. Nitsche Prof. Dr. Davids Blatt 5 Aufgabe 8: Funktionen im Zusammenspiel "Reihenentwicklung" a) Entwickeln Sie einen Algorithmus mit Namen natLog1, der bei seinem Aufruf als Parameter ein reelles z mit 0 < z <= 2 übernimmt, den Wert des natürlichen Logarithmus' mit der übernommenen Genauigkeit epsilon berechnet und zurückliefert. Zur Berechnung des natürlichen Logarithmus soll die nachfolgend aufgeführte Reihenddarstellung verwendet werden: , -./
+
ln 1 + 𝑥 = 2
+34(−1) +01 für -­‐1 < x ≤ 1 b) Übersetzen Sie den Algorithmus in eine C-­‐Funktion natLog1(). c) Schreiben sie eine C-­‐Funktion natLog2(), die bei ihrem Aufruf als Parameter ein reelles z mit z > 0 sowie ein reelles epsilon (Genauigkeit) übernimmt, den Wert des natürlichen Logarithmus' mit der übernommenen Genauigkeit epsilon berechnet und zurückliefert. Zur Berechnung des natürlichen Logarithmus wurde die nachfolgend aufgeführte Reihenddarstellung verwendet: ln 𝑥 = 5
,71 5+01
2
für x > 0 +34 5+01 . ,01
d) Entwickeln Sie eine Hauptfunktion in C (main()) : • die den reellen Wert für z einliest und die Genauigkeit epsilon auf 10 -­‐6 setzt, • die die Funktionen natLog1() und natLog2() mit dem eingelesenen Wert für z aufruft und • die die berechneten Werte auf dem Bildschirm ausgibt. Nicht ausgelastet? Modifizieren Sie das C-­‐Programm so, dass das C-­‐Programm testet, welche der beiden Reihen für ln(2) schneller konvergiert. Zusatz-­‐‑Aufgabe 9: Umrechnung kW nach PS Schreiben Sie ein C-­‐Programm, das folgende Tabellen ausgibt: S. 4 / 6 Hochschule Niederrhein Fachbereich 03 Bachelor Informatik Einführung in die Programmierung WS 2015/16 Prof. Dr. Nitsche Prof. Dr. Davids Blatt 5 Die Umrechnung von kW nach PS erfolgt nach der Formel: 1 kW = 1.35962173 PS und soll in einer Funktion kw2ps erfolgen. Ändern Sie das Programm so, dass die Werte in Fünfer-­‐Abständen angezeigt werden, die Ausgabe mit 4 Nachkommastellen erfolgt und Start-­‐ und Endwert variabel sind, also eingegeben werden können. Erstellen Sie jeweils eine Version des Programms mit for-­‐, while-­‐ bzw. do-while-­‐Schleife. Zusatz-­‐‑Aufgabe 10: Umrechnungen Schreiben Sie C-­‐Funktionen, die jeweils folgende Umrechnungen durchführen können: a) von Grad Celsius nach Grad Fahrenheit: °F = (°C * 9/5) + 32 b) von Kilometer nach Meilen: 1 mile = 1,609 km c) von Zentimeter nach Zoll: 1 Zoll = 25,4 mm Schreiben Sie eine Benutzeroberfläche zur Auswahl der Umrechnung. Ein mögliches Auswahlmenü könnte wie folgt aussehen: Umrechnungen:
[1] PS -> KW
[2] °C -> °F
[3] km -> Meilen
[4] cm -> Zoll
[5] Abbruch
-------------------Ihre Auswahl?
Nicht ausgelastet? Erweitern Sie Ihr Programm um Umrechnungsfunktionen in die jeweils andere Richtung, d.h. • Von PS nach kW S. 5 / 6 Hochschule Niederrhein Fachbereich 03 Bachelor Informatik Einführung in die Programmierung WS 2015/16 Prof. Dr. Nitsche Prof. Dr. Davids Blatt 5 • von Grad Fahrenheit nach Grad Celsius • von Meilen nach Kilometer • von Zoll nach Zentimeter S. 6 / 6 
Herunterladen