Inf2015
Aus ProgrammingWiki
Archivierte Version vom 2016-03-21T08:15:52+00:00. Aktuelle Version
Inhaltsverzeichnis |
Netzwerke
...
Datensicherheit
- Grundlagen / Grundprinzipien
- symmetrische Verfahren (zuerst wird der Schlüssel ausgetauscht, dann die Nachricht)
- Transposition (Buchstaben anders anordnen) - Bsp: Skytale
- Substitution (Buchstaben ersetzen)
- monoalphabetisch - Bsp: Polybius, Chiffrierscheibe, Cäsar-Chiffre
- polyalphabetisch - Bsp: Vigenere Kryptoanalyse, Enigma
- asymmetrische Verfahren
- RSA (öffentliche und nicht-öffentliche Schlüssel)
Modelle
Programmierung
- algorithmische Grundstrukturen
- Umgang mit Strings
- Umgang mit Arrays (Feldern)
- Einstieg zu Klassen
- Infos zur LK
Freiwillige Aufgabe für die Ferien: Schreiben Sie ein Programm, das zwei Brüche addieren kann. Dabei werden jeweils Zähler und Nenner eingegeben. Die Ausgabe ist ein neuer Bruch - es werden also wiederum Zähler und Nenner ausgegeben.
Zusatz: Kürzen Sie das Resultat. Dies gelingt am einfachsten, wenn Sie Zähler und Nenner des Resultats durch ihren größten gemeinsamen Teiler (ggT) dividieren (ggT-Algorithmus kann gegooglet werden).
Lösung:
a = int(input("Zähler erster Bruch (a)"))
b = int(input("Nenner erster Bruch (b)"))
c = int(input("Zähler zweiter Bruch (c)"))
d = int(input("Nenner zweiter Bruch (d)"))
neuZaehler = a * d + c * b
neuNenner = b * d
print("Addition der Brüche ergibt " + str(neuZaehler) + "/" + str(neuNenner))
def ggT(a, b): # schwerer Algorithmus
if(0 == a % b):
return b
return ggT(b, a%b) # % ist der Rest bei der ganzzahligen Division
#Zusatz:
meinGGT = ggT(neuZaehler, neuNenner)
neuZaehler = neuZaehler / meinGGT
neuNenner = neuNenner / meinGGT
print("Addition der Brüche ergibt " + str(neuZaehler))
if(neuNenner != 1):
print("Addition der Brüche ergibt " + str(neuZaehler) +"/" + str(neuNenner))
else:
print("Addition der Brüche ergibt " + str(neuZaehler))