Java :: Aufgabe #11 :: Lösung #2

8 Lösungen Lösungen öffentlich
#11

Multiplikation ohne zu multiplizieren

Anfänger - Java von Gustl - 11.11.2012 um 17:24 Uhr
Erstellen Sie ein Konsolenprogramm welches dem Benutzer auffordert 2 Zahlen einzugeben, diese sollen dann multipliziert werden, jedoch ist nur die Grundrechenart Addition erlaubt.

Wenn einer der 2 Zahlen keine Zahl ist, soll eine Fehlermeldung ausgegeben werden und der Benutzer noch einmal aufgefordert werden eine Zahl einzugeben.
#2
vote_ok
von Jurom (1070 Punkte) - 16.11.2012 um 09:32 Uhr
Quellcode ausblenden Java-Code
//©2012 by Julius J. Hoffmann
//written with Eclipse

import java.util.Scanner;			//importiert die Scanner-Klasse

public class Multiplikation {		//"ausführende Klasse"

	public static void multiplizieren() {						//Methode zur Multiplikation
		try {													//Anfang try-catch-Block
		System.out.println("Bitte geben Sie die 1. Zahl ein:");	//Konsolenausgabe
		Scanner s = new Scanner(System.in);						//Anlegen des Scannerobjekts
		float a = s.nextFloat();								//Initialisieren der Var. a
		System.out.println("Bitte geben Sie die 2. Zahl ein:");	//Konsolenausgabe
		float b = s.nextFloat();								//Initialisieren der Var. a
		int h = hilfsMethode(b);								//Aufruf hilfsMethode & Speichern in h
		float lsg = a;											//a übergibt Wert an Hilfsvariable lsg
		b *= h;													//b = b*h (erzeugt ein ganzzahliges b)
		for (; b>1; b--) {										//for-Schleife die bx durchläuft
			lsg += a;											//lsg = lsg + a (Iteration)
		}
		lsg /= h;												//lsg wird durch h geteilt (ganze Zahl wird wd. zu kommazahl)
		System.out.println("Multipliziert: " + lsg);			//Konsolenausgabe Lösung
		} catch (Exception e) {									//Auffangen einer evtl. falschen Eingabe
			System.out.println("Falscher Eingabewert");			//Konsolenausgabe
			multiplizieren();									//Wiederaufruf der Methode
		}	//Ende catch
		
	}	//Ende Methode
	
	public static int hilfsMethode(float number) {		//Hilfsmethode zur Ermittlung der Nachkommastellen
		String zahl = Float.toString(number);			//verwandelt number in einen String
		zahl = zahl.substring(zahl.indexOf(".")+1);		//entfernt die Vorkommastellen & Komma
		int h = 1;										//Initialisieren der Hilfsvariable h mit 1
		int i = zahl.length();							//setzt die Zählervariable i auf die Länge der Nachkommastellen von number
		while (i>0) {									//solange i > 0 ist
			h *= 10;									//h wird mit 10 multipliziert (es werden so viele 0 angehängt, wie nachkommastellen)
			i--;										//i wird um 1 heruntergezählt
		}
		return h;										//gibt h zurück
	}
	
	public static void main(String[] args) {	//"ausführende Methode"
			multiplizieren();					//AUfruf multiplizieren
		}
}

Kommentare:

Für diese Lösung gibt es noch keinen Kommentar

Bitte melden Sie sich an um eine Kommentar zu schreiben.
Kommentar schreiben