n hoch n ausgeben mit for schleife

Status
Nicht offen für weitere Antworten.
G

gast

Gast
hallo ich will mir ein java programm schreiben, das nach eingabe von zeichen, also buchstaben und zahlen, die funktion n hoch n ausrechnet und ausgibt. aber es soll maximal bis n=15 eingelesen werden. eingaben außerhalb des bereiches zb größer 15, buchstaben und brüche sollen abgefangen werden. wie kann man von einem string die zahlen auslesen lassen und nur die erlaubten zahlen verwenden also ganze zahlen kleiner 16. das muss doch irgendwie mit der charAt methode gehen.

Code:
import java.io.*;

public class test{
    public static void main(String[] args)
    throws IOException
    {String x; long n;
     BufferedReader din = new BufferedReader(new InputStreamReader(System.in)); 
     System.out.print( "Wert eingeben:" );
     x = din.readLine();
     
for (  ;  ;  ) { 

}
     if (n > 15 || n < 0 );
    System.out.println("Zu hohe n Werte"); 
    System.out.println("n");
    }
}
das war mein erster versuch aber es beinhaltet nicht alles so wie ich es will wer kann mir helfen???
 

jptc.org

Bekanntes Mitglied
Ich weiss zwar nicht ob ich das problem vollends verstanden haben, aber eigentlich willst du nur aus einem String eine Zahl machen, oder? Versuch doch einfach mal das folgende:

Code:
String str = // von irgendwo eingelesen
Integer zahl;
try {
   zahl = Integer.parseInt(str).intValue();
} catch (NumberFormatException nfex) {
   System.out.println("Schöner Versuch aber nur Zahlen sind erlaubt!");
}

if (zahl != null && zahl.getIntValue() > 15) {
   System.out.println("Mir ist die zahl zu groß");
}

Ich hoffe das konnte helfen.

Karsten Voigt
http://www.java-performance-portal.org
 
G

gast

Gast
danke das hat mich schon ein stück weiter gebracht aber ich habe immer noch ein großes problem, weil ich nicht weiß wie ich dem programm klar mache das es n hoch n ausrechnet. man muss das doch mit einer for schleife ausdrücken und igendwie mit i. ist daba das i der exponent?
wie macht man so eine for schleife?

ps
danke für die nette hilfe im forum, das bringt einem wirklich weiter
mfg
 
G

Guest

Gast
Ja ist wichtig! Weil wir die Funktion n hoch n in einer "for" Schleife berechnen sollen und nicht gültige Eingaben in den String mit Hilfe der Methode "charAt" aussortieren sollen .... :?: :!:


Code:
import java.io.*;

public class test{
    public static void main(String[] args)
    throws IOException
    {String x; int n;
     BufferedReader din = new BufferedReader(new InputStreamReader(System.in)); 
     System.out.print( "Wert eingeben:" );
     x = din.readLine();
     if (( n = x.charAt(n)>='0') && ( n = x.charAt(n)>='15')) {
        for ( ; ; ; )
        System.out.println("Ergenis ist:" + n);  }
     else  System.out.println("falscher Werte eingegeben! ");
    
    }
}



ich denke mal es sollte in die Richtung gehen wenn es möglich ist, weil mehr als if/else und for Schleifen wir noch nicht mal hatten.... :roll:
 

Bladerunner

Mitglied
ich bin es nochmal. vielleicht kann mir jemand mit einem beispiel helfen, was mir die for schleife besser erläutert. bei vollgendem programm wird 1 bis 15 ausgegeben
Code:
public class SchleifeF {            
 public static void main(String args[])  
   {

   int i=0; 
   
    for(i=0;i<=15;i++)
        {
        System.out.println(i);
        }

   }
}
jetzt müsste ich es doch nur so modifiziern das ich ein n eingeben lasse und dann die for schleife in
Code:
for(i=0;i<=n;i++)
ändere. jetzt wiederholt er die schleife n mal, wenn ich das richtig verstehe. wie kann ich das programmieren das der n hoch n ausrechnet? wie sieht eine for schleife für n hoch n aus?
 

schalentier

Gesperrter Benutzer
ähm..

also erstmal, weist du was ein char ist?
ein char ist ein 1byte großer datentyp, der werte zwischen -127 und 128 annehmen kann. normalerweise werden chars benutzt, um ASCII zeichen darzustellen. so is '1' ein char und 'A' auch. '15' dagegen ist kein char, sondern eine zeichenkette, genauer 2 chars '1' und '5'. für zeichenketten verwendet man Strings.

Also versteh ich deine aufgabe nicht. (ich glaub keiner hier versteht sie)

erklär noch mal ganz genau, was du machen willst.

:?:
 

Bladerunner

Mitglied
"Schreiben Sie ein Java-Programm, das die Funktion f(n)=n hoch n für natürliche Zahlen n = 1,....,15 berechnet. Eingaben außerhalb dieses Bereiches sollen zu einer Meldung an den Benutzer führen und nich weiter verarbeitet werde. Das Program soll außerdem alle Eingaben, die keine ganzen Zahlne sind, mit einer solchen Meldung abfangen."

Hinweise: Eingabe als String (Zeichenkette) -> Mehtode zum Auslesen von Zahlen (bsp. s.charAt(i)=='0')

Bsp zum Auslesen ((s.charAt(i)>='0')&&(s.charAt(i)>='9'))
 

Nobody

Top Contributor
also die berechnung in der for schleife ist absolut simpel. ich schreib dir nur die for schleife an:

Code:
//einlesen erfolgte schon, genauso wie die überprüfung
int erg=n;
for(int i=1;i<n;i++){
  erg=erg*n;
}
System.out.println(erg);

sollte gehen oder?
 

Jiriki

Mitglied
schalentier hat gesagt.:
also erstmal, weist du was ein char ist?
ein char ist ein 1byte großer datentyp, der werte zwischen -127 und 128 annehmen kann. normalerweise werden chars benutzt, um ASCII zeichen darzustellen. so is '1' ein char und 'A' auch. '15' dagegen ist kein char, sondern eine zeichenkette, genauer 2 chars '1' und '5'. für zeichenketten verwendet man Strings.
:?:


FALSCH :!:

zitat von krüger:

"Konsequenterweise wurde der Typ char in Java daher bereits von Anfang an 2 Byte groß gemacht und speichert seine Zeichen auf der Basis des Unicode-Zeichensatzes."

das ein String in java aus mehreren aufeinanderfolgenden chars besteht stimmt aber nur sind es keine ascii zeichen sondern unicode zeichen!!! (wobei der unicode den ascii code enthält...)
 

Jiriki

Mitglied
Bladerunner hat gesagt.:
Bsp zum Auslesen ((s.charAt(i)>='0')&&(s.charAt(i)>='9'))

sollte bestimmt so heissen

( s.charAt(i) >= '0' && s.charAt(i) <= '9' )

die zahl soll ja grösser/gleich null und KLEINER/gleich 9 sein und nicht grösser/gleich 9
 

Jiriki

Mitglied
Code:
import java.io.*;

class Test
{
	public static void main(String [] arg)
	{
		macheWas();
	}
	
	public static void macheWas()
	{
		try
		{
			BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
			System.out.print("Bitte Zahl zwischen 1-15 eingeben: ");
			
			String eingabe = in.readLine();
			
			int zahl = Integer.parseInt(eingabe);
			
			if(zahl>=1 && zahl <=15)
			{
				System.out.println(zahl + " hoch " + zahl + " = " + (long) Math.pow(zahl, zahl));
			}
			else
			{
				//throw new NumberFormatException();		//Exception werfen
				System.out.println("Fehlerhafte Eingabe");	//oder fehler selbst behandeln
				macheWas();									//ganz nach belieben
			}
		}
		
		catch (NumberFormatException e)
		{
			System.out.println("Fehlerhafte Eingabe");
			macheWas();
		}
		
		catch (Exception e)
		{
			e.printStackTrace();
		}
	}
}

ist zwar nicht 100% nach der aufgabe aber....
 

schalentier

Gesperrter Benutzer
Jiriki hat gesagt.:
schalentier hat gesagt.:
also erstmal, weist du was ein char ist?
ein char ist ein 1byte großer datentyp, der werte zwischen -127 und 128 annehmen kann. normalerweise werden chars benutzt, um ASCII zeichen darzustellen. so is '1' ein char und 'A' auch. '15' dagegen ist kein char, sondern eine zeichenkette, genauer 2 chars '1' und '5'. für zeichenketten verwendet man Strings.
:?:


FALSCH :!:

zitat von krüger:

"Konsequenterweise wurde der Typ char in Java daher bereits von Anfang an 2 Byte groß gemacht und speichert seine Zeichen auf der Basis des Unicode-Zeichensatzes."

das ein String in java aus mehreren aufeinanderfolgenden chars besteht stimmt aber nur sind es keine ascii zeichen sondern unicode zeichen!!! (wobei der unicode den ascii code enthält...)

hast natürlich recht. :p

hab nich nachgedacht, es ging mir mehr ums prinzip.
 

Bladerunner

Mitglied
Also lasst mich mal raten mit der "charAt" Methode kann man gar nicht ganze Zahlen aus einer Zeichenkette rausfiltern und ungügltige Eingaben abfangen :?:

Tja frage mich nur dann was wir damit sonst machen sollten :roll:
 

Nobody

Top Contributor
schonmal was von indexOf gehört? soll ganz brauchbar sein ;)
also so sieht das dann aus:
Code:
//leider musst du alle nicht erlaubten zeichen abfragen, daher hier nicht sehr geschickt.
//ich schreibs hier nur mal am beispiel von a und A, du könntest das ganze auch in eine schleife packen und mit einem array arbeiten

boolean korrekt=true;
if(eingabe.indexOf("a")!=-1  || eingabe.indexOf("A")!=-1){
  korrekt=false;
}

geschickter wäre hier eine try catch methode:

Code:
try{
  int i=Integer.parseInt(eingabe);
}
catch(NumberFormatException e){
  //fehlerausgabe
}
 

Bladerunner

Mitglied
So hab jetzt das Programm fertig, macht genau das was es soll. Bin zwar mal gespannt was er sagt aber soll er es mir mal mit seinem charAt() zeigen :twisted: :twisted: :twisted:
 

gustav

Aktives Mitglied
Wahrscheinlich solltst Du den Eingabestring selbst parsen ! Oder ?
Habe mal versucht eine Heuristik zusammenzustellen. Wichtig ist doch nur das Deine Eingabe aus 1 oder 2 Zeichen besteht. Dabei darf das 1. Zeichen zwischen 0 und 9 liegen, das 2. aber nur zwischen 0 und 5. Alle anderen Eingaben verwirfst du einfach. Der Sonderfall mit nur einer Ziffer macht die ganze Sache allerdings wieder ein wenig unübersichtlich.
Code:
public class pow1
{
    public static void main(String[] args) 
    {
     String x=""; 
     long n;
     BufferedReader din = new BufferedReader(new InputStreamReader(System.in));
     System.out.print( "Wert eingeben:" );
     try
     {
       x = din.readLine();
     }
     catch (Exception e) {} 
     
     
     int zahl = -1 ; // Initialisierung mit ungültigen Wert
     int len = x.length() ;

        // 1. zeichen
     if (len > 0) // || (len > 2)
     {
       if ( (x.charAt(0)>='0') && (x.charAt(0)<='9')) 
       {
         zahl = (int) (x.charAt(0) - '0') ;
         
          // 2. Zeichen
         if (len > 1)
         {
           if ( (x.charAt(1)>='0') && (x.charAt(1)<'6')) 
           {
             zahl = zahl * 10 ;
             zahl = zahl + (int) (x.charAt(1) - '0') ;
           } 
           else // 2. Zeichen nicht zulässig => 1.Zeichen ungültig machen
           {
             System.out.println("2. Zeichen nicht zulässig") ;
             zahl = -1 ;
           }
         }
         
           // längere Eingaben
         if (len > 2)
         {
           System.out.println("Eingabe zu lang") ;         
         } 
         else
         {
            for (int i = 0 ; i < zahl ; i++)      
            {
              System.out.println(i) ;
              // hier muss dann das Potenzieren rein :-)
              // Vorschlag :  pow(n, n) = pow(n*n, n/2) !!!
            }
         }
         
       } else System.out.println("erstes Zeichen keine Zahl") ;
       
       System.out.println("\nZahl =" +zahl) ;
     }
     else System.out.println("keine Eingabe") ; ;
    }
}
 

Bladerunner

Mitglied
Oh wow :shock: .... erstmal thx für die Mühe !

Ob ich die Eingabe selber "parsen" sollte kann ich dir nicht sagen da ich nicht mal weiß was das bedeutet :wink: , der einzige Hinweis war ja das charAt aber darauf konnte ich mir nicht wirklich nen reim drauf bilden. Zumal auch überall steht das man damit nur ein Zeichen an einer gewissen Stelle zurückgeliefert bekommt. Naja mal schauen so hab ich es jetzt jedenfalls gelöst....


Code:
import java.io.*;

public class Aufgabe1{
    public static void main(String[] args)
    throws IOException
    {String x; int n , n1;
     BufferedReader din = new BufferedReader(new InputStreamReader(System.in)); 
     System.out.print( "Wert eingeben:" );
     x = din.readLine();
     try {
         n = Integer.parseInt(x); 
         if (n>=0 && n <=15)
            { n1=n; 
            for(int i=1;i<n;i++)
            { n1=n1*n; } 
            System.out.print("Ergebnis ist:" + n1);} 
         else System.out.print("Schöner Versuch aber nur Zahlen von 0 - 15 sind erlaubt ");  }
     catch (NumberFormatException e) 
    { System.out.println("Schöner Versuch aber nur Zahlen von 0 - 15 sind erlaubt "); }
    }
}
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
A Methoden Guten Tag , ich wollte so machen dass wenn meine frog an eine fly/bee geht dann an meine Tafel geht der zahl +1 hoch. Java Basics - Anfänger-Themen 2
S zahl hoch und runter zählen per button Java Basics - Anfänger-Themen 25
L Rekursive Methode zur Berechnung der Potenz q hoch p Java Basics - Anfänger-Themen 17
W A hoch N Rekursiv Java Basics - Anfänger-Themen 3
A mantisse var * 10 hoch potenz var Java Basics - Anfänger-Themen 2
K Datentypen Wertebereich float/double - Warum nicht hoch -1 Java Basics - Anfänger-Themen 6
M Automatisch hoch zählen Java Basics - Anfänger-Themen 8
M Dateipfad: einen Ordner "hoch" Java Basics - Anfänger-Themen 11
T a hoch n Java Basics - Anfänger-Themen 3
V javascript und HTML: hoch 2 Java Basics - Anfänger-Themen 2
StrikeTom Hoch(^) mit double Java Basics - Anfänger-Themen 19
vandread Iterator zählt nicht hoch?! Java Basics - Anfänger-Themen 3
T "x hoch y" macht nur "x mal x"^^ Java Basics - Anfänger-Themen 3
0 a hoch b rekursiv - wie stoppen? Java Basics - Anfänger-Themen 3
H 2 hoch n Java Basics - Anfänger-Themen 6
K Zahlen hoch und tief setzen Java Basics - Anfänger-Themen 7
R Hoch Zeichen Java Basics - Anfänger-Themen 4
richis-fragen JTable den angezeigten WERT nicht den Wert aus dem Model ausgeben. Java Basics - Anfänger-Themen 3
richis-fragen JTable effektiv angezeigter Text ausgeben nicht Inhalt vom Model Java Basics - Anfänger-Themen 9
ixChronos Letzten 4 Ziffern einer großen Zahl ausgeben Java Basics - Anfänger-Themen 3
Glühlampe Usereingabe in der gleichen Zeile ausgeben Java Basics - Anfänger-Themen 6
Ü Java Array - Buchstaben als Zahlen ausgeben Java Basics - Anfänger-Themen 22
H Minimum und Maximum ausgeben lassen Java Basics - Anfänger-Themen 7
E Array, nächste Zahl zur 5 ausgeben, wie? Java Basics - Anfänger-Themen 42
J Beim Start des Programms zB. eine Linie in JPanel ausgeben Java Basics - Anfänger-Themen 4
R Images aus einem Array ausgeben Java Basics - Anfänger-Themen 3
S leeres Array statt Null Pointer Exception ausgeben Java Basics - Anfänger-Themen 20
S Inhalte aus Array vergleichen und Max ausgeben Java Basics - Anfänger-Themen 3
javaBoon86 Arrays 2 Dimension Werte ausgeben Java Basics - Anfänger-Themen 15
S Ausgeben wie oft ein Wert in einem Array vorkommt Java Basics - Anfänger-Themen 7
S Vollmond berechnen und ausgeben Java Basics - Anfänger-Themen 12
S Vollkommene Zahl berechnen und ausgeben Java Basics - Anfänger-Themen 16
K wie kann ich alle Attribute von dem Objekt(pagode) ausgeben lassen ? Java Basics - Anfänger-Themen 3
I Wortkette in umgekehrter Rheinfolge + in neuer Zeile ausgeben Java Basics - Anfänger-Themen 4
jeff98 Wie kann man in Java eine Zeichenformation ausgeben? Java Basics - Anfänger-Themen 9
S Größte Zahl nach Eingabe der Zahl 0 ausgeben Java Basics - Anfänger-Themen 6
Tommilee Char ausgeben Java Basics - Anfänger-Themen 5
K Geldbetrag in Euro + Cents ausgeben Java Basics - Anfänger-Themen 24
M geschachtelte for-Schleifen - Einmaleins ausgeben Java Basics - Anfänger-Themen 3
TheSepp Nur Arrays ausgeben, die Werte zugewiesen haben. Java Basics - Anfänger-Themen 4
julian0507 Wörter einlesen lassen und rückwärts ausgeben Java Basics - Anfänger-Themen 7
I ResultSet aus meiner SQL-Abfrage in einem JTextfield ausgeben. Java Basics - Anfänger-Themen 1
M Werte in Felder speichern und geordnet ausgeben Java Basics - Anfänger-Themen 8
JavaBeginner22 Wort mit der größten Länge ausgeben Java Basics - Anfänger-Themen 4
frager2345 Aufgabe Hash Objekt Elemente ausgeben Java Basics - Anfänger-Themen 2
LilliCherry Array in einer Zeile ausgeben Java Basics - Anfänger-Themen 6
D Grafik auf ein JPane ausgeben. Java Basics - Anfänger-Themen 6
berserkerdq2 Methodenaufrufstapel ausgeben, was ist das? Java Basics - Anfänger-Themen 2
rosima26 Geordnete Arrays ausgeben Java Basics - Anfänger-Themen 31
D Inhalt eines Arrays ausgeben Java Basics - Anfänger-Themen 7
C Zwei Arrays addieren und ausgeben Java Basics - Anfänger-Themen 3
LFB In einer For-Schleife alles in einer Zeile ausgeben Java Basics - Anfänger-Themen 14
Robin Gentele XML von Webserver lesen und ausgeben Java Basics - Anfänger-Themen 5
W Array ausgeben Java Basics - Anfänger-Themen 29
I 2D-Array Position der Liste ausgeben. Java Basics - Anfänger-Themen 2
S Schachbrettmuster ausgeben Java Basics - Anfänger-Themen 3
J Zahlen bis zu einem bestimmten Grenzwert ausgeben Java Basics - Anfänger-Themen 11
Fats Waller Compiler-Fehler Kann ich einen String und die Summe zweier Char Werte mittels der println Anweisung ausgeben Java Basics - Anfänger-Themen 4
M Array rückwärts ausgeben Java Basics - Anfänger-Themen 2
HelpInneed Baum ausgeben (aber mal anders) Java Basics - Anfänger-Themen 3
HeiTim Brauche Hilfe soll ein nummeriertes Feld ausgeben lassen Java Basics - Anfänger-Themen 17
P Datei einlesen, nach Begriff filtern und in Datei ausgeben. Problem Standardausgabe über Konsole Java Basics - Anfänger-Themen 19
xFlozen Text mehrspaltig ausgeben Java Basics - Anfänger-Themen 3
Kotelettklopfer Stringbuilder mit print ausgeben Java Basics - Anfänger-Themen 83
L Methoden Rückgabewert Verbergen / nicht mit ausgeben Java Basics - Anfänger-Themen 4
S Array über ein Ausgabemethode in main ausgeben Java Basics - Anfänger-Themen 31
S Primzahlen in Array ausgeben Java Basics - Anfänger-Themen 14
O Anzahl Datensätze ausgeben Java Basics - Anfänger-Themen 5
W n verschiedene Arrays zufällig ausgeben - mit der Random-Klasse? Java Basics - Anfänger-Themen 8
C Matrix mit Array ausgeben Java Basics - Anfänger-Themen 6
Poppigescorn Mithilfe einer Arrayliste einen Notenspiegel ausgeben Java Basics - Anfänger-Themen 12
C Methode Grouping mit Werten ausgeben Java Basics - Anfänger-Themen 2
A Array einlesen und ausgeben Java Basics - Anfänger-Themen 13
K Datum einlesen und Tag, Monat und Jahr einzeln ausgeben Java Basics - Anfänger-Themen 1
K Datum einlesen und Tag, Monat und Jahr einzeln ausgeben Java Basics - Anfänger-Themen 1
ansystin Teilerfremde Zahlen ausgeben + Zahlenausgabe speichern Java Basics - Anfänger-Themen 3
J Koordinaten per Schleife ausgeben Java Basics - Anfänger-Themen 6
S Wort einlesen Array ausgeben Java Basics - Anfänger-Themen 4
H Eingegebene Zahlen mit Array ausgeben Java Basics - Anfänger-Themen 18
S Arraylist<Object> mit verschiedenen Objects ausgeben Java Basics - Anfänger-Themen 3
L Längstes Element einer ArrayList ausgeben Java Basics - Anfänger-Themen 9
I 12 Spalten von jeweils 30 Zahlen in Konsole ausgeben Java Basics - Anfänger-Themen 6
elsaaaaaa Wochentag als String ausgeben mit JDK Klassen Java Basics - Anfänger-Themen 6
M ArrayList in GUI ausgeben Java Basics - Anfänger-Themen 1
C Erste Schritte Muster ausgeben in der Konsole - großes V Java Basics - Anfänger-Themen 5
J Nur bestimmter Typ aus der ArrayList ausgeben. Java Basics - Anfänger-Themen 9
I Java-Wort einlesen und ausgeben Java Basics - Anfänger-Themen 7
KogoroMori21 Methode in der main ausgeben Java Basics - Anfänger-Themen 2
M Wie kann ich hier den Abstand ausgeben? Java Basics - Anfänger-Themen 3
W Anzahl der Zeilen ausgeben lassen Java Basics - Anfänger-Themen 20
U Teilergebniss mit 0 nicht ausgeben Java Basics - Anfänger-Themen 3
S Tastatureingabe auslesen und in Konsole ausgeben Java Basics - Anfänger-Themen 6
T Bestimmte Zahlen ausgeben mit einer whilfe Schleife Java Basics - Anfänger-Themen 21
M In gleicher zeile hinter ausgabe noch etwas ausgeben Java Basics - Anfänger-Themen 1
JD_1998 Array-Position aus einer Methode in einer anderen ausgeben (Kurze Frage) Java Basics - Anfänger-Themen 2
M Objekte in Array speichern und ausgeben Java Basics - Anfänger-Themen 17
JD_1998 Arrays einlesen, zwischenspeichern und wieder ausgeben Java Basics - Anfänger-Themen 8
H Alle Geraden zahlen bis 10 ausgeben Java Basics - Anfänger-Themen 11
M Strings mit gerader und ungerader Länge ausgeben Java Basics - Anfänger-Themen 10
R Löschen und ausgeben eines Teilbaums Java Basics - Anfänger-Themen 3

Ähnliche Java Themen

Neue Themen


Oben