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
2108450

Du scheinst einen AdBlocker zu nutzen. Ich würde mich freuen, wenn du ihn auf dieser Seite deaktivierst und dich davon überzeugst, dass die Werbung hier nicht störend ist.