Verfügbare Informationen zu "Hausaufgaben"
Qualität des Beitrags: Beteiligte Poster: Belafarinrod - alexander Forum: A-Welt Forum Forenbeschreibung: Das geile Forum aus dem Unterforum: Java-Forum Antworten: 3 Forum gestartet am: Freitag 04.03.2005 Sprache: deutsch Link zum Originaltopic: Hausaufgaben Letzte Antwort: vor 18 Jahren, 2 Monaten, 23 Tagen, 22 Stunden, 58 Minuten
Alle Beiträge und Antworten zu "Hausaufgaben"
Re: Hausaufgaben
Belafarinrod - 19.02.2006, 14:21Hausaufgaben
Hi,
so ich habe leider mal wieder nicht die kleinste Ahnung wie ich die Klasse liesFaktor und liesProdukt schreiben soll. Bitte also wieder um Hilfe.
MFG Belafarinrod
Re: Hausaufgaben
alexander - 19.02.2006, 15:00
ich hab zwar nicht überprüft, aber es könnte so aussehen:
Code: // Autor: Alex
// Datum: 19.02.2006
public class AusdruckBaum {
private String eingabe;
private int pos, laenge;
private char aktZeichen;
private final static char ENDE ='\u0000';
public AusdruckBaum (String str) {
neueEingabe(str);
}
public void neueEingabe(String str) {
eingabe = str; pos = 0; laenge = str.length();
naechstesZeichen();
}
private void naechstesZeichen() {
if (pos<laenge) {
aktZeichen = eingabe.charAt(pos); pos++;
} else aktZeichen = ENDE;
}
public BinTree liesAusdruck() {
BinTree x, operand;
char operator;
x = liesProdukt();
while (aktZeichen=='+' || aktZeichen=='-') {
operator = aktZeichen;
naechstesZeichen();
operand = liesProdukt();
x = new BinTree(x, new Character(operator), operand);
}
return x;
}
private BinTree liesProdukt(){
BinTree x, operand;
char operator;
x = liesFaktor();
while(aktZeichen=='*' || aktZeichen=='/'){
operator = aktZeichen;
naechstesZeichen();
operand = liesFaktor();
x = new BinTree(x, new Character(operator), operand);
}
return x;
}
private BinTree liesFaktor(){
BinTree x;
if(aktZeichen=='('){
naechstesZeichen();
x = liesAusdruck();
naechstesZeichen();
if(aktZeichen==')'){
x = new BinTree(x, new Character(aktZeichen), liesAusdruck());
}
}else{
x = new BinTree(new Character(aktZeichen));
naechstesZeichen();
}
return x;
}
}
Re: Hausaufgaben
alexander - 21.02.2006, 20:43
Hab den Ausdrucksbaum berichtigt! Und so könnte der AusdrucksbaumTest aussehen:
Code: // Autor: Alex
// Datum: 21.02.2006
public class AusdruckBaumTest {
static void prefix(BinTree b){
if(!b.empty()){
System.out.print( ((Character)b.value()).toString()+" " );
prefix(b.left());
prefix(b.right());
}
}
static void infix(BinTree b){
if(!b.empty()){
infix(b.left());
System.out.print( ((Character)b.value()).toString()+" " );
infix(b.right());
}
}
static void postfix(BinTree b){
if(!b.empty()){
postfix(b.left());
postfix(b.right());
System.out.print( ((Character)b.value()).toString()+" " );
}
}
public static void main(String[] args) {
AusdruckBaum ab;
BinTree b;
ab = new AusdruckBaum("A+B*C");
b = ab.liesAusdruck();
prefix(b); System.out.println("");
infix(b); System.out.println("");
postfix(b);
// System.out.println("");
// ab.neueEingabe("(A+B)*C");
// b = ab.liesAusdruck();
// prefix(b);
//
// System.out.println("");
// ab.neueEingabe("(A+B)*(C+D)");
// b = ab.liesAusdruck();
// prefix(b);
//
// System.out.println("");
// ab.neueEingabe("(A+B+B+D)*2");
// b = ab.liesAusdruck();
// prefix(b);
}
}
Mit folgendem Code, können Sie den Beitrag ganz bequem auf ihrer Homepage verlinken
Weitere Beiträge aus dem Forum A-Welt Forum
Ähnliche Beiträge wie "Hausaufgaben"
Hausaufgaben - Andy (Dienstag 28.11.2006)
Hausaufgaben die wir aufbekommen habe ! - michael (Montag 06.11.2006)
Hausaufgaben vom 26. September 2006 - Shazam (Dienstag 26.09.2006)
Hausaufgaben - Knöpfl3 (Samstag 07.04.2007)
Hausaufgaben vom 22.11 zum 29.11. - War of Genesis (Montag 28.11.2005)
hausaufgaben - N4pAlm3 (Montag 21.08.2006)
Hausaufgaben zum 19.9.07 - Natalie (Dienstag 18.09.2007)
Hausaufgaben vom 28. November 2006 - Shazam (Dienstag 28.11.2006)
Hausaufgaben - joschka (Dienstag 28.08.2007)
Hausaufgaben - vanfimenig (Dienstag 05.12.2006)