# Kodieren - Code verstehen



## kol789 (23. Nov 2011)

Hallo,

ICh habe vor einem Jahren ein Programm programmiert , welches Wörter codiert und decodiert und zwar mithilfe eines Binärbaumes. Jetzt habe ich mir das Programm mal wieder angeschaut , da ich es wieder gebrauchen konnte. Allerdings verstehe ich es nicht mehr vollständig . 

Danke für jede Hilfe


```
public String codierterText (String pText) {
int lZaehler = 0;
String lCode = "";

 while ((lZaehler < pText.length()) && (pText.charAt (lZaehler) >='A')&&(pText.charAt (lZaehler)<= 'Z')) 
  {
     lCode = lCode + erzeugeMorsecode (pText.charAt(lZaehler), morseBaum, "") + "/";
     lZaehler++;
}

return lCode;

}
     public String erzeugeMorsecode (char pZeichen, BinaryTree pmorseBaum, String pCode) {
       
if (!pmorseBaum.isEmpty())
{
       if (pZeichen == ((Character) pmorseBaum.getObject()).charValue())    // was wird Pzeichen zugewisen

return pCode;

      else {

//rekursiver Aufruf der Methode mit dem linken Teilbaum

      String lCodeLinkerTeilbaum = erzeugeMorsecode(pZeichen, pmorseBaum.getLeftTree(),
       pCode+".");

    if (lCodeLinkerTeilbaum.equals(""))

//Zeichen im linken Teilbaum nicht gefunden, rekursiver Aufruf mit dem rechten Teilbaum

     return erzeugeMorsecode (pZeichen, pmorseBaum.getRightTree(), pCode+"-");

else
     return lCodeLinkerTeilbaum;
}

} else return "";

}
```


----------



## Gast2 (23. Nov 2011)

Java Code bitte formatieren und in Java Tags posten.

Wo genau hast du Schwierigkeiten?


----------



## kol789 (23. Nov 2011)

was genau wir Pzeichen zugewiesen ?


----------



## Gast2 (23. Nov 2011)

Keine Ahnung, da steht nur ein großer Haufen von unformatierten Wörtern, daraus erkennt man nichts


----------



## kol789 (23. Nov 2011)

oh sorry danke das mich drauf aufmerksam gemachst hast war noch nicht oft im Forum


----------



## Gast2 (23. Nov 2011)

Naja, viel besser ist das so aber auch nicht, formatier doch den Quelltext mal gescheit, dann erkennt man doch viel mehr.

Zu deiner Frage:
Beim Aufruf der Methode erzeugeMorsecode wird der pZeichen Parameter übergeben.


----------



## Plopo (23. Nov 2011)

```
public String codierterText (String pText)
  {
    int lZaehler = 0;
    String lCode = "";
    while ((lZaehler < pText.length ()) && (pText.charAt (lZaehler) >= 'A')
        && (pText.charAt (lZaehler) <= 'Z'))
    {
      lCode = lCode + erzeugeMorsecode (pText.charAt (lZaehler), morseBaum, "")
          + "/";
      lZaehler++;
    }
    return lCode;
  }
  public String erzeugeMorsecode (char pZeichen, BinaryTree pmorseBaum, String pCode)
  {
    if (!pmorseBaum.isEmpty ())
    {
      if (pZeichen == ((Character) pmorseBaum.getObject ()).charValue ()) // was
                                                                          // wird
                                                                          // pZeichen
                                                                          // zugewisen
        return pCode;
      else
      {
        // rekursiver Aufruf der Methode mit dem linken Teilbaum
        String lCodeLinkerTeilbaum = erzeugeMorsecode (pZeichen,
            pmorseBaum.getLeftTree (), pCode + ".");
        if (lCodeLinkerTeilbaum.equals (""))
          // Zeichen im linken Teilbaum nicht gefunden, rekursiver Aufruf mit
          // dem rechten Teilbaum
          return erzeugeMorsecode (pZeichen, pmorseBaum.getRightTree (), pCode + "-");
        else
          return lCodeLinkerTeilbaum;
      }
    }
    else
      return "";
  }
```
Die gemeinte Zeile ist folgende.

```
pZeichen == ((Character) pmorseBaum.getObject ()).charValue ()
```


----------



## kol789 (23. Nov 2011)

```
if (pZeichen == ((Character) pmorseBaum.getObject()).charValue())
```

Ich meine dort?


----------



## Gast2 (23. Nov 2011)

Da wird gar nichts zugewiesen, das ist nen ganz normaler Vergleich.


----------

