Algorithmen mit Schleifen

Werbung
E2A
Übung zu Schleifen
PHP
1. Berechne die Binärzahl einer angegebenen Dezimalzahl. Der Vorgang sieht so aus:
10 : 2 = 5 Rest 0
(1)
5 : 2 = 2 Rest 1
(2)
2 : 2 = 1 Rest 0
(3)
1 : 2 = 0 Rest 1
(4)
daher ist die Binärzahl 1010. Mit dem Punktoperator .= wird an eine Variable ein
Wert angehängt, die Variable wird »verlängert« .
2. Berechne den »größten gemeinsamen Teiler« zweier Zahlen. Das Prinzip ist dabei
folgendes (am Beispiel der Zahlen 55 und 15):
55 : 15 = 3 Rest 10
(1)
15 : 10 = 1 Rest 5
(2)
10 : 5 = 2 Rest 0
(3)
Die größere Zahl wird durch die kleinere Zahl dividiert (ganzzahlige Division), die
neue größere Zahl wird aus der vorigen kleineren gebildet und die neue kleinere Zahl
wird aus dem Rest gebildet. Das geht so lange, bis bei einer Division der Rest 0
ergibt, der Divisor ist der gesuchte größte gemeinsame Teiler – hier also 5.
3. Berechne den größten gemeinsamen Teiler zweier Zahlen nach folgender Logik:
Euklid klassisch
Algorithmus : Größter gemeinsamer Teiler
Eingabe : zwei Zahlen
Ausgabe : ggT
8
wenn a = 0 dann
gib aus b
sonst
solange b 6= 0 tue
wenn a > b dann
a=a−b
sonst
b=b−a
9
gib aus a
1
2
3
4
5
6
7
26. November 2012
E2A
Übung zu Schleifen
PHP
4. Berechne den größten gemeinsamen Teiler zweier Zahlen nach folgender Logik:
Euklid modern
Algorithmus : Größter gemeinsamer Teiler
Eingabe : zwei Zahlen
Ausgabe : ggT
4
solange b 6= 0 tue
rest = a % b
a=b
b = rest
5
gib aus a
1
2
3
5. Schreibe ein Programm, dem eine Zahl übergeben wird. Diese Zahl soll getestet
werden, ob sie eine Primzahl ist (nur durch 1 und sich selber teilbar).
Algorithmus : Test auf Primzahlen
Eingabe : eine Zahl a
Ausgabe : Primzahl
1
2
3
4
5
6
7
8
9
10
11
x=a−1
check = 0
solange x < a UND x > 1 tue
wenn a mod x = 0 dann
check = 1
break
x=x−1
wenn check = 1 dann
ist keine primzahl
sonst
ist primzahl
26. November 2012
Herunterladen