Sitzung: Jeden Freitag in der Vorlesungszeit ab 16 Uhr c. t. im MAR 0.005. In der vorlesungsfreien Zeit unregelmäßig (Jemensch da?). Macht mit!

Javakurs/Übungsaufgaben/DDDText: Unterschied zwischen den Versionen

K (hat „Javakurs2009/3dText“ nach „Javakurs2009/DDDText“ verschoben: 3 x d = ddd)
K (dead link)
 
(11 dazwischenliegende Versionen von 7 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
 +
3D == DDD
 +
 
=== Aufgabenstellung ===
 
=== Aufgabenstellung ===
Diesem Programm übergibt man einen Text und als Ergebnis erhält man den Text graphisch aufgewertet (als ASCII-Art) auf der Konsole. Dies könnte so aussehen wie unter [[Javakurs2009/3dText#Beispiel | Beispiel]] zu sehen.
+
Diesem Programm übergibt man als Parameter einen Text und als Ergebnis erhält man den Text graphisch aufgewertet (als ASCII-Art) auf der Konsole. Dies könnte so aussehen wie unter [[Javakurs2009/3dText#Beispiel | Beispiel]] zu sehen.
 +
 
 +
 
 +
1) Als erstes ladet ihr euch [http://docs.freitagsrunde.org/Veranstaltungen/javakurs_2012/Musterloesung/DDDText.java hier] die Vorgabe herunter, die bereits ein vollständiges ASCII-Art-Alphabet enthält. Ihr könnt natürlich auch ein eigenes Alphabet erstellen, Anregungen dazu befinden sich weiter unten.
 +
 
 +
2) Überlegt euch, ob ihr ein 3D-Zeichen pro Zeile oder alle 3D-Zeichen in einer Zeile ausgeben wollt. Welche Probleme gilt es bei der letzteren Variante zu lösen?
 +
 
 +
3) Implementiert euer Programm und testet es mit unterschiedlichen Eingaben. Wenn ihr nicht weiterkommt, schaut in die nachfolgenden Hinweise oder fragt einen Tutor.
 +
 
 +
=== Hinweise ===
 +
Wenn ihr auf der Konsole ein Backslash "\" ausgeben wollt, dann müsst ihr dieses Zeichen, da es selbst ein sogenanntes Escapezeichen ist, mit einem Backslash "escapen".
 +
Der Code um ein Backslash auszugeben, sieht also so aus.
 +
System.out.println("\\");
 +
siehe auch: [http://de.wikipedia.org/wiki/Escape-Sequenz weitere Escape Sequenzen auf de.wikipedia.org]
 +
 
 +
'''Speichern der Länge eines Strings'''
 +
String word = "rocks";
 +
int length = word.length();
 +
 
 +
'''Lesen des n-ten Buchstabens'''
 +
int n = 5;
 +
char c = word.charAt(n);
 +
 
 +
'''Lesen von der Konsole'''
 +
 
 +
Wenn ihr beim Ausführen eures Programms in der Konsole ein Parameter (also ein Wort) mit übergebt, so findet ihr ihn an Position [0] im String-Array eurer main-Methode wieder.
 +
 
 +
Beispiel:
 +
java DDDText rocks
 +
-> arguments[0] enthält rocks.
 +
 
 +
Bei einem Satz muesst ihr diesen in Hochkomma angeben.
 +
 
 +
Beispiel:
 +
java DDDText "Java Rocks"
 +
-> arguments[0] enthaelt nun <i> Java Rocks </i>
 +
 
 +
=== Beispiele ===
 +
 
 +
<pre>
 +
 
 +
    ___
 +
  /  /\
 +
  /  /:/
 +
/__/::\
 +
\__\/\:\
 +
    \  \:\
 +
    \__\:\
 +
    /  /:/
 +
    /__/:/
 +
    \__\/
 +
 
 +
      ___
 +
    /  /\
 +
    /  /::\
 +
  /  /:/\:\
 +
  /  /:/~/::\
 +
/__/:/ /:/\:\
 +
\  \:\/:/__\/
 +
  \  \::/
 +
  \  \:\
 +
    \  \:\
 +
    \__\/
  
 +
      ___
 +
    /__/\
 +
    \  \:\
 +
      \  \:\
 +
  _ _  \__\:\
 +
/__/\ |  |:|
 +
\  \:\|  |:|
 +
  \  \:\__|:|
 +
  \__\::::/
 +
      ~~~~
  
1) Als ersten Schritt könnt ihr mit '''System.out.println("...");''' erstmal ein wenig herumprobieren und versuchen ein ASCII Alphabet, das ihr euch ausgedacht habt, auszugeben. Natürlich könnt ihr auch die aus dem Beispiel nehmen und um die restlichen Buchstaben erweitern.
+
      ___
 +
    /  /\
 +
    /  /::\
 +
  /  /:/\:\
 +
  /  /:/~/::\
 +
/__/:/ /:/\:\
 +
\  \:\/:/__\/
 +
  \  \::/
 +
  \  \:\
 +
    \  \:\
 +
    \__\/
  
2) Als zweiten Schritt muesst ihr nun das richtige Programm schreiben. Wer keine Idee hat, wie er an die Eingabe kommt: guckt weiter mal bei den [[Javakurs2009/3dText#Tipps | Tipps]].
 
  
=== Beispiel ===
+
</pre>
  
 
<pre>
 
<pre>
Zeile 35: Zeile 118:
 
</pre>
 
</pre>
  
=== Hinweise ===
 
Wenn ihr auf der Konsole ein Backslash "\" ausgeben wollt, dann müsst ihr dieses Zeichen, da es selbst ein sogenanntes Escapezeichen ist, mit einem Backslash "escapen".
 
Der Code um ein Backslash auszugeben, sieht also so aus.
 
System.out.println("\\");
 
siehe auch: [http://de.wikipedia.org/wiki/Escape-Sequenz|weitere Escape Sequenzen auf de.wikipedia.org]
 
  
=== weitere Beispiele ===
 
  
 
     oooo                                 
 
     oooo                                 
Zeile 77: Zeile 154:
  
 
=== Links ===
 
=== Links ===
* [http://www.network-science.de/ascii/ http://www.network-science.de/ascii/]
+
* [http://patorjk.com/software/taag/ http://patorjk.com/software/taag/]
 
* [http://de.wikipedia.org/wiki/ASCII-Art http://de.wikipedia.org/wiki/ASCII-Art]
 
* [http://de.wikipedia.org/wiki/ASCII-Art http://de.wikipedia.org/wiki/ASCII-Art]
 
 
=== Tipps ===
 
 
'''Speichern der Länge eines Strings'''
 
String word = "rocks";
 
int length = word.length();
 
 
'''Lesen des n-ten Buchstabens'''
 
int n = 5;
 
char c = word.charAt(n);
 
 
'''Lesen von der Konsole'''
 
 
Wenn ihr beim Ausführen eures Programms in der Konsole ein Parameter (also ein Wort) mit übergebt, so findet ihr ihn an Position [0] im String-Array eurer main-Methode wieder.
 
 
Beispiel:
 
java 3dText rocks
 
-> arguments[0] enthält rocks.
 
 
Bei einem Satz muesst ihr diesen in Hochkomma angeben.
 
 
Beispiel:
 
java 3dText "Java Rocks"
 
-> arguments[0] enthaelt nun <i> Java Rocks </i>
 
 
  
 
== Kommentare ==
 
== Kommentare ==
 
Wenn du Anmerkungen zur Aufgabe hast oder Lob und Kritik loswerden möchtest, ist hier die richtige Stelle dafür. Klicke einfach ganz rechts auf "bearbeiten" und schreibe deinen Kommentar direkt ins Wiki. Keine Scheu, es geht nichts kaputt ;)
 
Wenn du Anmerkungen zur Aufgabe hast oder Lob und Kritik loswerden möchtest, ist hier die richtige Stelle dafür. Klicke einfach ganz rechts auf "bearbeiten" und schreibe deinen Kommentar direkt ins Wiki. Keine Scheu, es geht nichts kaputt ;)
 +
  
 
<!--
 
<!--

Aktuelle Version vom 7. März 2013, 10:20 Uhr

3D == DDD

Aufgabenstellung

Diesem Programm übergibt man als Parameter einen Text und als Ergebnis erhält man den Text graphisch aufgewertet (als ASCII-Art) auf der Konsole. Dies könnte so aussehen wie unter Beispiel zu sehen.


1) Als erstes ladet ihr euch hier die Vorgabe herunter, die bereits ein vollständiges ASCII-Art-Alphabet enthält. Ihr könnt natürlich auch ein eigenes Alphabet erstellen, Anregungen dazu befinden sich weiter unten.

2) Überlegt euch, ob ihr ein 3D-Zeichen pro Zeile oder alle 3D-Zeichen in einer Zeile ausgeben wollt. Welche Probleme gilt es bei der letzteren Variante zu lösen?

3) Implementiert euer Programm und testet es mit unterschiedlichen Eingaben. Wenn ihr nicht weiterkommt, schaut in die nachfolgenden Hinweise oder fragt einen Tutor.

Hinweise

Wenn ihr auf der Konsole ein Backslash "\" ausgeben wollt, dann müsst ihr dieses Zeichen, da es selbst ein sogenanntes Escapezeichen ist, mit einem Backslash "escapen". Der Code um ein Backslash auszugeben, sieht also so aus.

System.out.println("\\");

siehe auch: weitere Escape Sequenzen auf de.wikipedia.org

Speichern der Länge eines Strings

String word = "rocks";
int length = word.length();

Lesen des n-ten Buchstabens

int n = 5;
char c = word.charAt(n);

Lesen von der Konsole

Wenn ihr beim Ausführen eures Programms in der Konsole ein Parameter (also ein Wort) mit übergebt, so findet ihr ihn an Position [0] im String-Array eurer main-Methode wieder.

Beispiel:

java DDDText rocks

-> arguments[0] enthält rocks.

Bei einem Satz muesst ihr diesen in Hochkomma angeben.

Beispiel:

java DDDText "Java Rocks"

-> arguments[0] enthaelt nun Java Rocks

Beispiele


    ___
   /  /\
  /  /:/
 /__/::\
 \__\/\:\
    \  \:\
     \__\:\
     /  /:/
    /__/:/
    \__\/

      ___
     /  /\
    /  /::\
   /  /:/\:\
  /  /:/~/::\
 /__/:/ /:/\:\
 \  \:\/:/__\/
  \  \::/
   \  \:\
    \  \:\
     \__\/

      ___
     /__/\
     \  \:\
      \  \:\
  _ _  \__\:\
 /__/\ |  |:|
 \  \:\|  |:|
  \  \:\__|:|
   \__\::::/
       ~~~~

      ___
     /  /\
    /  /::\
   /  /:/\:\
  /  /:/~/::\
 /__/:/ /:/\:\
 \  \:\/:/__\/
  \  \::/
   \  \:\
    \  \:\
     \__\/


    ___          ___                        ___     
   /  /\        /  /\          ___         /  /\    
  /  /:/       /  /::\        /__/\       /  /::\   
 /__/::\      /  /:/\:\       \  \:\     /  /:/\:\  
 \__\/\:\    /  /:/~/::\       \  \:\   /  /:/~/::\ 
    \  \:\  /__/:/ /:/\:\  ___  \__\:\ /__/:/ /:/\:\
     \__\:\ \  \:\/:/__\/ /__/\ |  |:| \  \:\/:/__\/
     /  /:/  \  \::/      \  \:\|  |:|  \  \::/     
    /__/:/    \  \:\       \  \:\__|:|   \  \:\     
    \__\/      \  \:\       \__\::::/     \  \:\    
                \__\/           ~~~~       \__\/    
      ___           ___           ___           ___           ___       ___
     /  /\         /  /\         /  /\         /__/|         /  /\     /__/\
    /  /::\       /  /::\       /  /:/        |  |:|        /  /:/_    \  \:\
   /  /:/\:\     /  /:/\:\     /  /:/         |  |:|       /  /:/ /\    \  \:\
  /  /:/~/:/    /  /:/  \:\   /  /:/  ___   __|  |:|      /  /:/ /::\    \  \:\
 /__/:/ /:/___ /__/:/ \__\:\ /__/:/  /  /\ /__/\_|:|____ /__/:/ /:/\:\    \  \:\
 \  \:\/:::::/ \  \:\ /  /:/ \  \:\ /  /:/ \  \:\/:::::/ \  \:\/:/~/:/     \  \;\
  \  \::/~~~~   \  \:\  /:/   \  \:\  /:/   \  \::/~~~~   \  \::/ /:/       \__\/_
   \  \:\        \  \:\/:/     \  \:\/:/     \  \:\        \__\/ /:/          /__/\
    \  \:\        \  \::/       \  \::/       \  \:\         /__/:/           \__\/
     \__\/         \__\/         \__\/         \__\/         \__\/                .


   oooo                                 
   `888                                 
    888  .oooo.   oooo    ooo  .oooo.   
    888 `P  )88b   `88.  .8'  `P  )88b  
    888  .oP"888    `88..8'    .oP"888  
    888 d8(  888     `888'    d8(  888  
.o. 88P `Y888""8o     `8'     `Y888""8o 
`Y888P                                  
                                        
                                        
                             oooo                 .o. 
                             `888                 888 
oooo d8b  .ooooo.   .ooooo.   888  oooo   .oooo.o 888 
`888""8P d88' `88b d88' `"Y8  888 .8P'   d88(  "8 Y8P 
 888     888   888 888        888888.    `"Y88b.  `8' 
 888     888   888 888   .o8  888 `88b.  o.  )88b .o. 
d888b    `Y8bod8P' `Y8bod8P' o888o o888o 8""888P' Y8P
     ____  ____  ____  ____
    /\   \/\   \/\   \/\   \
   /  \___\ \___\ \___\ \___\
   \  / __/_/   / /   / /   /
    \/_/\   \__/\/___/\/___/
      /  \___\    /  \___\
      \  / __/_  _\  /   /
       \/_/\   \/\ \/___/
         /  \__/  \___\
         \  / _\  /   /
          \/_/\ \/___/
            /  \___\
            \  /   /
             \/___/

Links

Kommentare

Wenn du Anmerkungen zur Aufgabe hast oder Lob und Kritik loswerden möchtest, ist hier die richtige Stelle dafür. Klicke einfach ganz rechts auf "bearbeiten" und schreibe deinen Kommentar direkt ins Wiki. Keine Scheu, es geht nichts kaputt ;)