Java Ein mal Eins Tabelle

Status
Nicht offen für weitere Antworten.

Jimmy

Mitglied
Hallo Community,

Bin gerade vollkommen am verzweifeln... und mir fällt irgendwie nicht mehr ein wie ich überhaupt meine anfangs-Scripte verwirklichen kann. Habe dann mal nach einem Java Forum gesucht und Google sei dank, hier bin ich gelandet. Sieht ja schonmal viel versprechend aus, also hoffe ich das mir irgendwer helfen kann.

Und zwar möchte ich eine Tabelle machen ( per Console die Ausgabe ), welche mir nach der Abfrage von Größe und welcher Ein mal Eins Tabelle diese ausgibt.

Sprich ich sage Tabelle soll 3 x 3 groß sein und die Tabelle der Zahl 2 zeigen. Soll als Ergebniss dann so aussehen:

* 2 3 4
2 4 6 8
3 6 9 12
4 8 12 16

Habe dann das hier angefangen und schon minds. 100 mal abgeändert aber es kam nicht das raus was ich wollte. Denn die Tabelle ist a) verschoben, also unten links ist eine Zahl alleine stehend und die ganze Multiplikationen stimmen nicht...
Eventuell hat einer einen Rat. Wäre auch für Erklärungen sehr dankbar.

Java:
import AlgoTools.IO;


public class EinXEinsTabelle {

	public static void main(String[] args) {
		macheTabelle();
	}
	public static void macheTabelle() {
		int x, c, d, e;
		c = IO.readInt("Welche Tabelle möchtest du sehen?");
		x = IO.readInt("Welche Größe soll die Tabelle haben? ");
		IO.print("*",7);
		d = 1;
		e = 1;
		
		for(int a = 0; a <= x; a++) {
			for(int b = 1; b <= x; b++) {
				IO.print(+ c*d,7);
				d++;
			}
			IO.println("",7);
			e++;
			d = d;
			IO.print(+ e,7);
		}
	}
}

Danke sehr schonmal.
 

Ariol

Top Contributor
Hab mir mal selbst eine IO-Klasse gebastelt:

Java:
import AlgoTools.IO;
 
 
public class EinXEinsTabelle {
 
    public static void main(String[] args) {
        macheTabelle();
    }
    public static void macheTabelle() {
        int c = IO.readInt("Welche Tabelle möchtest du sehen?");
        int x = IO.readInt("Welche Größe soll die Tabelle haben? ");
        
        x+=1;
        
        for(int i = 1; i <=x; i++)
        {
        	for(int j = 1; j <=x; j++)
        	{
        		if(i==j && j==1)
        			IO.print('*',7);
        		else
        			IO.print(i*j,7);
        	}
        	IO.println();
        }
    }
}


Meine IO
Java:
package AlgoTools;

import java.util.Scanner;

public class IO
{

	public static int readInt(String text)
	{
		System.out.print(text);
		return new Scanner(System.in).nextInt();
	}

	public static void print(Object o, int i)
	{
		String s = o.toString();
		for(int c = s.length(); c < i; c++)
			s+=' ';
		System.out.print(s);
	}
	public static void println()
	{
		System.out.println();
	}

}

@ARadauer: Wir hatten bei uns auf der FH auch so eine Klasse -> für Anfänger.
Hab ich nie benutzt. Ich fand's schwieriger die Jar einzubinden als die Abfrage selbst zu schreiben -_-
 

Landei

Top Contributor
Hier bietet sich die Verwendung von System.out.printf an, weil man damit Zahlen rechtsbündig ausgeben kann, z.B. druckt System.out.printf("%3d",23) rechtsbündig auf 3 Stellen. Wenn du das blöde IO benutzen musst, schreibe dir selbst eine Funktion, mit der du Zahlen vorher ausrichten kannst:

Java:
//nicht die performanteste Variante, aber einfach zu verstehen
private String pad(int number, int length) {
  String s = "" + number;
  while(s.length() < length) {
     s = " " + s;
  }
  return s;
}
 

Jimmy

Mitglied
Ohh danke schonmal für die Hilfe...

Müssen tu ich das nicht, habe ich genommen weil das ein Paket aus der Uni war, so kann man ohne das System.out...... Kram gedönse einfach schreiben IO.print("",int);

Hier kann man auch Stellen angeben, wo die Ziffer stehen soll. Ich werd das ganze mal ausprobieren. Danke schonmal.
Allerdings macht dieses Script doch nur eine Tabelle oder? Dort fehlen mir die Ein mal Eins reihen. Soll ja irgendwo nützlich sein, sprich die 2er Reihe, die 3er Reihe,..., die 42 Reihe anzeigen.

Also; 2,4,6,8,10,12,14,16,...
3,6,9,12,15,18,....

das halt in einer Tabelle.


/edit
Okay ich hatte die i Variable übersehen...

Danke sehr :) Hat mir wirklich weitergeholfen.
 
Zuletzt bearbeitet:

0x7F800000

Top Contributor
Müssen tu ich das nicht, habe ich genommen weil das ein Paket aus der Uni war, so kann man ohne das System.out...... Kram gedönse einfach schreiben IO.print("",int);

Code:
PrintStream IO=System.out;
IO.printf("%d",224)
ist auch nicht länger (wobei ich kA habe, was dieser [c]print("",int);[/c] bedeuten soll, java-syntax wäre das nicht)

Habe aber noch eine Frage und zwar wofür steht das;
x+=1;
für dasselbe wie x++
Reicht nicht x=1; ?!
ne?

Hab hier eine multiplikationstabelle für den Körper F_37 gebastelt... Die Tabellenklasse ist auch recht gut geeignet, um überhaupt alle möglichen Tabellen auszugeben. Dünnbesetzte tabellen und Tabellen mit sortierbaren einträgen werden korrekt behandelt. Aber achtung bei tabellen mit gemischten Typen! Wenn beispielsweise Objekte der X klasse lediglich von Object erben, der erste eintrag aber zufälligerweise Comparable Integer ist, kann durchaus eine castException fliegen. Folgende workarounds sind möglich:
  • [c]X extends Comparable,Y extends Comparable[/c] fordern.
  • auf zeichenkettenebene sortieren
dazu bin ich grad aber zu faul... Also vorsicht: ist eigentlich echt böser code! :exclaim:

Java:
import java.util.*;
import static java.lang.Math.*;

public class Table<X,Y,Z>{
	
	private Map<X,Map<Y,Z>> map;
	
	public Table(){
		map=new HashMap<X,Map<Y,Z>>();
	}
	
	public void put(X x, Y y, Z z){
		Map<Y,Z> xMap;
		if((xMap=map.get(x))==null){
			xMap=new HashMap<Y,Z>();
			map.put(x,xMap);
		}
		xMap.put(y,z);
	}
	
	public Z get(X x, Y y){
		Map<Y,Z> xMap;
		if((xMap=map.get(x))==null){
			return null;
		}
		return xMap.get(y);
	}
	
	@Override
	public String toString(){
		return map.toString();
	}
	
	@SuppressWarnings("unchecked")
	public String toMultilineString(){
		
		Collection<Y> yHeads=new HashSet<Y>();
		for(Map<Y,Z> m:map.values()) yHeads.addAll(m.keySet());
		
		if(yHeads.size()==0 || map.isEmpty()) return "";
		
		List<Y> yHeadsAsList=new ArrayList<Y>(yHeads);
		List<X> xHeadsAsList=new ArrayList<X>(map.keySet());
		
		if(yHeadsAsList.iterator().next() instanceof Comparable<?>){
			Collections.sort((ArrayList<? extends Comparable>)yHeadsAsList);
		}
		
		if(xHeadsAsList.iterator().next() instanceof Comparable<?>){
			Collections.sort((ArrayList<? extends Comparable>)xHeadsAsList);
		}
		
		int height=map.size()+1;
		int width=yHeads.size()+1;
		
		String[][] strings = new String[width][height];
		strings[0][0]="";
		int i=1;
		for(Y y:yHeadsAsList) strings[i++][0]=y.toString();
		
		int j=1; 
		for(X x:xHeadsAsList){
			strings[0][j]=x.toString();
			i=1;
			for(Y y:yHeadsAsList){
				Z z=null;
				Map<Y,Z> yMap;
				if((yMap=map.get(x))!=null){
					z=yMap.get(y);
				}
				strings[i++][j] = z==null?"":z.toString();
			}
			j++;
		}
		
		return writeAsTable(strings);
	}
	
	public static String writeAsTable(String[][] strings){
		int[] columnWidths=new int[strings.length];
		int i=0;
		for(String[] column: strings){
			for(String entry:column){
				columnWidths[i]=max(columnWidths[i],entry.length());
			}
			i++;
		}         
		StringBuilder builder=new StringBuilder();
		Formatter formatter=new Formatter(builder);
		
		//first line
		for(int col=0; col<strings.length; col++){
			formatter.format("%"+columnWidths[col]+"s",strings[col][0]);
			if(col==0){
				builder.append(" | ");
			}else{
				builder.append(" ");
			}
		}
		
		builder.append("\n");
		
		//separation line
		for(int col=0; col<strings.length; col++){
			for(int k=0; k<columnWidths[col]; k++){
				builder.append("-");
			}
			if(col==0){
				builder.append("-+-");
			}else{
				builder.append("-");
			}
		}
		
		builder.append("\n");
		
		//other lines
		for(int row=1; row<strings[0].length; row++){
			for(int col=0; col<strings.length; col++){
				formatter.format("%"+columnWidths[col]+"s",strings[col][row]);
				if(col==0){
					builder.append(" | ");
				}else{
					builder.append(" ");
				}
			}
			builder.append("\n");
		}
		
		
		
		return builder.toString();
	}
	
	public static void main(String..._){
		Table<Integer, Integer, Integer> t=new Table<Integer, Integer, Integer>();
		
		final int P=37;
		for(int x=0; x<P; x++){
			for(int y=0; y<P; y++){
				if(x*y<P){
					//that's easy, don't put anything (...to demonstrate that empty cells are handled correctly)
				}else{
					t.put(x, y,(x*y)%P);
				}
				
			}
		}
		
		System.out.println(t.toMultilineString());
	}
}
 
Zuletzt bearbeitet:

Jimmy

Mitglied
IO.print("",int);

Hier kann man auch Stellen angeben, wo die Ziffer stehen soll.

Das int bedeutet halt an welcher Stelle die Ziffer steht, sodass eine Tabelle sortiert ist und alle Zahlen untereinander stehen.

Also z.B.
...5
..12
.112
...5
..23

Nur anstelle des Punktes halt ein Leerzeichen
 

0x7F800000

Top Contributor
dazu gibt's eben printf, wüsste jetzt nicht, wozu man das in unbekannteren methoden mit derselben funktionalität verpacken sollte. Langeweile evtl... ???:L
 

Ariol

Top Contributor
dazu gibt's eben printf, wüsste jetzt nicht, wozu man das in unbekannteren methoden mit derselben funktionalität verpacken sollte. Langeweile evtl... ???:L

Die hatten mal ihre "Berechtigungen".
Vor Java 1.5 war es relativ kompliziert Werte (v.a. Zahlen) einzulesen, da es noch keine Scanner-Klasse gab.

Für einfache Übungen (z.B.: aus dem 1. Semester) ist/war es darum einfacher für die Studenten, wenn es eine Klasse gab, die einem das alles schon abnimmt (Abfangen unerwünschter Eingaben u.ä.).

Über Sinn und Unsinn kann man sich jetzt streiten....
 

0x7F800000

Top Contributor
Die hatten mal ihre "Berechtigungen".
Vor Java 1.5 war es relativ kompliziert Werte (v.a. Zahlen) einzulesen, da es noch keine Scanner-Klasse gab.
kA, nie benutzt, wozu gibt's BufferedReader? Den gibt's schon ab 1.1
Wozu gibt's gui's?...
Für einfache Übungen (z.B.: aus dem 1. Semester) ist/war es darum einfacher für die Studenten, wenn es eine Klasse gab, die einem das alles schon abnimmt (Abfangen unerwünschter Eingaben u.ä.).
Wenn die sowas wollen, dann sollen die das doch selbst schreiben, freiwillig in der 0. Übung, zum aufwärmen... Ich bin eh der Ansicht, dass man 70% von dem, was man im 1. Semester macht, in die frühkindliche Erziehung (oder zumindest in die 7. Klasse) verschieben könnte. Dass es selbst an der Uni Leute gibt, die mit den eingaben von der tastatur schon überfordert sind, finde ich traurig. Genauso finde ich traurig, dass ich voraussichtlich nicht vor dem 25. Lebensjahr gitarre spielen lerne, obwohl man mancherorts schon mit 4 zur musikalischen Früherziehung kann^^ :autsch: Was will man machen, das Leben verläuft doch immer suboptimal... :bahnhof:
Über Sinn und Unsinn kann man sich jetzt streiten....
So ein Unsinn... Welchen Sinn soll die Streiterei denn haben^^
 

Soul1982

Neues Mitglied
[Java]for (i=startzeile; i <= endzeile; i++)
{
if (i < 10)
{
System.out.print(" ");
}
else
if (i < 100)
{ System.out.print(" ");
}
else
if (i < 1000)
{ System.out.print(" ");
}[/Java]

So kannst du das auch machen x)
 
Zuletzt bearbeitet:
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
A Java Arrays immer um eins "vergrößern" Java Basics - Anfänger-Themen 4
H .java Dateien in Eclipse einbinden und ausführen Java Basics - Anfänger-Themen 1
onlyxlia Schlüsselworte Was meint man mit "einen Typ" in Java erstellen? Java Basics - Anfänger-Themen 2
O Java Kara geschweifte Klammern Java Basics - Anfänger-Themen 2
richis-fragen Mausrad logitech kann links und rechts klick wie in java abragen. Java Basics - Anfänger-Themen 15
XWing Java Klssenproblem Java Basics - Anfänger-Themen 4
R Umgebungsvariable java -cp gibt immer Java-Hilfe... Java Basics - Anfänger-Themen 3
farbenlos Csv Datei in Java einlesen Java Basics - Anfänger-Themen 18
F TableModelListener: java.lang.ArrayIndexOutOfBoundsException: 132 Java Basics - Anfänger-Themen 3
G Java 8 - Support-Ende Java Basics - Anfänger-Themen 7
T Java Weihnachtsbaum + Rahmen Java Basics - Anfänger-Themen 1
N Will mit Java anfangen Java Basics - Anfänger-Themen 13
Ü Java Array - Buchstaben als Zahlen ausgeben Java Basics - Anfänger-Themen 22
M Java Iterator Verständnisfrage Java Basics - Anfänger-Themen 6
M Java Mail Programm Java Basics - Anfänger-Themen 4
Sniper1000 Java 391 für Windows Java Basics - Anfänger-Themen 37
J Java long- in int-Variable umwandeln Java Basics - Anfänger-Themen 6
JaZuDemNo Java im Studium Java Basics - Anfänger-Themen 7
E Java Programm zur anzeige, ob Winter- oder Sommerzeit herrscht Java Basics - Anfänger-Themen 62
I QR code in Java selber generieren Java Basics - Anfänger-Themen 5
V Java-Ausnahmebehandlung: Behandlung geprüfter Ausnahmen Java Basics - Anfänger-Themen 1
krgewb Java Streams Java Basics - Anfänger-Themen 10
A Überwältigt von der komplexen Java Welt Java Basics - Anfänger-Themen 29
O Mehrfachvererbung auf Spezifikations- und Implementierungsebene in Java. Interfaces Java Basics - Anfänger-Themen 19
John_Sace Homogene Realisierung von Generics in Java ? Java Basics - Anfänger-Themen 19
P Meldung aus Java-Klasse in Thread an aufrufende Klasse Java Basics - Anfänger-Themen 1
R mit Java API arbeiten Java Basics - Anfänger-Themen 9
P JDK installieren Probleme bei der Java-Installation Java Basics - Anfänger-Themen 8
S Java: Wie sortiere ich eine ArrayList benutzerdefinierter Objekte nach einem bestimmten Attribut? Java Basics - Anfänger-Themen 2
Timo12345 JNLP File mit Java öffnen Java Basics - Anfänger-Themen 2
S Video Editierung mit Java.._ Java Basics - Anfänger-Themen 2
F Einstelungen in Java - CursorBlinkRate Java Basics - Anfänger-Themen 10
A PHP $_POST["name"] in Java Java Basics - Anfänger-Themen 3
vivansai21 Is there a oneliner to create a SortedSet filled with one or multiple elements in Java? Java Basics - Anfänger-Themen 9
Athro-Hiro Weißes Bild in Java erstellen Java Basics - Anfänger-Themen 3
Arjunreddy Can someone please tell me how to use a debugger in BlueJ(a Java environment) Java Basics - Anfänger-Themen 1
M Java assoziationen (UML) Java Basics - Anfänger-Themen 8
H Excel-Tabellen mit Java erstellen Java Basics - Anfänger-Themen 4
Simon16 Java ArrayListe von einer Klasse sortieren Java Basics - Anfänger-Themen 2
P Wie kann ich in meinem Java Programm etwas dauerhaft speichern? Java Basics - Anfänger-Themen 5
H Nutzt Eclipse alle CPU-Threads beim Ausführen von Java-Programmen? Java Basics - Anfänger-Themen 4
xXGrowGuruXx Java einstieg, leichte sache 0 verstanden Java Basics - Anfänger-Themen 7
A java.sql.SQLException: Data type mismatch. Java Basics - Anfänger-Themen 1
H Java-Programm zur Ausgabe von Zuständen Java Basics - Anfänger-Themen 80
N Java Spiel Figur auf dem Hintergrundbild bewegen. Java Basics - Anfänger-Themen 11
G Kann Java-Programm nicht als jar aufrufen, auch als EXE nicht Java Basics - Anfänger-Themen 19
N Java Taschenrechner hat Jemand vlt einen Tipp dafür wie ich jetzt die buttons verbinden kann und das Ergebnis auf dem textfield anzeigen lassen kann Java Basics - Anfänger-Themen 13
A Lerngruppe Java Java Basics - Anfänger-Themen 2
G Help me in the Java Program Java Basics - Anfänger-Themen 2
L Java- Vererbung Java Basics - Anfänger-Themen 4
LimDul Suche Java Stream Tutorial Java Basics - Anfänger-Themen 2
_so_far_away_ Ich möchte Java lernen Java Basics - Anfänger-Themen 11
benny1993 Java Programm erstellen für ein Fußball-Turnier Java Basics - Anfänger-Themen 3
M Datentypen While-Schleife eine Java Methode erstellen Java Basics - Anfänger-Themen 3
V Bild per Java Script austauschen Java Basics - Anfänger-Themen 7
MoxMorris this Keyword in Java Java Basics - Anfänger-Themen 14
D Wie kann man in Java nach Arrays auf Duplikate prüfen Java Basics - Anfänger-Themen 12
wolei JAVA Zeitdifferenz feststellen. Java Basics - Anfänger-Themen 4
DiyarcanZeren Rekursion in Java Java Basics - Anfänger-Themen 5
wolei Java generic interface in a generic class Java Basics - Anfänger-Themen 6
monsterherz Ablauf der Erstellung eines Java Programmes Java Basics - Anfänger-Themen 17
monsterherz Circle.java:5: error: <identifier> expected Java Basics - Anfänger-Themen 2
julian-fr Wie kann ich am besten Java lernen? Java Basics - Anfänger-Themen 17
A Java-Properties und -RessourceBundles Java Basics - Anfänger-Themen 5
lrnz22 Java-Basics-Aufgabe Java Basics - Anfänger-Themen 8
R Java kann nicht installiert werden Java Basics - Anfänger-Themen 8
marcelnedza Finde meinen Fehler in einer Methode nicht, Java Karol Java Basics - Anfänger-Themen 15
G In ein java Dokument Ton einbinden Java Basics - Anfänger-Themen 1
C was heisst es wenn java ']' erwartet ? Java Basics - Anfänger-Themen 2
KeinJavaFreak Erste Schritte Programm "Java(TM) Platform SE binary " nicht vorhanden Java Basics - Anfänger-Themen 1
KeinJavaFreak Erste Schritte Java "Executable Jar File" nicht vorhanden Java Basics - Anfänger-Themen 1
melisax Java 2D-Array Tabelle Java Basics - Anfänger-Themen 4
melisax Java Array Wert an bestimmtem Index angeben Java Basics - Anfänger-Themen 14
J Java Testklasse Java Basics - Anfänger-Themen 5
P Java Selenium . Parameterized.Parameters erzeugt eine Fehlermeldung Java Basics - Anfänger-Themen 14
W Java-Code mit Array Java Basics - Anfänger-Themen 14
W Java-Code Java Basics - Anfänger-Themen 2
P BeforeEach AfterEach werden nicht ausgeführt. Java / Selenium Java Basics - Anfänger-Themen 4
A Wie führe ich eine Batch-Datei von meiner Java-Anwendung aus? Java Basics - Anfänger-Themen 18
W Java code- TicTac toe Java Basics - Anfänger-Themen 51
Ostkreuz Java Docs Java Basics - Anfänger-Themen 9
R Java boolean Unterschied " == " und " = " Java Basics - Anfänger-Themen 3
D Java Programm mit Batch-Datei starten Java Basics - Anfänger-Themen 32
W Java-code Java Basics - Anfänger-Themen 8
W Java-code Java Basics - Anfänger-Themen 9
W Java-Code erklären Java Basics - Anfänger-Themen 6
A Java Kurs / Tutorial Java Basics - Anfänger-Themen 6
K Java Lotto Spiel; ich komme nicht weiter Java Basics - Anfänger-Themen 15
R Operatoren Rechenoperation in Java verwenden für Calculator Java Basics - Anfänger-Themen 2
P Java 2n Potenzieren Java Basics - Anfänger-Themen 1
J Java Hamster Java Basics - Anfänger-Themen 4
D Wie sehe ich ein Java-Programm? Java Basics - Anfänger-Themen 27
V Die Funktion des neuen Schlüsselworts in Java Java Basics - Anfänger-Themen 1
W Junit-Test (Java) Java Basics - Anfänger-Themen 4
W Testfälle bei Java ( Junit-Test) Java Basics - Anfänger-Themen 3
laxla123 If-else Java Java Basics - Anfänger-Themen 4
RashAGhul Java Verwaltungstool Erstellen mit kaum Wissen Java Basics - Anfänger-Themen 9
S Substring in java Java Basics - Anfänger-Themen 3
Z Operatoren Java Applikation Java Basics - Anfänger-Themen 8
Tw1Z Erste Schritte Sort in java Java Basics - Anfänger-Themen 2

Ähnliche Java Themen

Neue Themen


Oben