Pr¨ufung — Informatik D-MATH/D-PHYS
23. 01. 2008 09:00–11:00
! #"
$&%')(+*-,
.
Kandidat/in:
/
$0!1 233232332323323233234322234334322234322233432223432223433432223432223433432223432223433222343222343343222343222343343
567
$071 233232332323323233234322234334322234322233432223432223433432223432223433432223432223433222343222343343222343222343343
8 9;:
/
31 233232332323323233234322234334322234322233432223432223433432223432223433432223432223433222343222343343222343222343343
<>=@?BADCEFCGH)CIKJML9IKCJON'CPRQ6NSLTCP@UT=V?PVJMW2LX!Y[Z UTUJO=V?\YJOC6]^P)_GW3G[NH`G'NLTCP9PVCH)Ga>_ZbPVCNdceCY'JONH)G'NH)CNfZbA'aOCH)CN
g)h N'NLTCiG'N'YjYkZbUVUfJO=V?lYJOC0G[NSLTCN'UTLTC?'CN'Y'CNmZbaMaMH)CIKCJON'CNncRCIKCP g G'NH)CNjH)CaOCUVCNoG'N'Yqp)CP@ULVZ N'Y'CN
?[ZbADCsr
tu[ v
.Fw
*xxs133232332323323233234322234334322234322234334322234323433432223432223433432223432223433432223432223343222343222343343
Allgemeine Bemerkungen und Hinweise:
y
t{z^ |}s 8 *x*x~56xxv
*x7%' *3
vbs*x3s0}v[
s y s*3vs*2:
*3&zsD
.
%sv B
.
%kz
B0b`s*xvs*2*xz
.
%kd}
zs[z
b$0*3u*xvb:
v
${u}
zsb
~
x3v 8 *xf
w
s } D
.Fw
*3 s*3#
w
*xb kb 8 S7 z^ss*x+:
!.Fw
*x7R` s9S$0sxs 8 *x*x vRz*3v}7 u}v*
.Fw
v|^ v9 8 |R
`
%s*
.w
%+s |*3 `` s9
~
Dz
"
*x3}v$0*3 -1
keine
{ v(' v
.Fw 0 w
slslv}7*x $vv
.w
xvvj%9sq
.w
x*
.Fw
&Dx
w z e
~u}
zi*xv
w
.w
vsvs*3i^3*3&5bv*xos*xsvvv('bv
.Fw vs
vv*xD
8 s*
.Fw
s 8 *x&2*xvv('bv
.Fw
&%
D
.Fw
8
.Fw
s*2zs 8 *x
#vb|
-
*
.w
R*x\u}
zskz-
+ 8 *x}sl*3}
z q*xqzs3*x z*x \ { *
w
s}xvs9¡ss[*xbs 8 *x&v*
.Fw
`s*3xv
¢s*xK}
z7
z^ `s*xx
8
*xKv*
.Fw¤£-w
¥ *3~s*x9
¦ /
.w
{z
§7}vss*3\('
vvs 8 *xz*3sl
$¨j
vvs 8 *3D
*x
£-w
s$
§x*x s9*3 uz
zdzsv@*x$0$§v*x9
Diese m¨ussen alle mit Ihrem Namen beschriftet sein. Die Pr¨ufungsbl¨atter sind dabei mit abzugeben!
©
~B*xK}&*3v`zsv
s9D`s 8 *x\ª('
y
7ª s*
.Fw z
s¤6D%s« *xsxs9
¬ ® ¯ ° ±
P
Aufgabe 1. (18 Punkte)
s 8 *x\*3}xssvD7 .%'('
"
v{bzs
8 *x zs*
x3¥ u*xv
.Fw sv
.Fw
*3
9 8 *xi%9s
w
$0s9¡
vv
x
s*xi5 * zx&('$|
int
$0*3`s$1
*3v
1 + 7 / 2
z
x == 1 || 1 / (x - 1) < 1
.
!(1 && x) + 1
Aufgabe 2 (20 Punkte)
!w s £-w sv¢ %*2%+$0v^zs*[ 8 xT
$
tu 8 xD*3v
9ss*x7
£-w £-w
w
f*xfs*3 $ D%'$0$0s[*x s 7
$0$ }x DD%k*x9
*xK ^s[z
{ v 7z *x\sbzs\
7x*
.Fw
¥
!w
n
w vvx*.Fw *xv@bool haesslich (unsigned int n) {
return
(n == 1) ||
(n % 2 == 0) && haesslich (n / 2) ||
(n % 3 == 0) && haesslich (n / 3) ||
(n % 5 == 0) && haesslich (n / 5);
}
£-w
w
w
`
v{Ks w
-+*xKt{v
!.Fw
D~)
v
w
xBuzv7D KsvuK v
$§|!:
7
$0$0v~vs*¡$x*
.Fw
` *xvK*x¤b DD%k*x
haesslich
ss9 *3zsvB*x
{ *x7zxs$ $0*3`*xsvbDD%*x9+`s
@ D`s
.w
sv *3K%[s
8
*3\sv
z
w
bzs
z
£-w
w
\$
.w
v¢7
$0$ zsvvb¢(' v@
w
sdsv
w
3z('
£-w
\*3vvs9
v# *xskx*
.Fw s*x
w
vvx*
.Fw K¥
w
*xv+K z^s
8
*3
£-w
` *xBB*2*x9'*3Bs
is
\ ('
£-w s
b|
*x s
`DD%*3 | vvs
Aufgabe 3. (20 Punkte)
¥ `s* 7x* .Fw 0¥ !w xslv*xjs*3x x $0e`sov*x&%'s*3 o:$0s*xv
$0s s*xx K7Svv
xv
1
w zs9R¥^$ s*xv@|*3sv*x21
10
s*xxbxs$09 `s*3{3, 7} {2, 5} =
"
*3 slv*x
21
15
*.Fw ds*3x x $0e9`s*x{3, 7} {3, 5} =
£
$&|xs$0s[*x s 8 *x *x\DD%*3eD*x
s*xx xs$0
w
s*3|7x
// PRE: a > 0, b > 0
// POST: Der Rueckgabewert ist true g.d.w. a und b teilerfremd sind.
bool teilerfremd(unsigned int a, unsigned int b);
Tipp:
8 *3f%9s*xdu}
zfs$¨s*xv@|*3s¡Tv e*xs$ 8 *xds*3
"
*xx}v}D%*3*x$&|xb:
$0s[*x e*x 8 *x v
.Fw
v 5673sv%'ss9*20z
!.Fw
s 8 *x
.Fw
vv
8 *x&*x v
£
$&|xs$0s[
*3
.Fw
v
!.Fw
x*
.Fwqw
*xv
.Fw
s*3z j$jvvs9¢vfs*
.w w
*x *
.w
s*x
!.Fw
R*xt{k
s s«(' `s*3vs9
Aufgabe 4 (18 Punkte)
w s 8 *x ('«}x s«
%sB*3*3
vs1
y
~*xx7*3
w
$vR*3vs*x
"
xv('7v
.Fw
*xx kv
.w
s*3 s*xsvzsv@*x$0$§s
7zxs$0vs!B*x`6*3
z$vvs3*
.Fw
v *x97s$ s*xv|*xss*x~¥
!w
n
N
z.Fw
s*x 7
$0$+
P
v s x3 &7
$0$07B*x v
z
*xv@§skT`s
JA
kNEIN
6*3 x7*3 w $v %'$0$*x $ 3
!.Fw s*x
sx*
.Fw
s
!w
8
.w
*2s« uv
z!
~*xq7
$0$ *xvKs*x
"
xv('7v
.Fw
*xxs
3*xv*x *xs*3bKz^sv*x$0$§s¤!:
7
$0$0*x v|
.w
§-s$ *xv|*xs \^B s[v
.Fw
s*xsdtuk v
.Fw
*xss¤s*xs$
37*3
w
$v\*xv¢
vv *xm7
$0$
{zsv@*x$0$§sl*x
zs
.Fw
x*
.w
z^s*3s %
9 *2«v
e~
vv« *x 7
$0$ s*x6*x
z^
%s |*xb
`so*x0v
z
JA
*xvs¢ vv§sv§s*3i*x
z*
.w
%+ |*x s¢`s *x
v
z
NEIN
*xv@ukb{`s«
v{7
$0$ sx*
.Fw
zs*3b
~v *3z%'s*xsx7*2
w
$v
UNIV
^ KKs*3¤z^sx*x z*x vB7
$0$
P
s*3 zs3*x z*x *x
z
e
kv .Fw s*x s7zP
*x\6*x z^e
%+ |*x { {*.Fw
8 s*
HALT
*x«x7*3w
$vsk uDus*xz x*x z*xsv~7
$0$
P
*xKz x*x z*x*x
z
e
skv .w s*3b 7zP
*x ze
w 3kb* .Fw £-w f} z\*xvB vsss*3s9e
vvsvK%'s*xsq37*3
w
$v
HALT
z % 9e sj$qvv 8 *x $0sk*xb:s9
vvK$
UNIV
$0*3 " *xx}d('HALT
x*xv*3 s¤%9k7e
D
.Fw
w 8 *x§*x
!w
$07+
vv~sv
HALT
*3zss*xs$ *x v|.Fw
Aufgabe 5 (20 Punkte)
!.Fw s 8 *x# v}xs#7 $0$ sD .Fw \ ¥ !w §z^
w
s
¢ 7$0s
X ∞ i = 0
1 2
i
= 2.
v{7
$0$ z
.w u
zs*9se
!.Fw
v@u*x 8 $0$0
X 999 i = 0
1 2
i
*xs*x 65
*
zxs
two
&*3z & siB* s~s$ v .w s0 z*xv2
vs#include<iostream>
int main() {
float two = 1; // (1/2)^0 float p = 1; // (1/2)^0 for (int i=1; i<1000; ++i) {
p /= 2; // (1/2)^i two += p;
}
std::cout << two - 2 << "\n";
return 0;
}
8 .Fw
s*3z^s 8 *x
w
*x9
vi 5
*
z3s
two
!.Fw s bvs 8 .Fw xs*2:}sD
.Fw
sl*xvRjzsv
.w
*3zs 8 *x%D&*x f56
*xl o}3s
BD
.Fw
s&vs*3*3e[ Dss 8 *3{
s0*x{
vsxx
d 0 .d 1 d 2 d 3 . . .
`7zs*d i
{0, 1}
z
v*xv*x`v
z#sv7
$0$0v
!w
xs 8 *x`s*x# }xssDs*DukT`7:
v&z^s7 8 *xu*xsv7[`7z^s*u*3
w
$0s9
vvb~¥
!w
xsk |
float
s$ ¢3*xsvv%'$0$
v
£
66 ¦
!
}x7+{~*xsvB}
zB*xv`
v` ~v@:
('
w
3s ¤¢3*xsvv%'$0$
!w
xs sxb(
[B
D 8
w
v«u*x}371
sq
v
% ~sv3
K*
.Fw
xv\¢x*3svv%'$0$
!w
¢
vsx3z
K*xvs
*3
sDue
.w vs¤
vs33z
s¤¥
!w
e s¤
vu
%kf ~sv3
{s
u*2:
v
.Fw
smb`s*`¢x*x vv%'$0$
w
3sqx*x 7¢
l*3os b s*xso b*x0*x$
%xs*xv v*x* %
ks z*3~s*x
0
w K-vs ksv`+:-!:- ('sb*}0*xKv
z^\*xv@{ *x\v
w
{%+x *xKs
*3('\¥
!w
-
*x*>*xKv
z^\*xv@{ *x\v
w
{%+x *x |^v*3*3('\¥
!w
-
*x*x*>*xKv
z^\*xv@{
%k
0
Aufgabe 6 (24 Punkte)
v~¥*3s^*xsvb`}
zB*xvsvs s*3xsv 8
s*xsv@|*3sxv *.
.
k
xv
vvK
x*xv*xbs9D{D~*x s*xs9*x
v 8 |*xs*
.Fw
#%' s9
w
*x `*x
{ sxj%+D0sv
$0$0ss
vvs¢
v 8 |*x *3
~ *xs$
T
x*
.Fw
x s f$0*3
3 3
Dsx sv|*xs2+B*xuz^s*xs 8 |*3sx `$
%+*x s
z`
.Fw
vx7`s*xvs*xsv` ~xs s
Dsx $0*3*
w
s$ 8 $§z9
x
o
bK `s w s*x 8 |*xsx s[ xv6 v Ds*vs*3b 8 $§zxi*x s*x
s 9*x*x
s$ 8 |*3sx}sx v
w
s
w -9
w
vsD%
.Fw
7
b
.Fw
'kb*
>b s
x3` x z^sxs76v*x9 s
.Fw
%'s*3b
8
|*3sx 6s*x
Kb*xvs3xdbs*
.Fw
w D
«s {
v 8 |*x es[v .Fw
*xss9
a)
B % *3 s 8 *x *x\ vvTicTacToe
bs« s$0*3x*x b'e s 8 *x s*38
s$
k*3%u}sv`s
.w
b¡
$0*2x*xs
vzssD e)BsD%'s
8
*x6
9
vv~*xB
vvK*x« u
\v *x«$vvs s3*x 8 |*x 3|v*3*xis%'*xbs9
b)
£ $&|x $0sk*3 s 8 *3 *xsjvD%k7TicTacToe()
\*x vv7 xxf('£-w
s« %
*xbs
s$0*3x*3s %'7 %{*x*3*
x*xv*xbu xs v 8 |*xsx} xb
c)
£ $&|x $0sk*3 s 8 *3*x§}x *33*xsv}D%*x9*x¤Dz |7x `bv 8 |*xs
`s
w
56 ('3xv)
*xs 8 *x
z^s*
.Fw
*x¢v
.
*3*3f
sS
vv¡
:
v%
w
('7
w
k
v# `b~
.
%+
zz^ssD +
!.Fw
8 *x7
vv#v*x
*
.Fw
\Dz |7}s$jvvs9'7z0
v 8 |*x 3z 6s z^ss
xxv6v
.Fw
&('x*xv'B
x
sv~%
%'s*3\vv
\ s«` s
%
xv `s*xbxs*9zssDs9e
$0x*
.Fw
vv~
v 8 |*3sR .w
x~ {
vv{ *xtus[v
.Fw
*xss('73*xs7
// PRE: Das Spiel befindet sich in einem gueltigen Zustand.
// POST: Die Rueckgabe ist __ falls Spieler 1 gewonnen hat,
// __ falls Spieler 2 gewonnen hat und
// __ falls keine Aussage getroffen werden kann.
int gewonnen(){...}
Tipp:
Dsx \-s-DuvF#$jvvs * .w
}s
zb{(' `sbu` s9