EGE/Inf2015

Aus ProgrammingWiki

Wiki-Quelltext dieser Seite.

== Netzwerke ==

...

== Datensicherheit ==
* [[EGE/Inf2015/Grundlagen|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: [[EGE/Vigenere|Vigenere Kryptoanalyse]], [[EGE/Inf2015/Enigma|Enigma]]<!--, [[EGE/Inf2013/AES|AES]]-->
* asymmetrische Verfahren
** [[EGE/RSA|RSA]] (öffentliche und nicht-öffentliche Schlüssel)


* [[EGE/Hash|Hash]]
* [[EGE/Signaturen|Digitale Signaturen]]
* [[EGE/Steganographie|Steganographie]]


* [[EGE/Uebungen|Übungen zur Sicherheit]]

== Modelle ==
[[EGE/Inf2015/Modelle|Modelle]]

== Programmierung ==
* [[EGE/Grundstrukturen|algorithmische Grundstrukturen]]
* [[EGE/Strings|Umgang mit Strings]]
* [[EGE/Arrays|Umgang mit Arrays (Feldern)]]
* [[EGE/KlassenEinfuehrung|Einstieg zu Klassen]]
* [[EGE/LK Programmierung|Infos zur LK]]
* [[EGE/Rekursion|Rekursion]]
* [[EGE/Sortieren|Sortierverfahren]]

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))

<!--
* [[EGE/Inf2013/Dateien|Umgang mit Dateien]]

== Datenbanken ==
* [[EGE/Inf2013/Grundlagen_Datenbanken|Begriffe, Anforderungen]]
* [[EGE/Inf2013/Userstories|Userstories, Benutzeroberflächen]]
* [[EGE/Inf2013/Datentypen|Datentypen]]
* [[EGE/Inf2013/ER-Modell|ER-Modell, Beziehungstypen]]
* [[EGE/Inf2013/SQL-Befehle|SQL: DDL, DML]]
* [[EGE/Inf2013/SQL2|Erweiterte SQL-Befehle]]
* [[EGE/Inf2013/Normalisierung|Normalisierung]]
-->