Lösungsvorschläge zu den Klausur ”Informatik für

Werbung
Lösungsvorschläge zu den Klausur
”Informatik für Physiker”
im SS07 von Dr. Herbert Süße
Author: Simon Stützer
Stand: 22. Juli 2008
Aufgabe 1:
129.875 = 129 + 0.875
∧
129 = 10000001
0.875 · 2 = 1.75
0.75 · 2 = 1.5
0.5 · 2 = 1
0·2=0
...

1.75 ≥ 1 ⇒ 1.75 − 1 = 0.75 Merke: 1

1.5 ≥ 1 ⇒ 1.5 − 1 = 0.5
Merke: 1

∧
1≥1⇒1−1=0
Merke: 1
 ⇒ 0.875 = 0.111

0<1
Merke: 0
Merke: 0y
∧
⇒ 129.875 = 10000001.111
Aufgabe 2:
∧
20 = 10100
in 17-bit Darstellung: 00000000000010100
komplementiern: 111111111101011
∧
1 addieren: ⇒ −20 = 111111111101100
Aufgabe 3:
Mit 18 Bit sind Zahlen von −217 bis 217 − 1 darstellbar.
Aufgabe 4:
z = 0.11101 ⇒ z · 25 = 11101.11101
∧
⇒ z(25 − 20 ) = 11101 wobei 11101 = 29
29
⇒z=
31
Aufgabe 5:
...
float fl;
cin >> fl;
int*a=(int*)&fl;// Wandlung des Floatspeicherbereiches auf int.
/*auch moeglich a=int(fl);*/
for(j=0;j<7;j=+2)
{
*a=*a&~(1<< j); // ~Komplementoperator, & multiplizieren der Bitwerte, << rightshift
}
1
Aufgabe 6:
z.z.: H(S 3 ) = 3H(S) Wegen Unabhängigkeit der pi gilt pijk = pi · pj · pk .
Damit:
P
H(S 3 ) =
pijk log2 pijk
ijk
P
=
pi · pj · pk log2 pi · pj · pk
ijk
P
=
pi · pj · pk · (log2 pi + log2 pj + log2 pk )
ijk
P
P
P
=
pi · pj Hk + pi · pk Hj + pj · pk Hi
ij
=
Mit
P
ij
pi · pj =
P
i
pi ·
P
j
ik
3H(S)
pj = 1 · 1 = 1
Aufgabe 7:
#include<iostream>
#include<string>
using namespace std;
int c2i(char p)
{
return (int(p)-48);
}
int str2int (char p[], int &erg)
{
int fehler=0;
for(int i=1;i<unsigned int(strlen(p));i++)
{
if(p[i]<58 and p[i]>=48)
{erg=c2i(p[i])+10*erg;}
else fehler=1;
}
if(p[0]==’-’)
erg=(-1)*erg;
return fehler;
}
Aufgabe 8:
#include<iostream>
using namespace std;
float minimum(float array[], int n, float m, int i)
{
if(i<n)
{
if(m>array[i+1])m=array[i+1];
return maximum(array,n,m,i+1);
}
else return m;
}
Aufgabe 9:
2
jk
n
f (n) = 2 · f ( ) + cn , c > 0, f (1) =: α
2
n
n
= 2 · 2 · f ( ) + cn + c
4
2
n
n
n
= 2 · 2 · 2 · f ( ) + cn + c + c
8
2
4
= ...
= f (1) · 2log2 n +
(n − 1) · cn
n
2
= α · (2log2 2 )log2 n + 2c(n − 1)
= α · n + 2c(n − 1)
= (α + 2c) · n − 2 ∈ Ω(n)
Aufgabe 10:
typedef class rational
{
public:
rational();// kontructor
rational(int z;int n); // ueberladener Konstruktor bzw typwandlungskonstructor
~rational();//Destructor
rational(const rational& r);//Copykonstructor
operator float(); //Typwandlung
rational potenz(rational& r1,int potenz);//Memberfunktion
rational& operator = (const rational& r);//Zuweisung
rational& operator + (const rational& r1);//Addition
private:
int z;
int n;
friend ostream& operator << (&ostream& o1,rational r);//Ueberladung cout
} RATIONAL
3
Herunterladen