Multiplikationstabelle programmieren!

TamaraN

Neues Mitglied
Hallo!!
Ich brauche dringend euere Hilfe!!! Ich muss in Java für nächste Woche eine Multiplikationstabelle programmieren. Die Aufgabe lautet:

Schreiben Sie ein Applet zum Anzeigen einer Multiplikationstabelle, wie sie kleine
Kinder benutzen. Beispielsweise sieht die Tabelle bis 6 folgendermaßen aus:
...1 2 3 4 5 6
1 1 2 3 4 5 6
2 2 4 6 8 10 12
3 3 6 9 12 15 18
4 4 8 12 16 20 24
5 5 10 15 20 25 30
6 6 12 18 24 30 36
Das Programm sollte eine Tabelle beliebiger Größe anzeigen können, die durch eine
Ganzzahl festgelegt wird, wie:
private int size=6;

Leider bin ich komplett überfordert und weiß noch nicht mal wo ich anfangen soll! Ich weiß, dass es etwas mit Schleifen auf sich hat, aber mehr auch nicht! ;( Wenn ich das nicht hinkriege, darf ich die Prüfung nicht schreiben. Ich weiß für viele von Euch mag es eine ziemlich einfache Aufgabe sein, aber ich bin schon regelrecht am verzweifeln! Bitte helft mir ... ;( ;( ;(
 
Zuletzt bearbeitet von einem Moderator:

Firestorm87

Bekanntes Mitglied
Mal son allgemeiner Wurf in die Runde...
Java:
import java.util.Arrays;

public class Multiplikationstabelle {

	private static final int maxNum = 12;
	private static final char SPACE = ' ';

	public static void main(final String[] args) {

		final int maxWert = (int) Math.pow(maxNum, 2);
		final int feldLänge = String.valueOf(maxWert).length();

		for (int i = 1; i <= maxNum; i++) {
			for (int j = 1; j <= maxNum; j++) {
				System.out.print(SPACE); // Leerzeichen zwischen 2 Werten
				System.out.print(getIntAlsString(i * j, feldLänge)); // Liefert den Wert als immer gleich langen String mit führenden Leerzeichen
			}
			System.out.println(); // Zeilenumbruch
		}
	}

	private static String getIntAlsString(final int wert, final int stringLaenge) {
		final String wertAlsString = String.valueOf(wert);
		final char[] pre = new char[stringLaenge - wertAlsString.length()];
		Arrays.fill(pre, SPACE);
		return new String(pre) + wertAlsString;
	}
}
Aber wenn du soetwas nicht hinbekommst, dann willst du in so einem Fach eine Prüfung ablegen?
 

Andi_CH

Top Contributor
ARadauer - wär das nicht etwas für dein Exmatrikulations-Beispiel ???:L

Java:
public class Multiplikationstabelle {

	private static int TABELLEN_GROESSE = 9;
	private static int NR_DIGITS = ((int)Math.floor(Math.log10(TABELLEN_GROESSE*TABELLEN_GROESSE)))+1;
	private static final String format = "%" + (NR_DIGITS) + "d";

	private static void showHeader() {
		for(int i=0; i<NR_DIGITS; i++) {
			System.out.print(" ");
		}
		System.out.print(" ");
		for (int i=1; i<=TABELLEN_GROESSE; i++)
			System.out.print(String.format(format, (i)) + " ");
		System.out.println();
	}

	private static void showLine(int mult) {
		System.out.print(String.format(format, mult) + " ");
		for (int i=1; i<=TABELLEN_GROESSE; i++)
			System.out.print(String.format(format, (i*mult)) + " ");
		System.out.println(" ");
	}

	private static void showTable() {
		showHeader();
		for (int i=1; i<=TABELLEN_GROESSE; i++)
			showLine(i);
	}

	public static void main(String[] args) {
		showTable(); 
	}
}
 

ARadauer

Top Contributor
mhn ja könnte ich einfügen...
bin gerade am überlegen, ob nicht die kurze variante reicht

Java:
public class Multiplikationstabelle
{
    public static void main(String[] args)
    {
        int size = 6;
        System.out.print("  ");
        for(int i = 1; i < size; i++)
            System.out.print(i+" ");
        System.out.println();
        for(int i = 1; i < size; i++){
            System.out.print(i+" ");
            for(int j = 1; j < size; j++){
                System.out.print(i*j+" ");
            }
            System.out.println();
        }
    }
}
wobei deine natürlich viel besser ist und der anfänger gleich sieht wie mans sauber macht...
 

Andi_CH

Top Contributor
Klar reicht die Kurze, aber irgend etwas wollte ich ja schon noch zeigen.
Anzahl Digits bestimmen, formatieren von Strings - nicht viel aber vielleicht doch für den Einen oder Anderen neu ;-)
 

DorLudi

Neues Mitglied
Hallo, ich habe ein ähnliches Problem wobei ich diese Aufgabe mit der Multiplikationstabelle jeweils mit 2 for-Schleifen und dann noch als 2. Aufgabe mit 2 while-Schleifen. Ersteres habe ich so gelöst:
Java:
public class MultiplikationsTabelle

{
		public static void main( String[] args)
  
		{
			
			
		for( int a = 1; a <= 10; a++)
			
		{
						
		for( int b = 1; b <= 10; b++)
			
		{
			
        if( a * b < 10) System.out.print( " ");
        
        if( a * b < 100) System.out.print( " ");
        
        System.out.print( " " + a * b);
        
      }
		
      System.out.println( "");
      
    }
		
  }
		
}


Nun habe ich mich bei den while-Schleifen total verfranzt und komme einfach nicht weiter ... So sieht das ganze bis jetzt aus aber irgendwie ist der totale Wurm drin:
Java:
public class MultiplikationsTabelle2

{	
		public static void main( String[] args) 
            
		{ 
			
		
		int a = 1;
		
	    int b = 1;
	    
	    int bmax = 10;
	    
	    int lmax = 10;
	    
	    
		while(a <= bmax) 
		
		{	
			
	        System.out.print( "\n" + a );
	        
			while(b <= lmax)
			{	
				
		    System.out.print( "\t" + a * b);
				
        	b++;
				
			}
			
			a++;
			
	   	{
	              }
	      System.out.println( "\t");
		 }
	     }
}

Hättet ihr einen Vorschlag bzw. einen Lösungsansatz?

MfG Ludi
 

Neue Themen


Oben