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