Erste Schritte Potenztabelle

RaymanRockt

Mitglied
Servus Leutz,

ich komm einfach nicht weiter keine ahnung was ich falsch mache.
Mein Programm soll eine Potenztabelle ausgeben, wobei der Benutzer die Anzahl der Spalten und Zeilen eingeben kann. Und die Potenzberechnung soll ohne Math.Pow funktionieren.
Wie es am Ende aussehen sollte könnt ihr im Anhang sehen.
Danke

Java:
import java.io.*;

public class Potenztabelle{
	 
public static void main(String[] args) throws IOException {
	
	BufferedReader input=new BufferedReader
			(new InputStreamReader (System.in));
    	
	System.out.println("Geben Sie die Anzahl Zeilen ein: ");
	int zeilen;
	zeilen = input.read();
	
	System.out.println("Geben Sie die Anzahl Spalten ein: ");
	int spalten;
	spalten = input.read();
	
		for(int i=1; zeilen<i; i++);
		{
			for(int j=1; spalten<j; j++);
			{	
				System.out.println(zeilen^spalten);
			}
		}
	
	}
	
}
 

Anhänge

  • potenz.JPG
    potenz.JPG
    19,6 KB · Aufrufe: 45

HimBromBeere

Top Contributor
Bei der 2ten Eingabeaufforderung steht auf einmal 13 dran
Was hast du denn eingegeben?! Woher sollen wir wisssen, was du gemacht hast?

Das gibt dir nicht die Potenz aus. Schrei dir mal eine rekursive Methode für die Potenz, geht ganz fix...


Aber ohne genaue Frage wird dir hier niemand helfen (können).

Deine Bedingung
Code:
zeilen < i
ist überdies völliger Käse. Versuch´s mal anders herum... (äquivalent natürlich für j)
 
Zuletzt bearbeitet:

Fant

Bekanntes Mitglied
"Geht nicht" ist keine Problembeschreibung.

Bei mir steht da nirgendwo eine 13.

Für die Eingabe nimmst du besser einen Scanner, aber gib doch erstmal willkürlich feste Zahlen im Programm vor. Um die Eingabe kannst du dich später immer noch kümmern.

Was ich aber spontan sehe: In den for-Schleifen hast du am Ende ein ";", welche da jeweils sicher nicht hin soll. Die Potenz "Zeile hoch Spalte" wirst du auch anders berechnen müssen. Das "^" bedeutet in Java was ganz anderes...

Gruß Fant
 

AquaBall

Top Contributor
Nochmal: Hast du die bisherigen Tips gelesen?
  • und überlegt
  • und nachgebessert?
Was ist deine Frage?
Code:
Warum funktioniert meine 2te Eingabeaufforderung nicht?
ist keine Fehlerbeschreibung.

Was hast du getestet?
Ein
Code:
System.out.println(...)
wirkt oft Wunder.
 

RaymanRockt

Mitglied
Was ist daran eigentlich so schwer wenn schon der kompette Quellcode hier drin steht ihn einfach zu kopieren und selbst auszuprobieren? Was soll ich den noch zu der Fehlerbeschreibung hinzufügen? Sie funktioniert einfach nicht, es kommt keine Abfrage man kann nichts eingeben.

hier die verbesserte version:

Java:
import java.io.*;

public class Potenztabelle{
	 
public static void main(String[] args) throws IOException {
	
	BufferedReader input=new BufferedReader
			(new InputStreamReader (System.in));
    	
	System.out.println("Geben Sie die Anzahl Zeilen ein: ");
	int zeilen;
	zeilen = input.read();
	
	System.out.println("Geben Sie die Anzahl Spalten ein: ");
	int spalten;
	spalten = input.read();
	
	int potenz;
	potenz = spalten;
	
		for(int i=1; i<zeilen; i++)
		{
			for(int j=1; j<spalten; j++)
			{
				
				for(int x=1; x<spalten; x++)
				{
					
					potenz = potenz*spalten;
					
				}
					return potenz;
			}
		}
	
	}
	
}
 

AquaBall

Top Contributor
Was ist daran eigentlich so schwer wenn schon der kompette Quellcode hier drin steht ihn einfach zu kopieren und selbst auszuprobieren?
Was soll ich den noch zu der Fehlerbeschreibung hinzufügen?
Du erwartest, dass wir deinen Code gefälligst zu kopieren und zu testen haben?
Mal sehen, wie lange du mit dieser EInstellung hier Erfolg hast.

Dennoch:
Zur Eingabe: schau dir mal scanner() oder readline an.
Wo soll in deinem Programm was ausgegeben werden?
Wohin soll denn das return Werte zurückgeben?
 
Zuletzt bearbeitet:

RaymanRockt

Mitglied
wenn ich jemanden hilfestellung geben will dann versuche ich das problem zu verstehen und dazu gehört auch seine arbeit mir anzuschauen was bedeutet einfach schnell kopieren und testen ist gleich ich verstehe was er meint und ich kann auch gleich eine lösung selbst testen die ich ihm vorschlage aber wenn das hier einfach nur ein comment by comment forum ist bin ich hier wirklich falsch und entschuldige mich.
 

Fant

Bekanntes Mitglied
Ja, und so wie du es machst geht es ja offenbar nicht, oder?
Nun haben dir aber schon zwei Leute gesagt, was du stattdessen machen kannst, aber du ignorierst es einfach?!

mit input.read() liest du genau ein Zeichen ein. Aber in der Konsole gibst du schon mindestens zwei ein (nämlich die Zahl und ENTER). Und was ist, wenn du eine Zahl >= 10 eingeben willst? das ist ja auch mehr als ein Zeichen....
 
Zuletzt bearbeitet:

RaymanRockt

Mitglied
@fant ich habs schon getestet es kommt die fehlermeldung das er keine string zu einem int konvertieren kann und das würde man merken wenn man einfach selbst es testen würde aber dieses kopieren, einfügen und testen ist einfach zuviel
 

AquaBall

Top Contributor
Das ist ein AnfängerForum, das vorallem die Absicht hat, Denkanstöße für den Lernprozess der Fragenden zu bringen.

Wir haben keine Lust, die Programme anderer zu schreiben oder Hausaufgaben anderer zu lösen, weil es uns nur Zeit kostet, und dir nichts bringt.

Wer programmieren will, muss lernen wollen.
Wer nicht lernen will, soll sich einen anderen Berufswunsch, anderes Hobby, anderes ... suchen, und die Finger von programmieren lassen.

Deshalb nochmal mein Denkanstoß: schau dir die scanner()-Methoden an.
Damit kommst du eleganter und sicherer an deine Eingaben.
 

Fant

Bekanntes Mitglied
Ich und mindestens noch eine Person haben dir gesagt, dass du für die Eingabe besser einen Scanner benutzt. Und das "würde man wissen wenn man einfach selbst es lesen würde aber dieses lesen, denken und umsetzen ist einfach zuviel"
 

RaymanRockt

Mitglied
Java:
import java.util.*;

public class Potenztabelle{
	 
public static void main(String[] args) 
{
	
	Scanner sc = new Scanner(System.in);
    	
	System.out.println("Geben Sie die Anzahl Zeilen ein: ");
	int zeilen;
	zeilen = sc.nextInt();
	
	System.out.println("Geben Sie die Anzahl Spalten ein: ");
	int spalten;
	spalten = sc.nextInt();
	
		for(int i=1; i<zeilen; i++)
		{
			for(int j=1; j<spalten; j++)
			{
				
				int potenz = j;
				
				for(int x=1; x<=spalten; x++)
				{
					
					potenz = potenz*j;
					
				}
					System.out.println(potenz);
			}
			
			System.out.println("");
		}
	
	}
	
}
 

RaymanRockt

Mitglied
Die Eingabeaufforderung funktioniert jetzt. Aber nun habe ich das Problem mit der Potenz Methode irgendwo hab ich da ein Denkfehler finde Ihn aber nicht
 

AquaBall

Top Contributor
Noch 3 Tipps (siehe Code).
Mit verkürzter Schreibweise muss man weniger tippen, weniger warten, macht weniger Fehler.
Pass auf deien Einrückungen auf, dadurch wird's gleich viel übersichtlicher (In Eclipse ShftStgrF)
Wenn du mit Leerzeilen etwas sparsamer bist, liest sich's leichter und lieber im Forum weil man weniger Scrollen muss, dannn bekommst du eher Hilfe.
Java:
import java.util.*;
public class Potenztabelle{
 
public static void main(String[] args) 
{
	Scanner sc = new Scanner(System.in);

	System.out.println("Geben Sie die Anzahl Zeilen ein: ");
	int zeilen = sc.nextInt();		// Kannst du in 1 Zeile schreiben;
	
	System.out.println("Geben Sie die Anzahl Spalten ein: ");
	int spalten = sc.nextInt();		// Kannst du in 1 Zeile schreiben;

	for(int i=1; i<zeilen; i++)
	{
		for(int j=1; j<spalten; j++)
		{
			int potenz = j;
			for(int x=1; x<=spalten; x++)
			{
				potenz *= j;		// kürzere Schreibweise, weniger Tippfehler;
			}
			System.out.print(potenz+ "   ");  // Dann siehts eher nach Tabelle aus
		}
		System.out.println("");
	}
}
}
 
Zuletzt bearbeitet:

AquaBall

Top Contributor
Die Eingabeaufforderung funktioniert jetzt. Aber nun habe ich das Problem mit der Potenz Methode irgendwo hab ich da ein Denkfehler finde Ihn aber nicht

Sag doch halt, was dir nicht passt.
"hab ich das Problem mit der Potenz Methode"
"irgendwo hab ich da ein Denkfehler"
deutet halt überhaupt nicht darauf hin was dir nicht gefällt.

Ich vermute die Ergebnisse stimme nicht.
Schau dir mal Anfangswerte und Schleifenindizes an.
Dann rechne es händisch an einfachen Beispielen nach, und du wirst schnell das Problem finden.

Ohne es getestet zu haben: Ich glaube du musst nur EIN EINZIGES Zeichen ändern.
 
Zuletzt bearbeitet:

RaymanRockt

Mitglied
edit funktioniert doch nicht dachte ich habs

Java:
import java.util.*;

public class Potenztabelle{
	 
public static void main(String[] args) 
{
	
	Scanner sc = new Scanner(System.in);
    	
	System.out.println("Geben Sie die Anzahl Zeilen ein: ");
	int zeilen = sc.nextInt();
	
	System.out.println("Geben Sie die Anzahl Spalten ein: ");
	int spalten = sc.nextInt();
	
		for(int i=1; i<=zeilen; i++)
		{
			
			for(int j=1; j<=spalten; j++)
			{
				
				int potenz=1;
				
				for(int x=1; x<spalten; x++)
				{
					potenz=potenz*zeilen;
				}
				
				System.out.print(potenz);
				System.out.print("\t");
				
			}
			
			System.out.println("");
			
		}
	
	}
	
}
 

AquaBall

Top Contributor
edit funktioniert doch nicht dachte ich habs

Jetzt bist du dir nach der 10 Aufforderung noch zu fein dein Problem zu beschreiben.
Zudem lässt du mich in meinen Vermutungen sterben was dein Problem sein könnte, und reagierst darauf nicht.
Und außerdem hältst du dich nicht an meinen Hinweis im letzten Post (EIN Zeichen zu ändern).

Du musst nicht nur Programmieren lernen.

Ich hab da keine Lust mehr zu helfen.
 

RaymanRockt

Mitglied
Sorry Aquaball, also das Problem ist das er immer das gleiche Ergebnis ausgibt also alle Zellen habe den Wert 625 bei Zeilen und Spaltenanzahl 5. Bin schon auf der Suche nach dem einem Zeichen bin aber noch nicht darauf gestoßen
Deine Methode hab ich auch schon getestet aber dann wird in jeder Zeile die gleichen Ergebnisse angeziegt
 
Zuletzt bearbeitet:

RaymanRockt

Mitglied
ICH HABS GESCHAFFT HAHAHAHAHAAHAHAHAHHAHHAHAH

Java:
import java.util.*;

public class Potenztabelle{
	 
public static void main(String[] args) 
{
	
	Scanner sc = new Scanner(System.in);							//Scanner Methode
    	
	System.out.println("Geben Sie die Anzahl Zeilen ein: ");		//Ausgabe am Bildschirm
	int zeilen = sc.nextInt();										//Eingabe von Zeilenanzahl
	
	System.out.println("Geben Sie die Anzahl Spalten ein: ");		//Ausgabe am Bildschirm
	int spalten = sc.nextInt();										//Eingabe von Zeilenanzahl
	
		for(int i=1; i<=zeilen; i++)								//Schleife für Zeilen
		{
				
				int potenz=1;
				
				for(int x=1; x<=spalten; x++)						//Integrierte Methode für Potenz
				{
					potenz=potenz*i;
					System.out.print(potenz);						//Ausgabe am Bildschirm
					System.out.print("\t");							//Tabulator
				}
			
			System.out.println("");									//Zeilenumbruch
			
		}
	
	}
	
}
 
Zuletzt bearbeitet:

Neue Themen


Oben