Gymnasium Zittau/Langer/Verschluesselung/mathematische Grundfunktionen

Aus ProgrammingWiki

Wiki-Quelltext dieser Seite.

<language>Pascal</language>
Im Folgenden beschäftigen wir uns mit einigen mathematischen Grundfunktionen, die für die Implementierung verschiedener Verschlüsselungsalgorithmen genutzt werden können. <br>

== Die Funktionen ''mod'' und ''div'' ==
Bei der Division natürlicher (bzw. ganzer) Zahlen bleibt oft ein Rest. <br>
Teste die beiden Funktionen für verschiedene Beispiele und notiere die Bedeutung von ''mod'' und ''div''.

<run id="4ea7d85d759fb"> 
writeln(14 mod 3);
</run>

<run id="4ea7d85d75a54">
writeln(14 div 3);
</run>



== Euklidischer Algorithmus ==
Bereits vor 2200 Jahren entwickelte Euklid einen Algorithmus zum Ermitteln des größten gemeinsamen Teilers (ggt) von zwei natürlichen Zahlen. <br>
# Teste die gegebene Funktion für mehrere Beispiele. <br>
# Erstelle eine Wertebelegungstabelle für diese Funktion für den ggt von 54 und 12.


<code id="4ea7e31c35bf7">
function euklid(a,b:integer):integer;
begin
  if a=0 then result:=b
         else begin while b<>0 do if a>b then a:=a-b
                                         else b:=b-a;
                    result:=a;
              end;
end; 
</code>

<run id="4ea7e31c35c71">writeln(euklid(24,9))</run>


== Eine Funktion phi ==

Teste die Funktion phi für verschiedene Zahlen und beschreibe ihre mathematische Bedeutung. <br>

<code id="4ea7f43dbd985">
function phi(n:integer):boolean;
var i:integer; t:boolean;
begin
  t:=true;
  if n=1 then t:=false
         else if not (n=2) then for i:=1 to n-1 do if euklid(n,i)<>1 then t:=false;
  result:=t;
end;
</code>

<run id="4ea7f5b541a1e">writeln(phi(7))</run>


== Zufallszahlen ==
Die Funktion random(n) erzeugt eine Zufallszahl von 0 und n-1. <br>
<run id="4eb3b1f511e8f">writeln(random(10))</run>
#Teste die Funktion für einige Beispiele.
#Ergänze den untenstehenden Quelltext so, dass 10 Zufallszahlen von 0 bis 19 erzeugt werden.
#Verändere den untenstehenden Quelltext so, dass 10 Zufallszahlen von 5 bis 19 erzeugt werden.
<code id="4eb18a80811e4">var i: integer;</code>
<run id="4eb18a80814bb">
// hier kannst du ergänzen
writeln(random(20));</run>