Programmierung mit C++ 1

Werbung
Modul Programmierung mit C++ 1
Angewandte Informatik
Klausurdatum 07.03.2011
Klausur zum Modul
Programmierung mit C++ 1
Studiengang
Klausurdatum
Schreibzeug
zugelassene Hilfsmittel
nicht zugelassene Hilfsmittel
Angewandte Informatik
07.03.2011 / 10.30 - 12.15 Uhr
dokumentenechter Stift (kein Bleistift!)
1-2 C /C++-Bücher, Skript zur Vorlesung
Rechner, Mobiltelefone, Aufgabensammlungen,
alte Klausuren, Praktikumsblätter und deren Lösungen
Aufgabe
Punkte (max.)
Bewertung der Aufgaben:
1
1
10
2
10
3
10
Eulersche Zahl
Σ
30
C
Die Eulersche Zahl e ist die Basis des natürlichen Logarithmus’ und kann unter anderem als Grenzwert
dargestellt werden:
(
)
1 n
e = lim 1 +
(1)
n→∞
n
Die n-te Näherung lautet damit also
(
en =
1
1+
n
)n
(2)
Liste 1: Prototyp der Funktion euler
double euler ( unsigned int n );
Schreiben Sie eine Funktion euler (Prototyp in Liste 1), die zu einem gegebenen n die n-te Näherung
gemaß Gleichung 2 berechnet. Die Potenzierung wird dabei als Schleife implementiert, in der das
Produkt ausmultipliziert wird.
Schreiben Sie anschließend ein kurzes Hauptprogramm, in welchem mit Hilfe dieser Funktion in einer
Schleife die 1-te bis 10-te Näherung berechnet und ausgegeben wird. Liste 2 zeigt ein Beispiel.
Liste 2: Beispielausgabe: die ersten zehn Näherungen von e
1
n : Näherung
2
3
4
5
6
7
8
9
10
11
12
1
2
3
4
5
6
7
8
9
10
:
:
:
:
:
:
:
:
:
:
2.000000
2.250000
2.370370
2.441406
2.488320
2.521626
2.546500
2.565785
2.581175
2.593742
FH Südwestfalen/Iserlohn/FB I+N
Prof. Dr.-Ing. Fritz Mehner
Seite 1 von 2
Modul Programmierung mit C++ 1
2
Angewandte Informatik
Klausurdatum 07.03.2011
Palindrom
C
Liste 3: Prototyp der Funktionen palindrom1 und palindrom2
1
2
int palindrom1 ( char *pal );
int palindrom2 ( char *pal );
Ein Palindrom ist ein Wort, das vorwärts und rückwärts gelesen gleich lautet. Palindrome sind zum
Beispiel die Wörter Lagerregal, Otto, Reittier, Rentner und Rotor.
Schreiben Sie zwei Funktionen palindrom1 und palindrom2 (Prototypen in Liste 3), an die eine Zeichenkette beliebiger Länge zur Überprüfung übergeben werden kann. Wenn die Zeichenkette ein Palindrom ist, wird 1 zurückgegeben, andernfalls 0. Die übergebenen Zeichenketten bestehen der Einfachheit
halber nur aus Kleinbuchstaben. Die Länge der Zeichenkette kann mit Hilfe der Bibliotheksfunktion
size_t strlen(const char *s) bestimmt werden (der Rückgabetyp size_t ist eine int-Größe).
In der Implementierung der Funktion palindrom1 werden Zeiger zum Zugriff auf die einzelnen Buchstaben einer Zeichenkette verwendet.
In der Implementierung der Funktion palindrom2 wird auf die einzelnen Buchstaben per Feldindex
zugegriffen.
3
Summe zweier Quadratzahlen
C
Liste 4: Prototyp der Funktion is_double_square
1
2
3
4
5
int
is_double_square ( unsigned int n,
unsigned int *a,
unsigned int *b
);
/*
/*
/*
/*
0 : Bedingung nicht erfüllt
zu untersuchende Zahl
1. Quadratzahl (Rückgabewert)
2. Quadratzahl (Rückgabewert)
*/
*/
*/
*/
Einige ganze Zahlen lassen sich als Summe aus zwei ebenfalls ganzzahligen Quadraten darstellen. Hierzu
einigen Beispiele:
10 = 12 + 32
13 = 22 + 32
17 = 12 + 42
18 = 32 + 32
Schreiben Sie eine Funktion is_double_square (Prototyp in Liste 4), die untersucht, ob sich der im
Parameter n übergebene Wert als Summe der Quadrate zweier ganzer Zahlen a und b darstellen läßt:
n = a2 + b2
(3)
Wenn das zutrifft, gibt die Funktion den Wert 1 zurück, andernfalls den Wert 0.
Vorgehensweise.
Für einen gegebenen Wert von n werden der Reihe nach die Werte von a = 1 bis
√
a ≤ n/2 untersucht.
Damit läßt sich für ein so gegebenes a gemäß Gleichung 3 der Wert von b
√
2
berechnen: b = n − a . Wenn b ganzzahlig ist, ist die Bedingung erfüllt. Zur Berechnung der Quadratwurzel wird die Bibliotheksfunktion double sqrt(double x) verwendet.
Schreiben Sie weiterhin ein kurzes Hauptprogramm, in welchem die Zahlen von 1 bis 50 mit Hilfe
der Funktion is_double_square auf diese Eigenschaft hin untersucht werden. Nur die Zahlen, die sich
als Summe zweier Quadratzahlen darstellen lassen, werden ausgegeben.
Viel Erfolg !
FH Südwestfalen/Iserlohn/FB I+N
Prof. Dr.-Ing. Fritz Mehner
Seite 2 von 2
Herunterladen