Java: Methoden zur Kryptologie

Größe: px
Ab Seite anzeigen:

Download "Java: Methoden zur Kryptologie"

Transkript

1 Carl-Zeiss-Gymnasium Jena Fachbereich Informatik Java: Methoden zur Kryptologie Mirko König Diese Unterlagen dienen der Informatik-Ausbildung der Spezialklassen am Carl-Zeiss-Gymnasium Jena in den Klassenstufen 9 und 10. Sie sind in erster Linie Arbeitsanleitung zur selbstständigen Tätigkeit und bieten darüberhinaus Übungsmaterialien. Dieses Dokument wurde mit L A TEX gesetzt. c M. König Jena, 2.

2 Inhaltsverzeichnis 1 Methoden Wozu dienen Unterprogramme? Zwei Arten von Unterprogrammen Einordnung Ein Beispiel für eine Funktion Quelltext Verwendung, Aufruf Wo stehen Methoden im Programm? Aufgaben Boolesche Funktionen Beispiel Primzahleigenschaft Methoden zur Kryptologie Caesar-Verschlüsselung Die Programmierumgebung Ein Zeichen verschlüsseln Eine Zeichenkette verschlüsseln Aufruf der Methode Aufgaben Vigenère-Verschlüsselung So geht s Aufgaben Anlegen von Klassen Die Klasse Krypto Variante 1 mit statischen Methoden Variante 2: Anlegen von Objekten der Klasse Aufgaben Kommentieren mit javadoc Sprechende Bezeichner Glasklar ausgedrückt mit javadoc Komplexaufgabe: Enigma Aufgaben

3 1 Lerneinheit Eins Methoden Die Begriffe Methode und Unterprogramm werden synonym verwendet. 1.1 Wozu dienen Unterprogramme? Wiederverwendung von Code Aufteilung des Problems für Teams inhaltlich (Teilprobleme) Verbesserung der Lesbarkeit Faustregel pro Unterprogramm < 1 Bildschirmseite 1.2 Zwei Arten von Unterprogrammen Prozedur ohne Rückgabewert (void ( leer ) als Rückgabetyp). Eine Prozedur führt nur einen Quelltextabschnitt aus. Funktion mit Rückgabewert (enthält immer eine return-anweisung). Der Begriff Funktion wird wie in der Mathematik verwendet. 1.3 Einordnung Methoden gehören zum strukturierten Programmieren wie auch Schleifen und Entscheidungen. Außerdem sind sie ein wichtiges Element der Klassenbildung, bei der Objekte des Programmierens zu Klassen zusammengefasst werden. 1.4 Ein Beispiel für eine Funktion Die Funktion maximum soll zwei ganze Zahlen entgegennehmen und die größere der beiden zurückgeben. Im Falle der Gleichheit soll die erste der beiden Zahlen zurückgegeben werden.

4 Methoden in Java Quelltext int maximum( int a, int b ) { i f ( a>=b ) return a ; else return b ; int ist der Rückgabetyp maximum ist der Name oder Bezeichner der Funktion a und b heißen Parameter der Funktion. Nach Abarbeitung der return-anweisung erfolgt ein sofortiger Rücksprung aus der Funktion Verwendung, Aufruf Ein Funktionsaufruf kann einer Variable zugewiesen werden: int e r g e b n i s = maximum( x, y ) ; // x, y sind i n t Eine andere Möglichkeit ist die Verwendung eines Aufrufs als Ausdruck vom Rückgabetyp: System. out. p r i n t l n (maximum( x, y ) ) ; Einen Aufruf erkennt man an einem Bezeichner, dem in runden Klammern Parameter ohne Typangabe folgen Wo stehen Methoden im Programm? Methoden sind der main-methode gleichrangig und werden davor oder danach innerhalb der Klasse angeordnet. Da in einem Konsolenprogramm meist kein Objekt der Hauptklasse mittels new gebildet wird, benötigt man noch das static-attribut: public class MaximumTest { static int maximum( int a, int b ) { i f ( a>=b ) return a ; else return b ; public static void main ( S t r i n g [ ] args ) { System. out. p r i n t l n (maximum ( 5, 7 ) ) ;

5 Methoden in Java 4 In Swing-Applikationen können Methoden gleichrangig zu den Action-Methoden angeordnet werden. Auf das static-attribut kann verzichtet werden. int maximum( int a, int b ) { i f ( a>=b ) return a ; else return b ; private void jbutton1actionperformed ( java. awt. event. ActionEvent evt ) { // Aufruf der Methode maximum() // Einlesen z w e i e r int Zahlen aus j T e x t F i e l d s int x = I n t e g e r. p a r s e I n t ( jtextfield1. gettext ( ) ) ; int y = I n t e g e r. p a r s e I n t ( jtextfield2. gettext ( ) ) ; int e r g e b n i s = maximum( x, y ) ; // Ausgabe i n einem jtextarea jtextarea1. append ( e r g e b n i s+" \n " ) ; Möchte man eine Klasse getrennt vom Hauptprogramm in einem eigenen Quelltext anordnen, so stehen die Methoden innerhalb der Klasse. 1.5 Aufgaben 1. Implementiere die Funktion maximum() und teste sie in einer Swing Application. 2. Implementiere analog zur vorhergehenden Aufgabe die Funktion minimum(), die das Minimum zweier ganzer Zahlen berechnet. 3. Gesucht ist eine Funktion maximum3(), die das Maximum dreier ganzer Zahlen berechnet. Füge die Funktion dem Programm der vorangegangenen Aufgaben hinzu. 4. Die Funktionen dieser Aufgabe sollen die Anzahl der Teiler einer natürlichen Zahl bzw. den größten gemeinsamen Teiler zweier ganzer Zahlen bestimmen. Ihre Methodenköpfe lauten: int anzahlteiler(int natzahl) int ggt(int a,int b)

6 Methoden in Java Boolesche Funktionen Nach dem englischen Mathematiker George Boole ( ) sind Funktionen mit dem Rückgabetyp boolean benannt. Diese Funktionen geben einen Wahrheitswert, nämlich true oder false, zurück. Ihr Aufruf kann als Bedingung direkt weiterverwendet werden Beispiel Primzahleigenschaft Die Funktion istprimzahl() soll true zurückgeben, wenn die übergebene Zahl eine Primzahl ist, ansonsten false. Es wird die Funktion anzahlteiler() aus der obigen Aufgabe verwendet. static boolean istprim ( int n ){ i f (n<2) return f a l s e ; i f ( a n z a h l T e i l e r ( n ) == 2) return true ; else return f a l s e ; public static void main ( S t r i n g [ ] args ) { // L i s t e der Primzahlen b i s 100 for ( int i =2; i <100; i ++) i f ( istprim ( i ) ) System. out. p r i n t l n ( i ) ;

7 2 Lerneinheit Zwei Methoden zur Kryptologie Die Kryptologie ist die Wissenschaft von der Informationssicherheit. Aus ihr entnehmen wir einige Verfahren der Kryptographie (Verschlüsselung) und Kryptanalyse (Entschlüsselung), die wir im programmtechnischen Sinne als Methoden umsetzen werden. 2.1 Caesar-Verschlüsselung Auf Gaius Julius Caesar ( v. Chr.) geht eine sehr einfache Verschlüsselungsmethode zurück. Das lateinische Alphabet wurde zyklisch um 3 Buchstaben verschoben ( D für A ), wobei zusätzlich noch griechische für lateinische Buchstaben das Lesen erschweren sollten. Im deutschen Alphabet (ohne Umlaute) wird also wie folgt verschlüsselt (oben: Klartextbuchstabe, unten: Geheimtextbuchstabe): ABCDEFGHIJKLMNOPQRSTUVWXYZ DEFGHIJKLMNOPQRSTUVWXYZABC Die Programmierumgebung Für diese Übungen werden wir ein Java Desktop Application Project verwenden, auf dessen Formular sich je ein Textbereich vom Typ JTextArea für den Klartext und für den Geheimtext befindet. Die Eigenschaften linewrap und wrapstyleword stehen beide auf true, damit die Wörter umbrochen werden Ein Zeichen verschlüsseln Wir werden zunächst nur Großbuchstaben verschlüsseln, alle anderen Zeichen bleiben erhalten, um eine gewisse Lesbarkeit der Texte zu erhalten und eine

8 Methoden in Java 7 Orientierung darin zu ermöglichen. char v e r s c h l u e s s e l n ( char ch, int verschiebung ) { i f ( ch >= A && ch <= Z ) { return ( char ) ( ( ch A + verschiebung ) % 26 + A ) ; else { return ch ; // nur Buchstaben v e r s c h l u e s s e l n Kommentar Mit der Bedingung (ch >= A && ch <= Z ) wird das Zeichen ch im Alphabet verortet. Der Ausdruck ch - A ermittelt den Abstand des Zeichens zum Buchstaben A. (ch - A + verschiebung) % 26 addiert zum Abstand die Verschiebung und teilt mit Rest durch 26. Zuletzt wird der Codewert von A wieder addiert (+ A ), damit das Alphabet nicht beim Code 0 beginnt (im ASCII hat A den Wert 65) Eine Zeichenkette verschlüsseln S t r i n g v e r s c h l u e s s e l n ( S t r i n g s, int verschiebung ) { s = s. touppercase ( ) ; // a l l e s in Majuskeln char [ ] chars = s. tochararray ( ) ; // Array b i l d e n for ( int i = 0 ; i < s. l ength ( ) ; i++) { chars [ i ] = v e r s c h l u e s s e l n ( chars [ i ], verschiebung ) ; // wieder in S t r i n g wandeln return S t r i n g. valueof ( chars ) ; Kommentar Alle Kleinbuchstaben (Minuskeln) werden zunächst in Großbuchstaben (Majuskeln) gewandelt. Dann wird der String in ein Array von char gewandelt und jedes Zeichen mit der Methode aus dem vorigen Abschnitt verschlüsselt. Die Verschiebung als Parameter der Funktion wird dabei einfach weitergereicht (chars[i] = verschluesseln(chars[i], verschiebung)) Aufruf der Methode private void jbutton1actionperformed ( java. awt. event. ActionEvent evt ) { // Caesar V e r s c h l u e s s e l u n g anwenden int s h i f t = I n t e g e r. p a r s e I n t ( j TextField1. gettext ( ) ) ; S t r i n g k l a r t e x t = jtextarea1. gettext ( ) ; S t r i n g geheimtext = v e r s c h l u e s s e l n ( k l a r t e x t, s h i f t ) ; jtextarea2. settext ( geheimtext + " \n " ) ; Kommentar Da die Inhalte der Textbereiche nur aus je einem String bestehen, ist die Behandlung sehr einfach. Der String klartext wird mit gettext()

9 Methoden in Java 8 ermittelt und direkt in den Aufruf von verschluesseln() als Parameter übergeben: verschluesseln(klartext, shift) Das Ergebnis kann im laufenden Programm betrachtet werden:

10 Methoden in Java Aufgaben 1. Lege ein Projekt vom Typ Java Desktop Application an und speichere es unter dem Namen Kryptowerkzeug. Statte das Formular mit den Textbereichen (JTextArea) für Klar- und Geheimtext aus und lasse noch Platz für Textfelder (JTextField) und Buttons. Implementiere die beiden Methoden für die Caesar-Verschlüsselung und teste sie mit einem entsprechenden Button, wie in den Screenshots oben dargestellt. 2. Füge eine Funktion char entschluesseln(char ch,int verschiebung) hinzu, die bei gegebener Verschiebung die Verschlüsselung eines Zeichens rückgängig macht. Ergänze die Funktion String entschluesseln(string s,int verschiebung) Teste die Methoden mittels eines zugehörigen Buttons. 3. Nutzung der verschluesseln()-funktion Wie man leicht sieht, bedeutet Entschlüsseln nichts anderes als Verschlüsseln mit einem geeigneten Schlüssel. Entwirf und implementiere eine Funktion char entschluesseln2(char ch,int verschiebung) die die verschluesseln()-funktion für ein Zeichen aufruft. 4. Automatisches Entschlüsseln ohne Kenntnis der Verschiebung Ein hinreichend langer Caesar-verschlüsselter deutscher Text kann leicht geknackt werden, da der häufigste Buchstabe in deutschen Texten das E ist. a) Implementiere eine Funktion char haeufigst(string s) die den häufigsten Buchstaben der gegebenen Zeichenkette ermittelt. Falls mehrere Buchstaben gleich häufig auftreten, soll derjenige ermittelt werden, der am weitesten vorn im Alphabet steht. b) Implementiere eine Funktion int abstand(char ch) die aus dem gegebenen Zeichen den Abstand zum Buchstaben E und damit die Verschiebung im Caesar-Chiffre ermittelt. Durch den Aufruf int verschiebung = abstand(haeufigst(s)); soll die Verschiebung einer Zeichenkette s automatisch ermittelt werden. c) Rufe nun die automatische Entschlüsselung für einen hinreichend langen Text auf. Der Aufruf String klartxt = entschluesseln(abstand(haeufigst(geheimtext))); sollte für einen geeigneten String geheimtext zur Entschlüsselung führen.

11 Methoden in Java Vigenère-Verschlüsselung Eine wesentliche Verbesserung der Caesar-Verschlüsselung stellt die Verwendung mehrerer Alphabete für einen Klartext dar. Jeder Buchstabe des Klartextes bekommt einen eigenen Schlüsselbuchstaben und damit eine eigene Verschiebung im Caesar-Sinne an die Seite gestellt. Das Prinzip geht auf Blaise de Vigenère ( ) zurück und wird heute als polyalphabetische Substitution bezeichnet So geht s Die verschiedenen Alphabete werden in Form eines Schlüsselwortes an den Klartext angelegt. Ist es kürzer als der Klartext, wird es so lange wiederholt, bis jeder Klartextbuchstabe seinen Schlüsselbuchstaben hat. Der Schlüssel sei FARBE: HEUTE ABEND BERATUNG FARBEFARBEFARBEFARBE H wird mit F verschlüsselt. F ist der 6. Buchstabe im Alphabet, also ist die Verschiebung 5. Die Chiffre ist somit M. Der 2. Buchstabe, das E, erhält mit dem Buchstaben A die Verschiebung 0, und hat somit die Chiffre E usw. Jeder Klartextbuchstabe wird also mit der Position des Schlüsselbuchstaben im Alphabet Caesar-verschlüsselt. Nicht-Buchstaben werden nicht verschlüsselt. H E U T E A B E N D... Klartext F A R B E F A R B E F Schlüssel (0) Verschiebung M E L U I A S F R I Chiffre Zur Programmierung schreiben wir als erstes eine Funktion int verschiebung(char buchstabe). Sie soll den Abstand zum Buchstaben A für jeden gegebenen Buchstaben ermitteln (siehe Aufgaben). Dann wird jeder Buchstabe mit der ermittelten Verschiebung nach dem Caesar-Prinzip verschlüsselt. Wir verwenden also eine Methode aus dem letzten Abschnitt wieder. 2.4 Aufgaben 1. Ergänze im Projekt Kryptowerkzeug ein JTextField für die Eingabe des Schlüsselwortes und Buttons für Ver- und Entschlüsselung nach Vigenère. Kennzeichne die schon bestehenden Buttons mit der Notiz Caesar. 2. Implementiere die Funktion int verschiebung(char buchstabe) Nun kann jeder Klartextbuchstabe mit dem Aufruf char chiff = verschluesseln(klarbuchstabe,verschiebung(schluesselbuchstabe)); bestimmt werden. 3. Entwirf und implementiere die Funktionen zum Ver- und Entschlüsseln nach Vigenère. Ihre Köpfe lauten String vigenereverschluesseln(string klartext,string schluessel) und String vigenereentschluesseln(string klartext,string schluessel) Beachte auch den Fall, in dem der Schlüssel länger als der Klartext ist.

12 3 Lerneinheit Drei Anlegen von Klassen Wir haben (hoffentlich) in den Programmierübungen darauf geachtet, die Verschlüsselungsarbeit den neuen Funktionen zu übertragen, also verschluesseln(), vigenereentschluesseln() usw. Damit haben wir die Möglichkeit, die neuen Funktionen auch in Programmen zu verwenden, die nicht Swing als grafische Oberfläche verwenden, zum Beispiel in Konsolenanwendungen oder in Programmen mit JavaFX. Wir gehen nun noch einen Schritt weiter und lagern die Funktionen in eine Klasse aus. 3.1 Die Klasse Krypto Wir legen eine neue Datei im gleichen Verzeichnis des Hauptprogramms an. Bei unserem Projekt Kryptowerkzeug in NetBeans fügen wir im Paket kryptowerkzeug eine neue Klasse an und nennen sie Krypto Variante 1 mit statischen Methoden Den Methoden werden die Qualifizierer public und static hinzugefügt. Letzterer ermöglicht den Aufruf ohne Anlegen eines Objekts, somit einfach so. public class Krypto { public static char v e r s c h l u e s s e l n ( char ch, int verschiebung ) { i f ( ch >= A && ch <= Z ) { return ( char ) ( ( ch A + verschiebung ) % 26 + A ) ; else { return ch ; // nur Buchstaben v e r s c h l u e s s e l n public static S t r i n g v e r s c h l u e s s e l n ( S t r i n g s, int verschiebung ) { s = s. touppercase ( ) ; // a l l e s in Grossbuchstaben char [ ] chars = s. tochararray ( ) ;

13 Methoden in Java 12 // ein Array b i l d e n for ( int i = 0 ; i < s. l ength ( ) ; i++) { chars [ i ] = v e r s c h l u e s s e l n ( chars [ i ], verschiebung ) ; return S t r i n g. valueof ( chars ) ; // wieder in S t r i n g wandeln Der Aufruf geschieht durch Voranstellen des Klassennamens: Krypto.verschluesseln() private void jbutton1actionperformed ( java. awt. event. ActionEvent evt ) { // Caesar V e r s c h l u e s s e l u n g anwenden int s h i f t = I n t e g e r. p a r s e I n t ( j T extfield1. gettext ( ) ) ; S t r i n g k l a r t e x t = jtextarea1. gettext ( ) ; S t r i n g geheimtext = Krypto. v e r s c h l u e s s e l n ( k l a r t e x t, s h i f t ) ; jtextarea2. settext ( geheimtext + " \n " ) ; Bei dieser Variante der Nutzung einer Klasse werden die Methoden statisch kompiliert, d. h. beim Übersetzen des Programms sofort zur Verfügung gestellt. Für unser Problem ist das eine dem Problem angemessene Variante. Jedoch soll auch die Alternative vorgestellt werden: Variante 2: Anlegen von Objekten der Klasse Bei dieser Variante wird der Qualifizierer static weggelassen, und die Methoden werden erst zur Verfügung gestellt, wenn ein Objekt der Klasse während der Laufzeit des Programms erzeugt wird. Dieses Objekt kann dann die Methode. Der Aufruf geschieht dann wie folgt: Krypto v e r s c h l u e s s e l e r = new Krypto ( ) ; // Anlegen e i n e s O b jekts private void jbutton1actionperformed ( java. awt. event. ActionEvent evt ) { // Caesar V e r s c h l u e s s e l u n g anwenden int s h i f t = I n t e g e r. p a r s e I n t ( j T extfield1. gettext ( ) ) ; S t r i n g k l a r t e x t = jtextarea1. gettext ( ) ; //Das Objekt v e r s c h l u e s s e l e r " kann " v e r s c h l u e s s e l n S t r i n g geheimtext = v e r s c h l u e s s e l e r. v e r s c h l u e s s e l n ( k l a r t e x t, s h i f t ) ; jtextarea2. settext ( geheimtext + " \n " ) ; Das Objekt verschluesseler wird im Hauptprogramm genau einmal zur Verfügung gestellt, also in diesem Fall außerhalb der Button-Prozedur. Damit kann es von jeder Stelle im Hauptprogramm aufgerufen werden.

14 Methoden in Java Aufgaben 1. Wähle für diese Aufgabe eins der beiden beschriebenen Verfahren aus (empfohlen werden die statischen Methoden). Lagere die Methoden zur Verschlüsselung in die Klasse Krypto aus und teste, ob das Programm noch wie gewohnt arbeitet. 2. Einige Methoden werden gar nicht vom GUI aufgerufen. Streiche bei ihnen den Qualifizierer public und ersetze ihn durch private. Wenn diese Methoden nur aus der Klasse Krypto aufgerufen werden, verhält sich das Programm wie gewohnt.

15 4 Lerneinheit Vier Kommentieren mit javadoc Mit zunehmendem Umfang der programmierten Methoden wird es notwendig, für ein wenig mehr Durchblick zu sorgen, damit die Projektpartnerin oder der -partner jederzeit über die Methoden Bescheid weiß. Auch geraten die eigenen Quelltexte mit der Zeit in Vergessenheit. Weiß man nach drei Wochen oder 2 Monaten noch über alle Fähigkeiten des eigenen Programms kompetent auszusagen? 4.1 Sprechende Bezeichner Erste Maßnahme für guten Durchblick ist, den Methoden und Variablen Namen zu geben, die über den Sinn des Programmierten Auskunft geben. geeignet ungeeignet Erläuterung verschluesseln() v() Einbuchstabig sagt zu wenig abstand abcd leuchtet hoffentlich ein klartext klausdieter Witzischkeit kennt keine Grenzen i,j,x,y Zähler oder Koordinaten dürfen kurz sein verschluesseln() verschl() Absprachen müssen eingehalten werden encrypt() verschluesseln() Englisch kann Pflicht sein 4.2 Glasklar ausgedrückt mit javadoc Jeder Methode wird ein Kommentar vorangestellt, der mit /** beginnt und mit */ endet. Diese Kommentare haben es in sich: Sie werden in den IDEs beim Vervollständigen des Codes angezeigt. Man beschreibt dort den Nutzen der Methode, die Parameter, den Rückgabewert und den Autor (@author). / v e r s c h l u e s s e l t einen Buchstaben nach Caesar. Andere Zeichen b l e i b e n ch der gegebene K l a r t e x t b u c h s t a b v e r s c h i e b u n g d i e Verschiebung im der e r m i t t e l t e Geheimtextbuchstabe / public char v e r s c h l u e s s e l n ( char ch, int verschiebung ) { // h i e r kommt der Rumpf der Methode Die Javadoc-Kommentare helfen bei der Dokumentation des Programms, speziell aber im täglichen Umgang mit dem Programmcode in Teams. Sie stellen die Grundlage einer Arbeit im Team dar, bei der sich jeder auf den anderen verlassen kann. Namen von Variablen und Methoden sowie deren Parameterlisten müssen genau abgesprochen und eingehalten werden.

16 5 Lerneinheit Fünf Komplexaufgabe: Enigma Die Verschlüsselungsmaschine Enigma ist eines der elektromechanischen Geräte, die im 20. Jahrhundert die Kryptografie deutlich komplexer machten, da die Zahl der möglichen Chiffren enorm erhöht werden konnte. Die Enigma wurde berühmt, da sie einerseits flächendeckend in der deutschen Wehrmacht im 2. Weltkrieg eingesetzt und für unknackbar erklärt wurde, andererseits vor allem von polnischen und britischen Kryptologen, letztere angeführt vom Informatikpionier Alan Turing, entschlüsselt wurde. Mittlerweile ist die Enigma wohl das am besten dokumentierte Verschlüsselungsgerät des 20. Jahrhunderts. Eine detaillierte Beschreibung findet sich auf Aufgaben Ziel der Aufgaben ist es, Teile der Funktionsweise der Enigma zu emulieren (nachzubilden) und dabei Unterprogramme effektiv einzusetzen. 1. Rotoren der Enigma modellieren Jeder der bis zu 10 verschiedenen Rotoren stellt eine Permutation des Alphabets zur Verfügung. Entwirf und implementiere eine Datenstruktur, die auf einem oder mehreren Arrays basiert und die Rotoren fest im Programm einbaut. Das Steckbrett, der Ring und die Kerben vernachlässigen wir für die Aufgabe. 2. Wir nehmen für diese Aufgabe die Variante der Enigma mit drei Rotoren an. Als Schlüssel kann man einerseits die Wahl der Rotoren und ihre Anordnung und die Folge der Buchstaben nehmen, die als Startstellung der drei Walzen genommen werden. Zum Beispiel könnten die Rotoren I, IV und III und deren Anfangsstellung C, Z bzw. G gegeben sein. Implementiere eine Datenstruktur, die die Eingabe des Schlüssels ermöglicht. 3. Simulation des ersten Rotors Durch Eingabe eines Buchstabens wird im ersten Rotor der Geheimbuchstabe ermittelt, dann wird der Rotor um eine Position weitergedreht. Schreibe eine Methode, die die Arbeitsweise des ersten Rotors umsetzt. 4. Der zweite Rotor nimmt den Buchstaben vom ersten entgegen und bildet den nächsten Buchstaben. Er dreht sich aber nur um eine Position weiter, wenn sich der erste 26-mal gedreht hat, d. h. einmal um seine Achse. Analog arbeitet der dritte Rotor. Implementiere auch den zweiten und dritten Rotor. Teste das Programm. 5. Nun folgt der Reflektor und die Rückübertragung bis zum ersten Rotor. Implementiere nun die übrigen Methoden. Versuche, so viel Code wie möglich wiederzuverwenden. 6. Probiere nun die programmierte Enigma aus. Zur Kontrolle kann dienen: Jeder Geheimtext erzeugt beim Durchlaufen der Enigma beim gleichen Schlüssel wieder den Klartext.

4 Codierung nach Viginere (Lösung)

4 Codierung nach Viginere (Lösung) Kapitel 4 Codierung nach Viginere (Lösung) Seite 1/14 4 Codierung nach Viginere (Lösung) 4.1 Einführung Blaise de Vigenère lebte von 1523 bis 1596 in Frankreich und war nach dem Studium bei verschiedenen

Mehr

Programmierkurs Java

Programmierkurs Java Programmierkurs Java Dr. Dietrich Boles Aufgaben zu UE16-Rekursion (Stand 09.12.2011) Aufgabe 1: Implementieren Sie in Java ein Programm, das solange einzelne Zeichen vom Terminal einliest, bis ein #-Zeichen

Mehr

Verschlüsselung. Kirchstraße 18 Steinfelderstraße 53 76831 Birkweiler 76887 Bad Bergzabern. 12.10.2011 Fabian Simon Bfit09

Verschlüsselung. Kirchstraße 18 Steinfelderstraße 53 76831 Birkweiler 76887 Bad Bergzabern. 12.10.2011 Fabian Simon Bfit09 Verschlüsselung Fabian Simon BBS Südliche Weinstraße Kirchstraße 18 Steinfelderstraße 53 76831 Birkweiler 76887 Bad Bergzabern 12.10.2011 Fabian Simon Bfit09 Inhaltsverzeichnis 1 Warum verschlüsselt man?...3

Mehr

10. Kryptographie. Was ist Kryptographie?

10. Kryptographie. Was ist Kryptographie? Chr.Nelius: Zahlentheorie (SoSe 2015) 39 10. Kryptographie Was ist Kryptographie? Die Kryptographie handelt von der Verschlüsselung (Chiffrierung) von Nachrichten zum Zwecke der Geheimhaltung und von dem

Mehr

Das RSA-Verschlüsselungsverfahren 1 Christian Vollmer

Das RSA-Verschlüsselungsverfahren 1 Christian Vollmer Das RSA-Verschlüsselungsverfahren 1 Christian Vollmer Allgemein: Das RSA-Verschlüsselungsverfahren ist ein häufig benutztes Verschlüsselungsverfahren, weil es sehr sicher ist. Es gehört zu der Klasse der

Mehr

Objektorientierte Programmierung für Anfänger am Beispiel PHP

Objektorientierte Programmierung für Anfänger am Beispiel PHP Objektorientierte Programmierung für Anfänger am Beispiel PHP Johannes Mittendorfer http://jmittendorfer.hostingsociety.com 19. August 2012 Abstract Dieses Dokument soll die Vorteile der objektorientierten

Mehr

Übungsblatt 3: Algorithmen in Java & Grammatiken

Übungsblatt 3: Algorithmen in Java & Grammatiken Humboldt-Universität zu Berlin Grundlagen der Programmierung (Vorlesung von Prof. Bothe) Institut für Informatik WS 15/16 Übungsblatt 3: Algorithmen in Java & Grammatiken Abgabe: bis 9:00 Uhr am 30.11.2015

Mehr

1 Vom Problem zum Programm

1 Vom Problem zum Programm Hintergrundinformationen zur Vorlesung GRUNDLAGEN DER INFORMATIK I Studiengang Elektrotechnik WS 02/03 AG Betriebssysteme FB3 Kirsten Berkenkötter 1 Vom Problem zum Programm Aufgabenstellung analysieren

Mehr

Objektorientierte Programmierung

Objektorientierte Programmierung Objektorientierte Programmierung 1 Geschichte Dahl, Nygaard: Simula 67 (Algol 60 + Objektorientierung) Kay et al.: Smalltalk (erste rein-objektorientierte Sprache) Object Pascal, Objective C, C++ (wiederum

Mehr

Kryptologie. Verschlüsselungstechniken von Cäsar bis heute. Arnulf May

Kryptologie. Verschlüsselungstechniken von Cäsar bis heute. Arnulf May Kryptologie Verschlüsselungstechniken von Cäsar bis heute Inhalt Was ist Kryptologie Caesar Verschlüsselung Entschlüsselungsverfahren Die Chiffrierscheibe Bestimmung der Sprache Vigenére Verschlüsselung

Mehr

Thüringer Kultusministerium. Abiturprüfung 2000

Thüringer Kultusministerium. Abiturprüfung 2000 Thüringer Kultusministerium Arbeitszeit: Hilfsmittel: Abiturprüfung 2000 270 Minuten Leistungsfach Informatik (Haupttermin) Formeln und Tabellen für die Sekundarstufen I und II/ Paetec, Gesellschaft für

Mehr

Java: Vererbung. Teil 3: super() www.informatikzentrale.de

Java: Vererbung. Teil 3: super() www.informatikzentrale.de Java: Vererbung Teil 3: super() Konstruktor und Vererbung Kindklasse ruft SELBSTSTÄNDIG und IMMER zuerst den Konstruktor der Elternklasse auf! Konstruktor und Vererbung Kindklasse ruft SELBSTSTÄNDIG und

Mehr

M. Graefenhan 2000-12-07. Übungen zu C. Blatt 3. Musterlösung

M. Graefenhan 2000-12-07. Übungen zu C. Blatt 3. Musterlösung M. Graefenhan 2000-12-07 Aufgabe Lösungsweg Übungen zu C Blatt 3 Musterlösung Schreiben Sie ein Programm, das die Häufigkeit von Zeichen in einem eingelesenen String feststellt. Benutzen Sie dazu ein zweidimensionales

Mehr

Cacherhochschule CHS. Teil II polyalphabetische Substitutionschiffren

Cacherhochschule CHS. Teil II polyalphabetische Substitutionschiffren Cacherhochschule CHS Multi-Mystery Rätselhilfe -Event Teil II polyalphabetische Substitutionschiffren Herzlich willkommen! Kurz zur Erinnerung: Teil I behandelte Chiffren und Codes Polybios, Vanity, ROT

Mehr

Übungen zu Einführung in die Informatik: Programmierung und Software-Entwicklung: Lösungsvorschlag

Übungen zu Einführung in die Informatik: Programmierung und Software-Entwicklung: Lösungsvorschlag Ludwig-Maximilians-Universität München WS 2015/16 Institut für Informatik Übungsblatt 9 Prof. Dr. R. Hennicker, A. Klarl Übungen zu Einführung in die Informatik: Programmierung und Software-Entwicklung:

Mehr

Binäre Bäume. 1. Allgemeines. 2. Funktionsweise. 2.1 Eintragen

Binäre Bäume. 1. Allgemeines. 2. Funktionsweise. 2.1 Eintragen Binäre Bäume 1. Allgemeines Binäre Bäume werden grundsätzlich verwendet, um Zahlen der Größe nach, oder Wörter dem Alphabet nach zu sortieren. Dem einfacheren Verständnis zu Liebe werde ich mich hier besonders

Mehr

Software Engineering Interaktionsdiagramme

Software Engineering Interaktionsdiagramme Software Engineering Interaktionsdiagramme Prof. Adrian A. Müller, PMP, PSM 1, CSM Fachbereich Informatik und Mikrosystemtechnik 1 Nachrichtenaustausch Welche Nachrichten werden ausgetauscht? (Methodenaufrufe)

Mehr

II. Grundlagen der Programmierung. 9. Datenstrukturen. Daten zusammenfassen. In Java (Forts.): In Java:

II. Grundlagen der Programmierung. 9. Datenstrukturen. Daten zusammenfassen. In Java (Forts.): In Java: Technische Informatik für Ingenieure (TIfI) WS 2005/2006, Vorlesung 9 II. Grundlagen der Programmierung Ekkart Kindler Funktionen und Prozeduren Datenstrukturen 9. Datenstrukturen Daten zusammenfassen

Mehr

Zeichen bei Zahlen entschlüsseln

Zeichen bei Zahlen entschlüsseln Zeichen bei Zahlen entschlüsseln In diesem Kapitel... Verwendung des Zahlenstrahls Absolut richtige Bestimmung von absoluten Werten Operationen bei Zahlen mit Vorzeichen: Addieren, Subtrahieren, Multiplizieren

Mehr

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren Lineargleichungssysteme: Additions-/ Subtraktionsverfahren W. Kippels 22. Februar 2014 Inhaltsverzeichnis 1 Einleitung 2 2 Lineargleichungssysteme zweiten Grades 2 3 Lineargleichungssysteme höheren als

Mehr

11. Das RSA Verfahren und andere Verfahren

11. Das RSA Verfahren und andere Verfahren Chr.Nelius: Kryptographie (SS 2011) 31 11. Das RSA Verfahren und andere Verfahren Eine konkrete Realisierung eines Public Key Kryptosystems ist das sog. RSA Verfahren, das im Jahre 1978 von den drei Wissenschaftlern

Mehr

Ein Projekt mit JavaFX erstellen

Ein Projekt mit JavaFX erstellen Ein Projekt mit JavaFX erstellen Das Projekt Es soll eine Umrechnung der Geschwindigkeit aus der Einheit m/s in die Einheit km/h erfolgen. Zu diesem Zweck wird ein einzeiliges Textfeld für die Eingabe

Mehr

PeDaS Personal Data Safe. - Bedienungsanleitung -

PeDaS Personal Data Safe. - Bedienungsanleitung - PeDaS Personal Data Safe - Bedienungsanleitung - PeDaS Bedienungsanleitung v1.0 1/12 OWITA GmbH 2008 1 Initialisierung einer neuen SmartCard Starten Sie die PeDaS-Anwendung, nachdem Sie eine neue noch

Mehr

Einführung in die Java- Programmierung

Einführung in die Java- Programmierung Einführung in die Java- Programmierung Dr. Volker Riediger Tassilo Horn riediger horn@uni-koblenz.de WiSe 2012/13 1 Wichtig... Mittags keine Pommes... Praktikum A 230 C 207 (Madeleine + Esma) F 112 F 113

Mehr

Java Kurs für Anfänger Einheit 5 Methoden

Java Kurs für Anfänger Einheit 5 Methoden Java Kurs für Anfänger Einheit 5 Methoden Ludwig-Maximilians-Universität München (Institut für Informatik: Programmierung und Softwaretechnik von Prof.Wirsing) 22. Juni 2009 Inhaltsverzeichnis Methoden

Mehr

5.2 Neue Projekte erstellen

5.2 Neue Projekte erstellen 5.2 Neue Projekte erstellen Das Bearbeiten von bestehenden Projekten und Objekten ist ja nicht schlecht wie aber können Sie neue Objekte hinzufügen oder gar völlig neue Projekte erstellen? Die Antwort

Mehr

Einführung in die Programmierung

Einführung in die Programmierung : Inhalt Einführung in die Programmierung Wintersemester 2008/09 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund - mit / ohne Parameter - mit / ohne Rückgabewerte

Mehr

Es sollte die MS-DOS Eingabeaufforderung starten. Geben Sie nun den Befehl javac ein.

Es sollte die MS-DOS Eingabeaufforderung starten. Geben Sie nun den Befehl javac ein. Schritt 1: Installation des Javacompilers JDK. Der erste Start mit Eclipse Bevor Sie den Java-Compiler installieren sollten Sie sich vergewissern, ob er eventuell schon installiert ist. Gehen sie wie folgt

Mehr

Sicherer Datenaustausch mit EurOwiG AG

Sicherer Datenaustausch mit EurOwiG AG Sicherer Datenaustausch mit EurOwiG AG Inhalt AxCrypt... 2 Verschlüsselung mit Passwort... 2 Verschlüsseln mit Schlüsseldatei... 2 Entschlüsselung mit Passwort... 4 Entschlüsseln mit Schlüsseldatei...

Mehr

Der Aufruf von DM_in_Euro 1.40 sollte die Ausgabe 1.40 DM = 0.51129 Euro ergeben.

Der Aufruf von DM_in_Euro 1.40 sollte die Ausgabe 1.40 DM = 0.51129 Euro ergeben. Aufgabe 1.30 : Schreibe ein Programm DM_in_Euro.java zur Umrechnung eines DM-Betrags in Euro unter Verwendung einer Konstanten für den Umrechnungsfaktor. Das Programm soll den DM-Betrag als Parameter verarbeiten.

Mehr

Jahrgang: Jahrgang 1. Thema: Systementwicklung einer Webapplikation - Geheimnachrichten-Generator

Jahrgang: Jahrgang 1. Thema: Systementwicklung einer Webapplikation - Geheimnachrichten-Generator Seite 1 Idee, Zweck, Systembeschreibung: In der Schule benötigen die Personen einen Geheimnachrichten- Generator. Hierfür soll es möglich sein, auf einer Benutzeroberfläche (Hauptfenster) nach der Eingabe

Mehr

Primzahlen und RSA-Verschlüsselung

Primzahlen und RSA-Verschlüsselung Primzahlen und RSA-Verschlüsselung Michael Fütterer und Jonathan Zachhuber 1 Einiges zu Primzahlen Ein paar Definitionen: Wir bezeichnen mit Z die Menge der positiven und negativen ganzen Zahlen, also

Mehr

Fachgebiet Informationssysteme Prof. Dr.-Ing. N. Fuhr. Programmierung Prof. Dr.-Ing. Nobert Fuhr. Übungsblatt Nr. 6

Fachgebiet Informationssysteme Prof. Dr.-Ing. N. Fuhr. Programmierung Prof. Dr.-Ing. Nobert Fuhr. Übungsblatt Nr. 6 Gudrun Fischer Sascha Kriewel programmierung@is.informatik.uni-duisburg.de Anmeldung zur Klausur! Übungsblatt Nr. 6 Um an der Klausur teilzunehmen, müssen sich Studierende der angewandten Informatik in

Mehr

Bauteilattribute als Sachdaten anzeigen

Bauteilattribute als Sachdaten anzeigen Mit den speedikon Attributfiltern können Sie die speedikon Attribute eines Bauteils als MicroStation Sachdaten an die Elemente anhängen Inhalte Was ist ein speedikon Attribut?... 3 Eigene Attribute vergeben...

Mehr

Informatik 2 Labor 2 Programmieren in MATLAB Georg Richter

Informatik 2 Labor 2 Programmieren in MATLAB Georg Richter Informatik 2 Labor 2 Programmieren in MATLAB Georg Richter Aufgabe 3: Konto Um Geldbeträge korrekt zu verwalten, sind zwecks Vermeidung von Rundungsfehlern entweder alle Beträge in Cents umzuwandeln und

Mehr

Einführung in die Programmierung

Einführung in die Programmierung Technische Universität München WS 2003/2004 Institut für Informatik Prof. Dr. Christoph Zenger Testklausur Einführung in die Programmierung Probeklausur Java (Lösungsvorschlag) 1 Die Klasse ArrayList In

Mehr

Drei-Schichten-Architektur. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 16: 3-Schichten-Architektur 1 Fachkonzept - GUI

Drei-Schichten-Architektur. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 16: 3-Schichten-Architektur 1 Fachkonzept - GUI Universität Osnabrück Drei-Schichten-Architektur 3 - Objektorientierte Programmierung in Java Vorlesung 6: 3-Schichten-Architektur Fachkonzept - GUI SS 2005 Prof. Dr. F.M. Thiesing, FH Dortmund Ein großer

Mehr

Übungen 19.01.2012 Programmieren 1 Felix Rohrer. Übungen

Übungen 19.01.2012 Programmieren 1 Felix Rohrer. Übungen Übungen if / else / else if... 2... 2 Aufgabe 2:... 2 Aufgabe 3:... 2 Aufgabe 4:... 2 Aufgabe 5:... 2 Aufgabe 6:... 2 Aufgabe 7:... 3 Aufgabe 8:... 3 Aufgabe 9:... 3 Aufgabe 10:... 3 switch... 4... 4 Aufgabe

Mehr

Mit der Maus im Menü links auf den Menüpunkt 'Seiten' gehen und auf 'Erstellen klicken.

Mit der Maus im Menü links auf den Menüpunkt 'Seiten' gehen und auf 'Erstellen klicken. Seite erstellen Mit der Maus im Menü links auf den Menüpunkt 'Seiten' gehen und auf 'Erstellen klicken. Es öffnet sich die Eingabe Seite um eine neue Seite zu erstellen. Seiten Titel festlegen Den neuen

Mehr

teischl.com Software Design & Services e.u. office@teischl.com www.teischl.com/booknkeep www.facebook.com/booknkeep

teischl.com Software Design & Services e.u. office@teischl.com www.teischl.com/booknkeep www.facebook.com/booknkeep teischl.com Software Design & Services e.u. office@teischl.com www.teischl.com/booknkeep www.facebook.com/booknkeep 1. Erstellen Sie ein neues Rechnungsformular Mit book n keep können Sie nun Ihre eigenen

Mehr

5 DATEN. 5.1. Variablen. Variablen können beliebige Werte zugewiesen und im Gegensatz zu

5 DATEN. 5.1. Variablen. Variablen können beliebige Werte zugewiesen und im Gegensatz zu Daten Makro + VBA effektiv 5 DATEN 5.1. Variablen Variablen können beliebige Werte zugewiesen und im Gegensatz zu Konstanten jederzeit im Programm verändert werden. Als Variablen können beliebige Zeichenketten

Mehr

DEUTSCHE GESELLSCHAFT FÜR ZERSTÖRUNGSFREIE PRÜFUNG E.V.

DEUTSCHE GESELLSCHAFT FÜR ZERSTÖRUNGSFREIE PRÜFUNG E.V. DEUTSCHE GESELLSCHAFT FÜR ZERSTÖRUNGSFREIE PRÜFUNG E.V. ZfP-Sonderpreis der DGZfP beim Landeswettbewerb Jugend forscht SCHÜEX NIEDERSACHSEN Symmetrische Verschlüsselung und Entschlüsselung von Texten Daniel

Mehr

1. Allgemein 2. 2. Speichern und Zwischenspeichern des Designs 2. 3. Auswahl der zu bearbeitenden Seite 2. 4. Text ergänzen 3. 5. Textgrösse ändern 3

1. Allgemein 2. 2. Speichern und Zwischenspeichern des Designs 2. 3. Auswahl der zu bearbeitenden Seite 2. 4. Text ergänzen 3. 5. Textgrösse ändern 3 Inhaltsverzeichnis 1. Allgemein 2 2. Speichern und Zwischenspeichern des Designs 2 3. Auswahl der zu bearbeitenden Seite 2 4. Text ergänzen 3 5. Textgrösse ändern 3 6. Schriftart ändern 3 7. Textfarbe

Mehr

VB.net Programmierung und Beispielprogramm für GSV

VB.net Programmierung und Beispielprogramm für GSV VB.net Programmierung und Beispielprogramm für GSV Dokumentation Stand vom 26.05.2011 Tel +49 (0)3302 78620 60, Fax +49 (0)3302 78620 69, info@me-systeme.de, www.me-systeme.de 1 Inhaltsverzeichnis Vorwort...2

Mehr

SEPA-Anleitung zum Release 3.09

SEPA-Anleitung zum Release 3.09 Hier folgt nun eine kurze Information was sich mit dem neuen Release 3.08 zum Thema SEPA alles ändert. Bitte diese Anleitung sorgfältig lesen, damit bei der Umsetzung keine Fragen aufkommen. Bitte vor

Mehr

Würfelt man dabei je genau 10 - mal eine 1, 2, 3, 4, 5 und 6, so beträgt die Anzahl. der verschiedenen Reihenfolgen, in denen man dies tun kann, 60!.

Würfelt man dabei je genau 10 - mal eine 1, 2, 3, 4, 5 und 6, so beträgt die Anzahl. der verschiedenen Reihenfolgen, in denen man dies tun kann, 60!. 040304 Übung 9a Analysis, Abschnitt 4, Folie 8 Die Wahrscheinlichkeit, dass bei n - maliger Durchführung eines Zufallexperiments ein Ereignis A ( mit Wahrscheinlichkeit p p ( A ) ) für eine beliebige Anzahl

Mehr

Satzhilfen Publisher Seite Einrichten

Satzhilfen Publisher Seite Einrichten Satzhilfen Publisher Seite Einrichten Es gibt verschiedene Möglichkeiten die Seite einzurichten, wir fangen mit der normalen Version an, Seite einrichten auf Format A5 Wählen Sie zunächst Datei Seite einrichten,

Mehr

Wie Sie beliebig viele PINs, die nur aus Ziffern bestehen dürfen, mit einem beliebigen Kennwort verschlüsseln: Schritt 1

Wie Sie beliebig viele PINs, die nur aus Ziffern bestehen dürfen, mit einem beliebigen Kennwort verschlüsseln: Schritt 1 Wie Sie beliebig viele PINs, die nur aus Ziffern bestehen dürfen, mit einem beliebigen Kennwort verschlüsseln: Schritt 1 Zunächst einmal: Keine Angst, die Beschreibung des Verfahrens sieht komplizierter

Mehr

Erstellen einer digitalen Signatur für Adobe-Formulare

Erstellen einer digitalen Signatur für Adobe-Formulare Erstellen einer digitalen Signatur für Adobe-Formulare (Hubert Straub 24.07.13) Die beiden Probleme beim Versenden digitaler Dokumente sind einmal die Prüfung der Authentizität des Absenders (was meist

Mehr

HANDBUCH PHOENIX II - DOKUMENTENVERWALTUNG

HANDBUCH PHOENIX II - DOKUMENTENVERWALTUNG it4sport GmbH HANDBUCH PHOENIX II - DOKUMENTENVERWALTUNG Stand 10.07.2014 Version 2.0 1. INHALTSVERZEICHNIS 2. Abbildungsverzeichnis... 3 3. Dokumentenumfang... 4 4. Dokumente anzeigen... 5 4.1 Dokumente

Mehr

Klausur WS 2006/07 Programmiersprache Java Objektorientierte Programmierung II 15. März 2007

Klausur WS 2006/07 Programmiersprache Java Objektorientierte Programmierung II 15. März 2007 Fachhochschule Bonn-Rhein-Sieg University of Applied Sciences Fachbereich Informatik Prof. Dr. Peter Becker Klausur WS 2006/07 Programmiersprache Java Objektorientierte Programmierung II 15. März 2007

Mehr

Exkurs Kryptographie

Exkurs Kryptographie Exkurs Kryptographie Am Anfang Konventionelle Krytographie Julius Cäsar mißtraute seinen Boten Ersetzen der Buchstaben einer Nachricht durch den dritten folgenden im Alphabet z. B. ABCDEFGHIJKLMNOPQRSTUVWXYZ

Mehr

Klausur in Programmieren

Klausur in Programmieren Studiengang Sensorik/Sensorsystemtechnik Note / normierte Punkte Klausur in Programmieren Winter 2009/2010, 18. Februar 2010 Dauer: 1,5h Hilfsmittel: Keine (Wörterbücher sind auf Nachfrage erlaubt) Name:

Mehr

14.4.2016. Technische Hochschule Georg Agricola WORKSHOP TEIL 3. IKT (Informations- und Kommunikationstechnik) an einer MorseApp erklärt

14.4.2016. Technische Hochschule Georg Agricola WORKSHOP TEIL 3. IKT (Informations- und Kommunikationstechnik) an einer MorseApp erklärt 14.4.2016 Technische Hochschule Georg Agricola WORKSHOP TEIL 3 IKT (Informations- und Kommunikationstechnik) an einer MorseApp erklärt Inhaltsverzeichnis 1. Kurzfassung zur Projekterstellung... 2 2. Morse-Tabelle...

Mehr

Objektorientierte Programmierung. Kapitel 12: Interfaces

Objektorientierte Programmierung. Kapitel 12: Interfaces 12. Interfaces 1/14 Objektorientierte Programmierung Kapitel 12: Interfaces Stefan Brass Martin-Luther-Universität Halle-Wittenberg Wintersemester 2012/13 http://www.informatik.uni-halle.de/ brass/oop12/

Mehr

Datenbank-Verschlüsselung mit DbDefence und Webanwendungen.

Datenbank-Verschlüsselung mit DbDefence und Webanwendungen. Datenbank-Verschlüsselung mit DbDefence und Webanwendungen. In diesem Artikel werden wir Ihnen zeigen, wie Sie eine Datenbank verschlüsseln können, um den Zugriff einzuschränken, aber trotzdem noch eine

Mehr

Das erste Programm soll einen Text zum Bildschirm schicken. Es kann mit jedem beliebigen Texteditor erstellt werden.

Das erste Programm soll einen Text zum Bildschirm schicken. Es kann mit jedem beliebigen Texteditor erstellt werden. Einfache Ein- und Ausgabe mit Java 1. Hallo-Welt! Das erste Programm soll einen Text zum Bildschirm schicken. Es kann mit jedem beliebigen Texteditor erstellt werden. /** Die Klasse hello sendet einen

Mehr

Software Engineering Klassendiagramme Assoziationen

Software Engineering Klassendiagramme Assoziationen Software Engineering Klassendiagramme Assoziationen Prof. Adrian A. Müller, PMP, PSM 1, CSM Fachbereich Informatik und Mikrosystemtechnik 1 Lesen von Multiplizitäten (1) Multiplizitäten werden folgendermaßen

Mehr

Professionelle Seminare im Bereich MS-Office

Professionelle Seminare im Bereich MS-Office Der Name BEREICH.VERSCHIEBEN() ist etwas unglücklich gewählt. Man kann mit der Funktion Bereiche zwar verschieben, man kann Bereiche aber auch verkleinern oder vergrößern. Besser wäre es, die Funktion

Mehr

Beispiel Shop-Eintrag Ladenlokal & Online-Shop im Verzeichnis www.wir-lieben-shops.de 1

Beispiel Shop-Eintrag Ladenlokal & Online-Shop im Verzeichnis www.wir-lieben-shops.de 1 Beispiel Shop-Eintrag Ladenlokal & Online-Shop. Als Händler haben Sie beim Shop-Verzeichnis wir-lieben-shops.de die Möglichkeit einen oder mehrere Shop- Einträge zu erstellen. Es gibt 3 verschiedene Typen

Mehr

Verhindert, dass eine Methode überschrieben wird. public final int holekontostand() {...} public final class Girokonto extends Konto {...

Verhindert, dass eine Methode überschrieben wird. public final int holekontostand() {...} public final class Girokonto extends Konto {... PIWIN I Kap. 8 Objektorientierte Programmierung - Vererbung 31 Schlüsselwort: final Verhindert, dass eine Methode überschrieben wird public final int holekontostand() {... Erben von einer Klasse verbieten:

Mehr

Lehrer: Einschreibemethoden

Lehrer: Einschreibemethoden Lehrer: Einschreibemethoden Einschreibemethoden Für die Einschreibung in Ihren Kurs gibt es unterschiedliche Methoden. Sie können die Schüler über die Liste eingeschriebene Nutzer Ihrem Kurs zuweisen oder

Mehr

Computeranwendung und Programmierung (CuP)

Computeranwendung und Programmierung (CuP) Computeranwendung und Programmierung (CuP) VO: Peter Auer (Informationstechnologie) UE: Norbert Seifter (Angewandet Mathematik) Organisatorisches (Vorlesung) Vorlesungszeiten Montag 11:15 12:45 Freitag

Mehr

Was meinen die Leute eigentlich mit: Grexit?

Was meinen die Leute eigentlich mit: Grexit? Was meinen die Leute eigentlich mit: Grexit? Grexit sind eigentlich 2 Wörter. 1. Griechenland 2. Exit Exit ist ein englisches Wort. Es bedeutet: Ausgang. Aber was haben diese 2 Sachen mit-einander zu tun?

Mehr

Vorkurs C++ Programmierung

Vorkurs C++ Programmierung Vorkurs C++ Programmierung Klassen Letzte Stunde Speicherverwaltung automatische Speicherverwaltung auf dem Stack dynamische Speicherverwaltung auf dem Heap new/new[] und delete/delete[] Speicherklassen:

Mehr

DES der vergangene Standard für Bitblock-Chiffren

DES der vergangene Standard für Bitblock-Chiffren DES der vergangene Standard für Bitblock-Chiffren Klaus Pommerening Fachbereich Mathematik der Johannes-Gutenberg-Universität Saarstraße 1 D-55099 Mainz Vorlesung Kryptologie 1. März 1991, letzte Änderung:

Mehr

Spamfilter-Konfiguration für Outlook 2000 und höher

Spamfilter-Konfiguration für Outlook 2000 und höher Spamfilter-Konfiguration für Outlook 2000 und höher Schritt 1 Starten Sie das Mailprogramm Outlook 2000/2002/2003 Schritt 2 Klicken Sie mit der linken Maustaste in der Menüleiste auf Extras und im sich

Mehr

Dokumentation für das Spiel Pong

Dokumentation für das Spiel Pong Dokumentation für das Spiel Pong BwInf - Turnierserver Didaktik der nformatik BWINF KI Wettbewerbs-Plattform Stand: 02.09.2014 Grundlagen In diesem KI-Turnier programmiert ihr einen Schläger für das Retro-Spiel

Mehr

1 topologisches Sortieren

1 topologisches Sortieren Wolfgang Hönig / Andreas Ecke WS 09/0 topologisches Sortieren. Überblick. Solange noch Knoten vorhanden: a) Suche Knoten v, zu dem keine Kante führt (Falls nicht vorhanden keine topologische Sortierung

Mehr

4. Jeder Knoten hat höchstens zwei Kinder, ein linkes und ein rechtes.

4. Jeder Knoten hat höchstens zwei Kinder, ein linkes und ein rechtes. Binäre Bäume Definition: Ein binärer Baum T besteht aus einer Menge von Knoten, die durch eine Vater-Kind-Beziehung wie folgt strukturiert ist: 1. Es gibt genau einen hervorgehobenen Knoten r T, die Wurzel

Mehr

ELO Print&Archive so nutzen Sie es richtig

ELO Print&Archive so nutzen Sie es richtig ELO Print&Archive so nutzen Sie es richtig Die Einrichtung Ihres ersten Dokumententyps Im folgenden Beispiel möchten wir Ihnen genauer erläutern, wie Sie das neue Modul ELO Print&Archive, das automatisch

Mehr

Zwischenablage (Bilder, Texte,...)

Zwischenablage (Bilder, Texte,...) Zwischenablage was ist das? Informationen über. die Bedeutung der Windows-Zwischenablage Kopieren und Einfügen mit der Zwischenablage Vermeiden von Fehlern beim Arbeiten mit der Zwischenablage Bei diesen

Mehr

Memeo Instant Backup Kurzleitfaden. Schritt 1: Richten Sie Ihr kostenloses Memeo-Konto ein

Memeo Instant Backup Kurzleitfaden. Schritt 1: Richten Sie Ihr kostenloses Memeo-Konto ein Einleitung Memeo Instant Backup ist eine einfache Backup-Lösung für eine komplexe digitale Welt. Durch automatisch und fortlaufende Sicherung Ihrer wertvollen Dateien auf Ihrem Laufwerk C:, schützt Memeo

Mehr

5. Tutorium zu Programmieren

5. Tutorium zu Programmieren 5. Tutorium zu Programmieren Dennis Ewert Gruppe 6 Universität Karlsruhe Institut für Programmstrukturen und Datenorganisation (IPD) Lehrstuhl Programmierparadigmen WS 2008/2009 c 2008 by IPD Snelting

Mehr

1) Farbsteuergerät in der Nikobus-Software unter Modul zufügen hinzufügen.

1) Farbsteuergerät in der Nikobus-Software unter Modul zufügen hinzufügen. Programmierung des Farbsteuergeräts 340-00112 für Nikobus Diese Bedienungsanleitung gilt auch für die Nikobus-Produkte 340-00111 und 340-00113. Achtung: einige der aufgeführten Betriebsarten sind nur auf

Mehr

Downloadfehler in DEHSt-VPSMail. Workaround zum Umgang mit einem Downloadfehler

Downloadfehler in DEHSt-VPSMail. Workaround zum Umgang mit einem Downloadfehler Downloadfehler in DEHSt-VPSMail Workaround zum Umgang mit einem Downloadfehler Downloadfehler bremen online services GmbH & Co. KG Seite 2 Inhaltsverzeichnis Vorwort...3 1 Fehlermeldung...4 2 Fehlerbeseitigung...5

Mehr

Anleitungen zum KMG-Email-Konto

Anleitungen zum KMG-Email-Konto In dieser Anleitung erfahren Sie, wie Sie mit einem Browser (Firefox etc.) auf das Email-Konto zugreifen; Ihr Kennwort ändern; eine Weiterleitung zu einer privaten Email-Adresse einrichten; Ihr Email-Konto

Mehr

Übung Grundlagen der Programmierung. Übung 03: Schleifen. Testplan Testergebnisse

Übung Grundlagen der Programmierung. Übung 03: Schleifen. Testplan Testergebnisse Übung 03: Schleifen Abgabetermin: xx.xx.xxxx Name: Matrikelnummer: Gruppe: G1 (Prähofer) G2 (Prähofer) G3 (Wolfinger) Aufgabe Punkte gelöst abzugeben schriftlich abzugeben elektronisch Aufgabe 03.1 12

Mehr

Kapiteltests zum Leitprogramm Binäre Suchbäume

Kapiteltests zum Leitprogramm Binäre Suchbäume Kapiteltests zum Leitprogramm Binäre Suchbäume Björn Steffen Timur Erdag überarbeitet von Christina Class Binäre Suchbäume Kapiteltests für das ETH-Leitprogramm Adressaten und Institutionen Das Leitprogramm

Mehr

Kurzanleitung SEPPmail

Kurzanleitung SEPPmail Eine Region Meine Bank Kurzanleitung SEPPmail (E-Mail Verschlüsselungslösung) Im folgenden Dokument wird Ihnen Schritt für Schritt die Bedienung unserer Verschlüsselungslösung SEPPmail gezeigt und alle

Mehr

Neue Steuererklärung 2013 erstellen

Neue Steuererklärung 2013 erstellen Neue Steuererklärung 2013 erstellen Bitte klicken Sie im Startmenü auf die Schaltfläche Steuererklärung 2013 NEU Anschliessend wird der folgende Dialog angezeigt. Wenn Sie die letztjährige Steuererklärung

Mehr

Stellen Sie bitte den Cursor in die Spalte B2 und rufen die Funktion Sverweis auf. Es öffnet sich folgendes Dialogfenster

Stellen Sie bitte den Cursor in die Spalte B2 und rufen die Funktion Sverweis auf. Es öffnet sich folgendes Dialogfenster Es gibt in Excel unter anderem die so genannten Suchfunktionen / Matrixfunktionen Damit können Sie Werte innerhalb eines bestimmten Bereichs suchen. Als Beispiel möchte ich die Funktion Sverweis zeigen.

Mehr

Übungen zu Einführung in die Informatik: Programmierung und Software-Entwicklung: Lösungsvorschlag

Übungen zu Einführung in die Informatik: Programmierung und Software-Entwicklung: Lösungsvorschlag Ludwig-Maximilians-Universität München WS 2015/16 Institut für Informatik Übungsblatt 13 Prof. Dr. R. Hennicker, A. Klarl Übungen zu Einführung in die Informatik: Programmierung und Software-Entwicklung:

Mehr

Pakete dienen dazu, die Software eines Projektes in größere inhaltlich zusammengehörige Bereiche mit eigenem Namen einzuteilen (siehe Java API).

Pakete dienen dazu, die Software eines Projektes in größere inhaltlich zusammengehörige Bereiche mit eigenem Namen einzuteilen (siehe Java API). Paketdeklaration Paketdeklaration package Bezeichner ; Pakete dienen dazu, die Software eines Projektes in größere inhaltlich zusammengehörige Bereiche mit eigenem Namen einzuteilen (siehe Java API). Ein

Mehr

Handbuch ECDL 2003 Basic Modul 5: Datenbank Access starten und neue Datenbank anlegen

Handbuch ECDL 2003 Basic Modul 5: Datenbank Access starten und neue Datenbank anlegen Handbuch ECDL 2003 Basic Modul 5: Datenbank Access starten und neue Datenbank anlegen Dateiname: ecdl5_01_02_documentation_standard.doc Speicherdatum: 14.02.2005 ECDL 2003 Basic Modul 5 Datenbank - Access

Mehr

Beschreibung und Bedienungsanleitung. Inhaltsverzeichnis: Abbildungsverzeichnis: Werkzeug für verschlüsselte bpks. Dipl.-Ing.

Beschreibung und Bedienungsanleitung. Inhaltsverzeichnis: Abbildungsverzeichnis: Werkzeug für verschlüsselte bpks. Dipl.-Ing. www.egiz.gv.at E-Mail: post@egiz.gv.at Telefon: ++43 (316) 873 5514 Fax: ++43 (316) 873 5520 Inffeldgasse 16a / 8010 Graz / Austria Beschreibung und Bedienungsanleitung Werkzeug für verschlüsselte bpks

Mehr

Theoretische Informatik SS 04 Übung 1

Theoretische Informatik SS 04 Übung 1 Theoretische Informatik SS 04 Übung 1 Aufgabe 1 Es gibt verschiedene Möglichkeiten, eine natürliche Zahl n zu codieren. In der unären Codierung hat man nur ein Alphabet mit einem Zeichen - sagen wir die

Mehr

Einfache kryptographische Verfahren

Einfache kryptographische Verfahren Einfache kryptographische Verfahren Prof. Dr. Hagen Knaf Studiengang Angewandte Mathematik 26. April 2015 c = a b + a b + + a b 1 11 1 12 2 1n c = a b + a b + + a b 2 21 1 22 2 2n c = a b + a b + + a b

Mehr

Erstellen von x-y-diagrammen in OpenOffice.calc

Erstellen von x-y-diagrammen in OpenOffice.calc Erstellen von x-y-diagrammen in OpenOffice.calc In dieser kleinen Anleitung geht es nur darum, aus einer bestehenden Tabelle ein x-y-diagramm zu erzeugen. D.h. es müssen in der Tabelle mindestens zwei

Mehr

Klausur in Programmieren

Klausur in Programmieren Studiengang Sensorik/Sensorsystemtechnik Note / normierte Punkte Klausur in Programmieren Sommer 2014, 16. Juli 2014 Dauer: 1,5h Hilfsmittel: Keine (Wörterbücher sind auf Nachfrage erlaubt) Name: Matrikelnr.:

Mehr

.procmailrc HOWTO. zur Mailfilterung und Verteilung. Stand: 01.01.2011

.procmailrc HOWTO. zur Mailfilterung und Verteilung. Stand: 01.01.2011 .procmailrc HOWTO zur Mailfilterung und Verteilung Stand: 01.01.2011 Copyright 2002-2003 by manitu. Alle Rechte vorbehalten. Alle verwendeten Bezeichnungen dienen lediglich der Kennzeichnung und können

Mehr

SICHERN DER FAVORITEN

SICHERN DER FAVORITEN Seite 1 von 7 SICHERN DER FAVORITEN Eine Anleitung zum Sichern der eigenen Favoriten zur Verfügung gestellt durch: ZID Dezentrale Systeme März 2010 Seite 2 von 7 Für die Datensicherheit ist bekanntlich

Mehr

Java Kurs für Anfänger Einheit 4 Klassen und Objekte

Java Kurs für Anfänger Einheit 4 Klassen und Objekte Java Kurs für Anfänger Einheit 4 Klassen und Ludwig-Maximilians-Universität München (Institut für Informatik: Programmierung und Softwaretechnik von Prof.Wirsing) 13. Juni 2009 Inhaltsverzeichnis klasse

Mehr

Einführung in die objektorientierte Programmierung mit Java. Klausur am 19. Oktober 2005

Einführung in die objektorientierte Programmierung mit Java. Klausur am 19. Oktober 2005 Einführung in die objektorientierte Programmierung mit Java Klausur am 19. Oktober 2005 Matrikelnummer: Nachname: Vorname: Semesteranzahl: Die Klausur besteht aus drei Frageblöcken zu den Inhalten der

Mehr

Diese Ansicht erhalten Sie nach der erfolgreichen Anmeldung bei Wordpress.

Diese Ansicht erhalten Sie nach der erfolgreichen Anmeldung bei Wordpress. Anmeldung http://www.ihredomain.de/wp-admin Dashboard Diese Ansicht erhalten Sie nach der erfolgreichen Anmeldung bei Wordpress. Das Dashboard gibt Ihnen eine kurze Übersicht, z.b. Anzahl der Beiträge,

Mehr

Folge 19 - Bäume. 19.1 Binärbäume - Allgemeines. Grundlagen: Ulrich Helmich: Informatik 2 mit BlueJ - Ein Kurs für die Stufe 12

Folge 19 - Bäume. 19.1 Binärbäume - Allgemeines. Grundlagen: Ulrich Helmich: Informatik 2 mit BlueJ - Ein Kurs für die Stufe 12 Grundlagen: Folge 19 - Bäume 19.1 Binärbäume - Allgemeines Unter Bäumen versteht man in der Informatik Datenstrukturen, bei denen jedes Element mindestens zwei Nachfolger hat. Bereits in der Folge 17 haben

Mehr

.NET Code schützen. Projekt.NET. Version 1.0

.NET Code schützen. Projekt.NET. Version 1.0 .NET Code schützen Projekt.NET Informationsmaterial zum Schützen des.net Codes Version 1.0 Autor: Status: Ablage: Empfänger: Seiten: D. Hoyer 1 / 6 Verteiler : Dokument1 Seite 1 von 1 Änderungsprotokoll

Mehr

Individuelle Formulare

Individuelle Formulare Individuelle Formulare Die Vorlagen ermöglichen die Definition von Schnellerfassungen für die Kontenanlage sowie für den Im- und Export von Stammdaten. Dabei kann frei entschieden werden, welche Felder

Mehr

Klausur zur Einführung in die objektorientierte Programmierung mit Java

Klausur zur Einführung in die objektorientierte Programmierung mit Java Klausur zur Einführung in die objektorientierte Programmierung mit Java im Studiengang Informationswissenschaft Prof. Dr. Christian Wolff Professur für Medieninformatik Institut für Medien-, Informations-

Mehr