Ausgabe nur Null2 02

Status
Nicht offen für weitere Antworten.
G

Guest

Gast
Habe folgendens Programm zur Primfaktorenzerlegung geschrieben, allerdings bekomme ich bei Eingabe irgendeiner Zahl als Ausgabe immer nur Unsinn, nämlich 02020Null2Null etc.... woran könnte es liegen???

DANKE!

Code:
import java.awt.*;
import java.applet.Applet;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;

public class zerleg extends Applet{

   
    Label inputPrompt;
    TextField input;
    TextArea output;
    String str;


        public void init()
        {
       
	                setLayout(new FlowLayout( FlowLayout.LEFT));
		        setFont(new Font("Arial", Font.PLAIN, 18));
		        setSize(500,500);


                output = new TextArea(15, 30);
                inputPrompt = new Label("Geben Sie eine Nummer ein:  ");
	        input = new TextField(10);
                input.addActionListener( new ActionListener()
		    {        
                        public void actionPerformed(ActionEvent e)
			{ 
			   
			       int nummer = Integer.parseInt( input.getText() ) ;
			       String str = findPrimeFactors( nummer ) ;       
			       output.append(str) ;
                        }                                             
		    }
				       );

                
                    

   
                add(inputPrompt);
                add(input);
	        add(output);
		}

public String findPrimeFactors(int number){

    long number;
    long teiler=2;
   
    if (number<=1)
	{
	    str="Nur ganze positive Zahlen eingeben!";
            return str;
	}
             
    while (!isPrime(number)) {
	if ((number%teiler == 0)&&(isPrime(teiler)))
        { 
	   
          str = str + "/n"+ teiler;
          number=number/teiler;
       
	}
	else 
	    teiler++;
    }
    return str;
}

				

 public boolean isPrime(long zahl) {
		if (number == 2){
			return true;
		}
		if (number < 2){
			return false;
		}
		long z=2;
		while(z*z <= number){
			if (number%z==0){
				return false;
			}
			if (z==2){
				z=3;
			}else {
				z= z+2;
			}
		}
		return true;
	}
}
 
G

Guest

Gast
Ganz schön viel Code für die Aufgabe :wink:
machs doch lieber so:
rekursiv ist eh schöner

Code:
public class Zerleg
{
	
	public Zerleg(int number)
	{
		System.out.println(prime(number, 2, ""));
		
	}
	
	private String prime(int number, int div, String str)
	{
		if (number%div==0)
			if  (number/div==1)
				return str+" "+div;
			else
				return (prime(number/div,2,str+" "+div));
		else 
		{
			div++;
			return (prime(number,div,str));
		}
			
		
	}
	
}

müsste eigentlich funktionieren, hoffe das hilft dir weiter
 
G

Guest

Gast
Also rekursiv habe ich noch gar nicht programmiert, will erstmal mit den einfachen Sachen anfangen :wink:

Vielleicht weiß ja noch jemand, woran es liegen könnte, dass nur Murks ausgegeben wird....
 
G

Guest

Gast
Das hast du doch nie im leben compilierern können???
nimm den String str als Klassenvariable raus, initialisier ihn in jeder Methode neu mit
String str = "";
du kannst number nicht zweimal initialisieren
wenn du jetzt noch den letzten teiler an den string anhängst bevor du
zurückgibst sollte es eigentlich passen:

Code:
public String findPrimeFactors(long number){ 

    long teiler=2; 
    
    if (number<=1) 
   { 
       str="Nur ganze positive Zahlen eingeben!"; 
            return str; 
   } 
              
    while (!isPrime(number)) { 
   if ((number%teiler == 0)&&(isPrime(teiler))) 
        { 
       
          str = str + "/n"+ teiler; 
          number=number/teiler; 
        
   } 
   else 
       teiler++; 
    } 
    str = str+ "/n" + teiler;
    return str; 
}

wie gesagt, rekursion ist hübscher
 
G

Guest

Gast
Doch...kompilieren hat geklappt :lol:

Allerdings gibt er auch bei deiner Version "null/n2" aus......
 

Wildcard

Top Contributor
Wenn du den String richtig mit String str = ""; initalisierst kann da kein null mehr rauskommen.
das /n machst du je selbst rein. :D
für einen zeilenumbruch muss man glaub ich sowas benutzen:


Code:
 String lnbrk =System.getProperty("line.separator");
str = str+lnbrk;

hab ich selbst noch nie versucht, steht hier aber bestimmt irgendwo was passendes drin
 
G

Guest

Gast
hab jetzt den string ganz einfach geschrieben, allerdings hängt sich das programm irgendwie auf, und es lässt sich kein textfeld mehr editieren und man kann auch keine zahl mehr eingeben..... :-(

Code:
             input.addActionListener( new ActionListener()
		    {        
                        public void actionPerformed(ActionEvent e)
			{ 
			       int nummer = Integer.parseInt( input.getText() ) ;
			       String str = findPrimeFactors( nummer ) ;       
			       output.append(str) ;
                        }                                             
		    }
		 );
                // add labels and textfields to the applet
                add(inputPrompt);
                add(input);
	        add(output);
		}

public String findPrimeFactors(long number){

    long teiler=2;
   
    if (number<=1)
   {
       str="Nur ganze positive Zahlen eingeben!";
            return str;
   }
             
    while (!isPrime(number)) {
   if ((number%teiler == 0)&&(isPrime(teiler)))
        {
          str = str+ " " +  teiler;
          number=number/teiler;
        }
   else
       teiler++;
    }
    str = str+ " " + teiler;
    return str;
}

// method which tests a number of beeing a prime
 public boolean isPrime(long zahl){
          
        if (zahl<2)
	    return false;
	if (zahl == 2)
	    return true;
	if (zahl % 2 == 0)
	    return false;
	for (int i=3; i <=zahl; i+=2 )
	    if (zahl % i == 0)
		return false;
	return true; 
    }
}
 

Wildcard

Top Contributor
ich versteh immer noch nicht wie du das überhaupt compilieren kannst.
so wie das jetzt da steht ist str eine klassenvariable weil er sonst in der
findPrimeFactors() methode nicht sichtbar ist.
Wie kann dann in Zeile 6 das hier stehen?
String str = findPrimeFactors( nummer ) ;

Das darf normal gar nicht gehen.
Schau dir das nochmal an und wenn du nichts findest poste den ganzen code nochmal
 
G

Guest

Gast
Also ich hab dir jetzt mal den ganzen Code gepostet, das Programm lässt sich fehlerfrei compilieren (mit Xemacs) und startet , wenn ich 4 eingebe, gibt er mir aus "null 2 2 " und dann friert quasi alles ein.....

Also,ich will, dass die Methode findPrimeFactors eine Zahl übergeben bekommt, dann halt die Operationen durchführt und die Zahlen in einem String zurückgibt.


Code:
import java.awt.*;
import java.applet.Applet;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;

public class zerleg extends Applet{
        // objects for the graphical user interface
   
    Label inputPrompt;
    TextField input;
    TextArea output;
    String str;

        // setup the graphical user interface components
        // and initialize labels and text fields
        public void init()
        {
                // define font and applet size
	                setLayout(new FlowLayout( FlowLayout.LEFT));
		        setFont(new Font("Arial", Font.PLAIN, 18));
		        setSize(500,500);

                // define labels and textfields
                output = new TextArea(15, 30);
                inputPrompt = new Label("Geben Sie eine Nummer ein:  ");
	        input = new TextField(10);
                input.addActionListener( new ActionListener()
		    {        
                        public void actionPerformed(ActionEvent e)
			{ 
			       int nummer = Integer.parseInt( input.getText() ) ;
			       String str1 = findPrimeFactors( nummer ) ;       
			       output.append(str1) ;
                        }                                             
		    }
		 );
                // add labels and textfields to the applet
                add(inputPrompt);
                add(input);
	        add(output);
		}

public String findPrimeFactors(long number){

    long teiler=2;
   
    if (number<=1)
   {
       str="Nur ganze positive Zahlen eingeben!";
            return str;
   }
             
    while (!isPrime(number)) {
   if ((number%teiler == 0)&&(isPrime(teiler)))
        {
          str = str+ " " +  teiler;
          number=number/teiler;
        }
   else
       teiler++;
    }
    str = str+ " " + teiler;
    return str;
}

// method which tests a number of beeing a prime
 public boolean isPrime(long zahl){
          
        if (zahl<2)
	    return false;
	if (zahl == 2)
	    return true;
	if (zahl % 2 == 0)
	    return false;
	for (int i=3; i <=zahl; i+=2 )
	    if (zahl % i == 0)
		return false;
	return true; 
    }
}
 

Wildcard

Top Contributor
hattest eine endlosschleife drin.
geht jetzt, ist aber nicht schön.
das musst du selbst machen, ist bei dem programm aber auch nicht so dramatisch



Code:
import java.applet.Applet;
import java.awt.FlowLayout;
import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JLabel;
import javax.swing.JTextArea;
import javax.swing.JTextField;

public class zerleg extends Applet{ 
        // objects for the graphical user interface 
    
    JLabel inputPrompt; 
    JTextField input; 
    JTextArea output; 
    //String str; 

        // setup the graphical user interface components 
        // and initialize labels and text fields 
        public void init() 
        { 
                // define font and applet size 
              setLayout(new FlowLayout( FlowLayout.LEFT)); 
              setFont(new Font("Arial", Font.PLAIN, 18)); 
              setSize(500,500); 

                // define labels and textfields 
                output = new JTextArea(15, 30); 
                inputPrompt = new JLabel("Geben Sie eine Nummer ein:  "); 
                input = new JTextField(10); 
                input.addActionListener( new ActionListener() 
          {        
                        public void actionPerformed(ActionEvent e) 
                        { 
                        	int nummer = Integer.parseInt( input.getText() ) ; 
                        	String str1 = findPrimeFactors( nummer ) ;        
                        	output.setText(str1);
                        }                                              
          } 
       ); 
                // add labels and textfields to the applet 
                add(inputPrompt); 
                add(input); 
                add(output); 
      } 

public String findPrimeFactors(long number){ 
 
    String str="";
    long teiler=2;
    if (number<=1) 
   { 
       str="Nur ganze positive Zahlen eingeben!"; 
            return str; 
   } 
    if (isPrime(number))
    	return ""+number;
              
    while (teiler<number)
    {
    	if (isPrime(teiler)&&number%teiler==0)
    	{
    		str=str+"  "+teiler;
    		number=number/teiler;
    		teiler=2;
    	}
    	else
    		teiler++;
    }
    
    return str+number; 
} 

// method which tests a number of beeing a prime 
	public boolean isPrime(long zahl)
	{ 
          
		for (int i=2;i<zahl;i++)
		{
			if (zahl%i==0)
				return false;
		}
		return true;
	}
 
}
[/code]
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
M Ausgabe einer ArrayList ensteht nur als Hashcode, nicht als Objekt Java Basics - Anfänger-Themen 16
M Methode zielnah zeigt das gewünschte Ausgabe nicht an Java Basics - Anfänger-Themen 3
M Ausgabe beim Overloading Java Basics - Anfänger-Themen 3
H Frage zur Ausgabe Java Basics - Anfänger-Themen 4
H Java-Programm zur Ausgabe von Zuständen Java Basics - Anfänger-Themen 80
S Einfach-Verkettete-Listen Ausgabe zeigt nur 1. und letzte instanz Java Basics - Anfänger-Themen 2
T float soll durch schleife die größte mögliche Zahl herausfinden, Ausgabe ist aber "Infinity" Java Basics - Anfänger-Themen 1
B Binärzahlen auflisten, falsche Ausgabe? Java Basics - Anfänger-Themen 1
M Java Ausgabe der höchsten Zahl Java Basics - Anfänger-Themen 14
M Erste Schritte While Schleife / Ausgabe von buchstabe & ASCII Wert Java Basics - Anfänger-Themen 4
nelsonmandela Problem bei Ausgabe einer Switch - Case Funktion Java Basics - Anfänger-Themen 5
W Streams in Java und was bedeutet meine Konsolen-Ausgabe? Java Basics - Anfänger-Themen 4
B Automatisierte Ausgabe (Schleife, If-Abfrage?) Java Basics - Anfänger-Themen 24
C 2D Array Ausgabe mit for-Schleife i,j Java Basics - Anfänger-Themen 4
B Deadlock verstehen der Ausgabe! Java Basics - Anfänger-Themen 12
Lion.King Ausgabe mit Eigenschaften Java Basics - Anfänger-Themen 4
D Java Pattern mit X Ausgabe Stern Java Basics - Anfänger-Themen 4
J In der Ausgabe wird ohne Eingabe in den else Block gesprungen. Java Basics - Anfänger-Themen 0
J In der Ausgabe wird ohne Eingabe in den else Block gesprungen. Java Basics - Anfänger-Themen 5
Xaver code Tastatur ausgabe Java Basics - Anfänger-Themen 4
R Anfänger: Ausgabe kommt minus raus? Java Basics - Anfänger-Themen 6
K Leerzeile in Konsolen-Ausgabe Java Basics - Anfänger-Themen 4
K Zweite Ausgabe von vererbten Klassen Java Basics - Anfänger-Themen 3
Q return Ausgabe Java Basics - Anfänger-Themen 4
C Java Arrays - Ausgabe in Methode Java Basics - Anfänger-Themen 12
D Best Practice Ausgabe über direkte Ausgabe oder try-catch? Java Basics - Anfänger-Themen 13
S Ausgabe des Variablenwerts Java Basics - Anfänger-Themen 10
I Ausgabe nicht nur senkrecht sondern auch waagerecht. Java Basics - Anfänger-Themen 2
paulen1 Methoden Unerwünschte Ausgabe bei System.out.print in For-Schleife Java Basics - Anfänger-Themen 8
C Ausgabe boolean return ((n==9)||(n==0)); Java Basics - Anfänger-Themen 13
F Double Ausgabe nicht wissenschaftlich Java Basics - Anfänger-Themen 16
danieldemetry Java - Graph Komponenten - Ausgabe Java Basics - Anfänger-Themen 0
S Fragen zu Ausgabe double und float Java Basics - Anfänger-Themen 3
B Ausgabe in TextArea funktioniert nicht Java Basics - Anfänger-Themen 2
D BigDecimal Ausgabe sehr lang. Java Basics - Anfänger-Themen 2
J String Ausgabe Java Basics - Anfänger-Themen 2
TimoN11 IntelliJ , Ausgabe von einem Quellcode in Eingabe eines Quellcodes Java Basics - Anfänger-Themen 1
Kalibru Problem bei Ausgabe von Objekt Java Basics - Anfänger-Themen 1
KogoroMori21 Array-Ausgabe Java Basics - Anfänger-Themen 6
JaVaN0oB Wörterraten - Falsche Ausgabe, String/Chars vergleichen Java Basics - Anfänger-Themen 2
E Ausgabe überschreiben Java Basics - Anfänger-Themen 15
D Ausgabe von Array Java Basics - Anfänger-Themen 2
U Ausgabe Java Basics - Anfänger-Themen 4
J Buchstabenhäufigkeit mit Array und Ausgabe des häufigsten Buchstaben Java Basics - Anfänger-Themen 25
V Multiplikationstafel - Ausgabe Java Basics - Anfänger-Themen 4
L Warum ist die Ausgabe anders als das was im Bezeichner steht? Java Basics - Anfänger-Themen 4
M In gleicher zeile hinter ausgabe noch etwas ausgeben Java Basics - Anfänger-Themen 1
newcomerJava Nach doppelter Zahl eine Ausgabe Java Basics - Anfänger-Themen 10
H Falsche Ausgabe Java Basics - Anfänger-Themen 2
P Klassenübergreifende Ausgabe mittels "getter" nicht möglich Java Basics - Anfänger-Themen 21
R Call-by-Value, Call-by-Reference, Call-by-Name Ausgabe Java Basics - Anfänger-Themen 1
JavaClap "Bruchrechner" liefert Fehler/keine Ausgabe bei Addition und Subtraktion Java Basics - Anfänger-Themen 0
D Warum erfolgt folgende Ausgabe und warum? Java Basics - Anfänger-Themen 4
C Ausgabe in der Konsole Java Basics - Anfänger-Themen 11
M Problem bei Ausgabe Java Basics - Anfänger-Themen 7
C Konvertierung des int typs in den double typ für die Ausgabe mit Nachkommastellen Java Basics - Anfänger-Themen 4
A Ausgabe mit boolean Java Basics - Anfänger-Themen 3
K Probleme bei der Ausgabe - komme nicht weiter :/ Java Basics - Anfänger-Themen 15
G Problem bei der Ausgabe einer Main Claase Java Basics - Anfänger-Themen 7
Y Methode + Parameters + Ein und Ausgabe Java Basics - Anfänger-Themen 1
K Methodenaufruf /-ausgabe Java Basics - Anfänger-Themen 5
A Wiederholte Ausgabe vermeiden Java Basics - Anfänger-Themen 16
B Collections Objektreferenz-ID in der Ausgabe (Comparator Interface) Java Basics - Anfänger-Themen 2
M Wie analysiert JSON eine toString-Ausgabe ? Java Basics - Anfänger-Themen 1
T Vererbung Verschiedene Fahrzeugtypen mit unterschiedlicher Ausgabe Java Basics - Anfänger-Themen 17
T Ausgabe einer for Schleife Java Basics - Anfänger-Themen 2
S Elemente eines Arrays bei Ausgabe auslassen Java Basics - Anfänger-Themen 2
M Ausgabe einer Liste welche mehrere Stacks enthält Java Basics - Anfänger-Themen 3
T Text-Ausgabe für Textadventure - Organisation Java Basics - Anfänger-Themen 5
G Unterklassen (Klasse für Ausgabe) Java Basics - Anfänger-Themen 4
N Eingabe des Users direkt hinter die Ausgabe Java Basics - Anfänger-Themen 3
J Methode zur Ausgabe eines Dreiecks aus Sternen schreiben? Java Basics - Anfänger-Themen 2
ZH1896ZH Wieso diese Ausgabe?? Java Basics - Anfänger-Themen 10
J Fragen zum Code aus dem Buch "Schrödinger programmiert Java 2.te Ausgabe" Java Basics - Anfänger-Themen 6
B Keine Ausgabe .. Woran liegt das? Ich komme nicht weiter Java Basics - Anfänger-Themen 14
K Rechtsbündige Ausgabe von Zahlen Java Basics - Anfänger-Themen 6
V Erste Schritte for-Schleife; Ausgabe soll alle 5 Sekunden erfolgen. Java Basics - Anfänger-Themen 4
X Threads Zwei Threads, aber doppelte Ausgabe verhindern (synchronized) Java Basics - Anfänger-Themen 54
J Ausgabe Gesamtpreis Java Basics - Anfänger-Themen 39
E Variablen in formatierter Ausgabe Java Basics - Anfänger-Themen 15
B HQL / Hibernate, GroupBy und Ausgabe als Double Java Basics - Anfänger-Themen 1
J StrinBuffer in der Ausgabe Java Basics - Anfänger-Themen 4
H ausgabe? Java Basics - Anfänger-Themen 32
B Ausgabe Zahlenreihe Horizontal Java Basics - Anfänger-Themen 3
V Neue Ausgabe von toString nach Methodenaufruf Java Basics - Anfänger-Themen 9
N Wochentagberechner Ausgabe funktioniert nicht Java Basics - Anfänger-Themen 7
K Array Ausgabe Java Basics - Anfänger-Themen 2
L Datentypen Ausgabe von eigenem Datentypen Java Basics - Anfänger-Themen 2
C 1x1 Ausgabe auf dem Bildschirm Java Basics - Anfänger-Themen 3
L Fehler im Programm bei Ausgabe Java Basics - Anfänger-Themen 21
J Doppelte Ausgabe erzeugen Iterator Java Basics - Anfänger-Themen 6
F Warum ist die Ausgabe hier 1? Java Basics - Anfänger-Themen 4
Bun17 Keine Ausgabe in der Konsole Java Basics - Anfänger-Themen 2
H Ausgabe Java Basics - Anfänger-Themen 6
U Ausgabe von Dateiinhalt während Programmnutzung fehlerhaft Java Basics - Anfänger-Themen 3
Jackii ArrayList ausgabe ohne Dopplung Java Basics - Anfänger-Themen 11
F Erste Schritte Subnet Calculator - Ausgabe der NetID und der Broadcast Java Basics - Anfänger-Themen 4
D Wiederholende Ausgabe Java Basics - Anfänger-Themen 3
G Exception und Ausgabe der Duplikate Java Basics - Anfänger-Themen 6
A Datei Ein und Ausgabe FileWriter und printWriter Java Basics - Anfänger-Themen 5

Ähnliche Java Themen

Neue Themen


Oben