From 33613a85afc4b1481367fbe92a17ee59c240250b Mon Sep 17 00:00:00 2001 From: Sven Eisenhauer Date: Fri, 10 Nov 2023 15:11:48 +0100 Subject: add new repo --- Bachelor/Prog1/Prakt3/index.htm | 197 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 197 insertions(+) create mode 100644 Bachelor/Prog1/Prakt3/index.htm (limited to 'Bachelor/Prog1/Prakt3/index.htm') diff --git a/Bachelor/Prog1/Prakt3/index.htm b/Bachelor/Prog1/Prakt3/index.htm new file mode 100644 index 0000000..367abf1 --- /dev/null +++ b/Bachelor/Prog1/Prakt3/index.htm @@ -0,0 +1,197 @@ + + + + +Praktikum 3 + + + +  + + + + + + + + + + +
 
FH Darmstadt  +
FB Informatik  +
Prof.Dr. H.P.Weber
+
Programmieren I  +
Praktikum
+
+
3
+
+ +
+ + + + +
Ziel: Sie sollen den modularen Programmaufbau mit +Funktionen, die Simulation von Zufallsereignissen und einfache +Rekursion üben.  +
+ +
+ + + + +
+

+1    Verwenden einer einfachen Funktion

+ +
    +
  • +Schreiben Sie eine Funktion, die die Uhrzeit als drei +integer-Argumente übernimmt (hour, +minute, +second) und die Anzahl der Sekunden seit 0 Uhr zurückgibt.
  • + +
  • +Benutzen Sie diese Funktion, um die Zeitspanne in Sekunden zwischen zwei +Zeitpunkten (am gleichen Tag) zu berechnen.
  • +
+
+ +
+ + + + +
+

+2    Einfache Simulation und Analyse von Zufallsereignissen

+ +
    +
  • +Schreiben Sie ein Programm, das simuliert, zwei Würfel 6000mal +zu werfen. 
  • + +
  • +Ergänzen Sie die Simulation um eine Häufigkeitstabelle, die angibt, +wie oft die möglichen Augenzahlen eines Wurfes (2 bis 12) gefallen sind. 
  • +
+
+ +
+ + + + + +
+

+3    Vollkommene Zahlen 

+ +
    +
  • +Eine ganze Zahl wird eine vollkommene Zahl genannt, falls die Summe ihrer +Faktoren (also der Zahlen, durch die die Zahl ohne Rest teilbar ist) gleich der Zahl selbst +ist. Bei der Bildung der Summe wird die 1 eingeschlossen, aber nicht die Zahl +selbst. Zum Beispiel ist 6 eine vollkommene Zahl, denn es gilt 6 = 1 + 2 + 3.
  • + +
  • +Schreiben Sie eine Funktion isPerfect, +die bestimmt, ob ihr Parameter number eine +vollkommene Zahl ist.
  • + +
  • +Benutzen Sie diese Funktion in einem Programm, das alle vollkommenen Zahlen +zwischen 1 und 1000 bestimmt und ausgibt. Geben Sie die Faktoren jeder +vollkommenen Zahl mit aus, damit Ihr Ergebnis besser überprüft werden kann.
  • + +
  • +Fordern Sie die Rechenleistung Ihres Computers, indem Sie Zahlen testen, die +deutlich größer als 1000 sind. 
  • +
+
+ + + +
+ + + + +
+

4    Größter gemeinsamer Teiler - rekursiv

+ +
    +
  • +Der größte gemeinsame Teiler (greatest common divisor: gcd) zweier ganzer Zahlen +x und y ist die größte ganze Zahl, die x und y ohne Rest teilt.
  • + +
  • +Schreiben Sie eine rekursive Funktion gcd, +die den größten gemeinsamen Teiler von x und y zurückgibt. Nutzen Sie +dabei folgende rekursive Beziehung:
  • + +
  • +Falls y gleich 0 ist, dann ist gcd(x,y) +gleich x.
    +Sonst gilt: gcd(x,y) ist +gcd(y,x%y).
  • + +
  • +Testen Sie Ihre Funktion, indem Sie Werte für x und y einlesen und den +zugehörigen größten gemeinsamen Teiler ausgeben.
  • + +
+
+ +
+ + + + +
+

5    Ägyptische Multiplikation (fakultativ)

+ +
    +
  • +Schreiben Sie eine Funktion multIterative, +die das Produkt zweier ganzer Zahlen a und b auf folgende Weise berechnet.
    +Ausgehend von den der Funktion übergebenen Werten a und b wird eine +Reihe von gleichartigen Schritten durchgeführt: +
      +
    • +Falls b ungeradzahlig ist, wird der Wert von a zur Variablen +product +addiert. +
    • +
    • +Danach wird der Wert von +a verdoppelt und der Wert von b halbiert (ohne Rest und +ohne Rundung). +
    • +
    +Diese beiden Schritte werden solange wiederholt, bis b durch die fortlaufende Halbierung den Wert 0 +annimmt. Die in product gebildete Summe +ist dann gleich dem Produkt von a +und b.
  • + +
  • +Hinweis: Realisieren Sie die Verdoppelung von a durch den Operator zur bitweisen +Linksverschiebung << und die Halbierung von b ohne Rest und Rundung durch +den Operator zur bitweisen Rechtsverschiebung >>.
  • + +
  • +Schreiben Sie ein Programm, das zwei ganze Zahlen von der Tastatur einliest und +das mit der Funktion multIterative +berechnete Produkt ausgibt.
  • + +
  • +Schreiben Sie eine zweite Funktion multRecursive, +die die oben beschriebene Verdopplung, Halbierung und Summation durch rekursive +Aufrufe von sich selbst realisiert. Testen Sie auch diese Funktion mit von der +Tastatur eingegebenen Werten.
  • + +
+
+ + \ No newline at end of file -- cgit v1.2.3