Informatik - Algorithmen
Die Algorithmen sind in echten Programmen umzusetzen, d.h. im Programm sind entsprechende Variablen zu definieren, Dialoge für die Eingaben zu schreiben und der Pseudocode in entprechenden Programmcode zu übersetzen. Vergessen Sie nicht auch die Resultat auszugeben.
Treffen Sie die Wahl des Datentyps sorgfältig: Den Typ int nur für ganze Zahlen
und wenn es ums zählen geht, physikalische Größen sind immer reele Zahlen und
der geeignete datentyp ist deshalb double.
Verwenden Sie den Debugger und/oder zusätzliche Ausgaben, um den Ablauf der
Algorithmen zu verfolgen.
Wurzelziehen nach Archimedes |
Archimedes (um 287-212 v. Chr.) hat für die Berechnung der Quadratwurzel einer Zahl a folgende Iterationsformel angegeben: Ein Algorithmus zur Verwendung dieser Formel lautet: Zahl a lesen xneu = a Wiederhole xalt = xneu xneu = (xalt + a/xalt)/2 solange |xneu - xalt| > epsilon epsilon ist die Genauigkeit der Berechnung, z.B. 1E-4. |
Anzahl der Ziffern einer ganzen Zahl bestimmen |
Der folgende kurze Algorithmus bestimmt die Anzahl der Ziffern (w) einer ganzen Zahl z (im Zehnersystem): w = 1, s = 10 Solange s <= z wiederhole w = w + 1 s = s * 10 |
GGT |
Führe folgenden Pseudocode für die Berechnung des größten gemeinsamen Teiler (GGT) zweier natürlichen Zahlen a, b aus. Wähle dazu zwei geeignete Werte für a und b (a und b > 20). Schreibe ein C Programm zu diesem Algorithmus. a und b einlesen; Wiederhole Berechne den Rest r der Ganzzahldivision a / b. Ersetze a durch b. Ersetze b durch den berechneten Rest. solange Rest r ungleich Null ist. Der letzte Wert von a ist der GGT. |
0.xxxxx in Dualzahl umwandeln |
Folgender Pseudocode für die Umrechnung des Nachkommateiles einer Dezimalzahl in das Dualsystem soll in ein C-Programm umgesetzt werden. Variablen z .. die Zahl in der Form 0.xxxxxx n .. Anzahl der Nachkommastellen Algorithmus für n Nachkommastellen: Zahl z einlesen Anzahl der zu berechnenden Nachkommastellen einlesen Für i = 1 bis n führe aus { multipliziere z mit 2 ( z = 2*z ) Falls ( z 1.0 ) dann { 1 ausgeben (drucken) von z 1.0 subtrahieren ( z = z - 1 ) } sonst 0 ausgeben } |
Fibonacci-Zahlen |
Führe folgenden Pseudocode aus. Welche Folge von Zahlen wird ausgegeben ? amax einlesen; a = 1; b = 1; Wiederhole a ausgeben; c = a + b; a = b; b = c; solange a < amax ; |
Widerstandskette |
Folgender Algorithmus zeigt, dass der Widerstandswert
einer beliebig langen Anordnung von Widerständen in der folgenden Form
einen endlichen Wert hat.![]() Rneu = R2 + 2 R1 Wiederhole Ralt = Rneu Rneu = 2 R1 + R2 || Ralt solange | Rneu - Ralt | > eps |
Zapfenrechnung |
Ein Programm soll eine Zapfenrechnung ausführen und die einzelnen Ergebnisse sauber formatiert ausgeben. Pseudocode: Anfangswert für z einlesen und ausgeben Für m = 2 bis 9 z = z * m z ausgeben Für m = 2 bis 9 z = z / m z ausgeben |