Strukturierte Programmierung Uebungen Ferien: Unterschied zwischen den Versionen

Aus CCWiki
Zur Navigation springen Zur Suche springen
Die Seite wurde neu angelegt: „=== Aufgabe: TicTacToe === === Aufgabe: TicTac KI === https://www.geeksforgeeks.org/minimax-algorithm-in-game-theory-set-3-tic-tac-toe-ai-finding-optimal-mo…“
 
Zeile 6: Zeile 6:
=== Aufgabe: Türme von Hanoi ===
=== Aufgabe: Türme von Hanoi ===


=== Aufgabe: Checksum ===
=== Aufgabe: Hashsumme/Prüfsumme ===
Erstelle ein Programm welches die Prüfsumme einer gegebenen Datei berechnet und ausgibt. Hierbei kann auch gerne '''assets/file.txt''' verwendet werden. Nähere Informationen zur Hashsumme finden sich [[https://de.wikipedia.org/wiki/Hashfunktion|hier]].
Lies die Datei mithilfe eines {{JSL|FileInputStream}}:
{{JML|code=
FileInputStream in = new FileInputStream("assets/file.txt");
byte[] buffer = new byte[1024];
int read = 0;
while((read = in.read(buffer)) > 0) {
    //Digest aktualisieren         
}
}}
Erstelle einen {{JSL|MessageDigest}} für '''MD5''' und '''SHA256''' und befülle diesen mit dem {{JSL|byte[] buffer}}. Instanzen von {{JSL|MessageDigest}} erhältst du mittels {{JSL|MessageDigest.getInstance([algorithm])}}.
Um die Prüfsumme des {{JSL|MessageDigest}} lerbar zu machen verwende:
{{JML|code=
private static String toString(MessageDigest digest) {
    return new BigInteger(1,digest.digest()).toString(16);
}
}}

Version vom 22. Oktober 2021, 05:34 Uhr

Aufgabe: TicTacToe

Aufgabe: TicTac KI

[Algorithmus]

Aufgabe: Türme von Hanoi

Aufgabe: Hashsumme/Prüfsumme

Erstelle ein Programm welches die Prüfsumme einer gegebenen Datei berechnet und ausgibt. Hierbei kann auch gerne assets/file.txt verwendet werden. Nähere Informationen zur Hashsumme finden sich [[1]]. Lies die Datei mithilfe eines FileInputStream:

FileInputStream in = new FileInputStream("assets/file.txt");
byte[] buffer = new byte[1024];
int read = 0;
while((read = in.read(buffer)) > 0) {
    //Digest aktualisieren           
}

Erstelle einen MessageDigest für MD5 und SHA256 und befülle diesen mit dem byte[] buffer. Instanzen von MessageDigest erhältst du mittels MessageDigest.getInstance([algorithm]). Um die Prüfsumme des MessageDigest lerbar zu machen verwende:

private static String toString(MessageDigest digest) {
    return new BigInteger(1,digest.digest()).toString(16);
}