Operatoren Multiplikation nur mit Addition, Subtraktion und Vergleich

Hallo liebe Community,

ich bin ganz neu hier und wir haben an der Fachhochschule erst mit JAVA begonnen.
Ich biefinde mich im berufsbegleitendem Studium BWL und wir müssen uns sozusagen alles selbst beibringen.
Erst kurz die Aufgabenstellung:

Imlementieren Sie in Java ein Programm, das nach Eingabe zweier Ganzzahlen deren Produkt ausgibt. Verwenden Sie als elementare Operationen nur Addition, Subtraktion und Vergleich von Ganzzahlen!
Achten Sie darauf, dass sowohl die Eingabe von Nullen als auch negativer Faktoren zu richtigen Ergebnissen führen sollen!

Ein Kumpel hat folgendes Programm aufgestellt, das auch funktioniert.
Ich finde das aber viel zu kompliziert für Anfänger und frage mich, ob man das nicht einfacher machen kann?

import java.io.*;
class multiplikation
{
public static void main (String[] args) throws IOException
{
BufferedReader stdin = new BufferedReader (new InputStreamReader(System.in));
String input;
int faktor1, faktor2, produkt, i;
System.out.println("Geben Sie zwei ganze Zahlen ein!");
input = stdin.readLine();
faktor1 = Integer.parseInt( input );
input = stdin.readLine();
faktor2 = Integer.parseInt( input );

i = 0
produkt = 0

if (faktor1 > 0);
{
if (faktor2 > 0);
{
do
{
produkt = produkt + faktor1;
i++;
}
while (i < faktor2);
}
if (Faktor 2 < 0)
{
do
{
produkt = produkt - faktor1;
i--;
}
while (i > faktor2);
}
}
//------------------------------------------------------------------------------------

if (faktor1 < 0)
{
if (faktor2 < 0)
{
do
{
produkt = produkt - faktor1;
i--;
}
while (i > faktor2);
}
if (faktor2 > 0)
{
do
{
produkt = produkt + faktor 1;
i++;
}
while (i < faktor2);
}
}
System.out.println("Produkt = " +produkt);
}
}
Ich wäre euch wirklich dankbar!
 
Zuletzt bearbeitet:
Java:
import java.io.*;
class multiplikation 
{
	public static void main (String[] args) throws IOException
	{
		BufferedReader stdin = new BufferedReader (new InputStreamReader(System.in));
		String input;
		int faktor1, faktor2, produkt, i;
		System.out.println("Geben Sie zwei ganze Zahlen ein!");
		input = stdin.readLine();
		faktor1 = Integer.parseInt( input );
		input = stdin.readLine();
		faktor2 = Integer.parseInt( input );

		i = 0
		produkt = 0

		if (faktor1 > 0);
		{ 
			if (faktor2 > 0);
			{
				do
				{
					produkt = produkt + faktor1;
					i++;
				}
				while (i < faktor2);
			}
			if (Faktor 2 < 0)
			{	
				do
				{
					produkt = produkt - faktor1;
					i--;
				}
				while (i > faktor2);
			}
		}
//------------------------------------------------------------------------------------

		if (faktor1 < 0)
		{		
			if (faktor2 < 0)
			{
				do
				{
					produkt = produkt - faktor1;
					i--;
				}
				while (i > faktor2);
			}
			if (faktor2 > 0)
			{
				do
				{
					produkt = produkt + faktor 1;
					i++;
				}
				while (i < faktor2);
			}
		}
		System.out.println("Produkt = " +produkt);
	}
}
 
Zuletzt bearbeitet:

Natac

Bekanntes Mitglied
Bitte formatiere den Code. So wie er jetzt dasteht bin ich (und wahrscheinlich einige andere User auch) einfach zu faul, ihn mir richtig zu formatieren, damit ich ihn überblicke und dir helfen kann.

Daher: Bitte formatieren, dann ist man eher bereit, dir zu helfen. ;)
 

HarleyDavidson

Bekanntes Mitglied
Eclipse:
Code:
SHIFT + STRG + F

Netbeans:
Code:
SHIFT + ALT + F

Ansonsten: :p
Code:
LEERTASTE oder TAB
 
Ist das nun so in Ordnung?

Sorry aber ich bin auf dem Gebiet noch nicht wirklich sicher.

So kann man das jetzt nicht auch einfacher schreiben?

Mit einer Zählschleife vielleicht?

So blickt doch keiner mehr durch.

Vielen Dank!
 

Natac

Bekanntes Mitglied
Ja, so ist schön :toll:

Also:
1.) Du zählst bis zu einem bestimmten Wert. Das ist fast immer ein sicheres Zeichen für eine for-Schleife (und erst recht, wenn du einen Index i hast). while nimmt man eher wenn man nicht weiß, bis wohin die Schleife geht.

2.) 1-1 = 1+(-1). Bist du sicher, dass du die Prüfungen auf >0 und <0 brauchst, und sich das nicht automatisch ergibt!? Bin gerade zu faul zum nachrechnen, aber denk nochmal drüber nach. Falls nicht: Vorzeichen vorher entsprechend anpassen anstatt ne ganze eigene Schleife dafür zu schreiben.
 

Georgius

Mitglied
Also zum formalen

In Zeile 15+16 fehlt ein ";"
In 29 sollte es faktor2 heißen (klein ohne Abstand)
In 56 factor1

Wenn die Formel stimmen (auch zu blöd zum nachprüfen) ist die Berechnung ident egal ob factor2 positiv oder negativ ist. factor2=0 muß man dann allerdings vorher abfangen.
 
Wie gesagt, das ist ne Lösung von nem Kumpel.

Ich hatte auch einen Ansatz mit der for-Schleife, aber ich weiß nicht, wie ich das formuliere.

Er macht da irgendwie die Schleife nicht.

Das war mein Ansatz:

Java:
mport java.io.*;
class multiplikation 
{
	public static void main (String[] args) throws IOException
	{
		BufferedReader stdin = new BufferedReader (new InputStreamReader(System.in));
		String input;
		int faktor1, faktor2, produkt, i;
		System.out.println("Geben Sie zwei ganze Zahlen ein!");
		input = stdin.readLine();
		faktor1 = Integer.parseInt( input );
		input = stdin.readLine();
		faktor2 = Integer.parseInt( input );

	
		produkt = 0

		for ( int i = faktor1; faktor1 != faktor2; i++ ); // i ist Schleifenzähler 
			Produkt = produkt + faktor2
			System.out.println( produkt );
	}
}
 
Das ist fies...
Ich war/bin die volle Niete in Mathe.

Aber fangen wir mal an:
z.b. 5*3 = 5 + 5 + 5 oder 3 + 3 + 3 + 3 + 3

5 wäre z. B. faktor1 und 3 wäre Faktor2
Ich weiß nur nicht, wie man das aufschreibt, das ist ja das Problem.

Ungefähr so?

produkt = 0

for (int i = faktor1; i != faktor2; i--)
do
produkt = produkt + faktor2

Ich komm einfach nicht klar :(...
 

HarleyDavidson

Bekanntes Mitglied
Java:
int faktor1 = 5;
int faktor2 = 3;
int ergebnis = 0;
for ( int i = 1; i <= faktor2; i++ )
    {
        ergebnis += faktor1;
    }       
System.out.println( ergebnis );

:D
 
Zuletzt bearbeitet:
Ich kann's leider grad nicht ausprobieren, weil ich auf Arbeit bin und hier keinen JEDIT habe.
Aber was bedeutet das Zeichen += ?

Ob das auch für die 0 oder negative Zahlen geht?
 
Ach so, na da kann ich's kaum erwarten, das heut Abend auszuprobieren.

Im Prinzip hatte ich das ja schon, nur dass ich i = Faktor1 immer gesetzt habe.
Hast du das schon ausprobiert ob das mit negative Zahlen und der 0 auch geht.

Ansonsten melde ich mich morgen wieder zurück ob's geklappt hat :)
 

HarleyDavidson

Bekanntes Mitglied
Da stimme ich nvidia vollkommen zu.

Hier mit Ausnahmen (schön kommentiert):

Java:
    public static void main( String[] args )
    {
        int faktor1 = -4;
        int faktor2 = -3;
        int ergebnis = 0;
        
        //Entweder sind beide Faktoren positiv oder einer davon negativ
        //Wenn Faktor 2 positiv ist wie bisher
        if ( faktor2 >= 0 )
        {
            for ( int i = 1; i <= faktor2; i++ )
            {
                ergebnis += faktor1;
            }
        }
        else
        {
            //Faktor 2 ist negativ. Wir nehmen den Betrag und ziehen faktor2-mal faktor1 vom Ergebnis ab.
            for ( int i = Math.abs( faktor2); i >= 1; i-- )
            {
                ergebnis -= faktor1;
            }
        }

        System.out.println( ergebnis );
    }
 
Zuletzt bearbeitet:

X5-599

Top Contributor
Ähm Zeile 9 und 10 bringen so gar nichts. Abgesehen davon glaube ich nicht dass die Math Klasse verwendet werden darf. Aber das müsste Totalanfängerin bestätigen...
 

HarleyDavidson

Bekanntes Mitglied
Huch stimmt ... da war ich wohl zu schnell. Schon verbessert! :D

Naja, falls das auch nicht erlaubt ist, dann eben so:

Java:
    //Faktor 2 ist negativ. Wir nehmen den Betrag und ziehen faktor2-mal faktor1 vom Ergebnis ab.
    for ( int i = -faktor2; i >= 1; i-- )
    {
       ergebnis -= faktor1;
    }
 
Zuletzt bearbeitet:
Ich hab keine Ahnung was Math Klasse bedeutet.
Da wir das nicht kennen, denke ich nicht, dass wir das anwenden dürfen.

Wäre noch jemand so lieb und würde mir das komplette Programm auch für negative Zahlen und auch der 0 hier posten?

Ich hab halt nur Erfahrung und wir müssen uns das alles im Selbststudium beibringen.

Das wäre wirklich nett!

Danke euch!
 

nvidia

Bekanntes Mitglied
[...]
Ich hab halt nur Erfahrung und wir müssen uns das alles im Selbststudium beibringen.[...]

Vll. solltest du dir auch gängige Einsteigerliteratur zum Thema Java organisieren und systematisch
durcharbeiten. Auch wenn das langweilig erscheint ist das immer noch die nützlichste Art sich eine
Programmiersprache zu Gemüte zu führen.

Und hier etwas für dich zum Studieren.

Java:
public class MultiplikationMitAdditionBeispiel {
	public static void main(String[] args) {
		System.out.println(produktMitAddition(3, 4));
	}

	/**
	 * Berechnet das Produkt der Argumente mithilfe von Addition.
	 */
	public static int produktMitAddition(final int a, final int b){
		int summe = 0;
		boolean negiere;
		for(int i = (negiere = a < 0) ? -a: a; --i >= 0; ){
			summe += b;
		}
		return negiere ? -summe : summe;
	}
}
 
Zuletzt bearbeitet:
Vielen Dank, ich werde heute Abend mal versuchen, die zwei Posts zusammenzufügen ;)

Wir haben Literatur bekommen, aber wenn man so null Ahnung hat und einem das keiner erklärt, kommt man da nicht wirklich zurecht.
Ich zumindest nicht....

Da wir das auch nur 2 Semester haben, denke ich, wäre es zu übertrieben, sich das perfekt anzueignen...

Jedenfalls danke für die Hilfe.

Wir haben noch vier Übungen die wir bis Ende Februar bearbeitet haben müssen..
Ich denke da werde ich noch öfter eure Hilfe benötigen.

Vielen Dank!
 

nvidia

Bekanntes Mitglied
Wir haben Literatur bekommen, aber wenn man so null Ahnung hat und einem das keiner erklärt, kommt man da nicht wirklich zurecht.
Ich zumindest nicht....

Da wir das auch nur 2 Semester haben, denke ich, wäre es zu übertrieben, sich das perfekt anzueignen...
[...]

Naja, 2 Semester sind lang. Hört man danach nie wieder etwas von Java, dann klappt es sicher auch
mit Foren und Google um seine Aufgaben zu lösen. Das ist aber eine Frage des eigenen Anspruchs.

Zieht man es vor etwas strukturierter in die Materie einzutauchen und möchte etwas lernen so sind
die durchschnittlichen Anfängerbücher recht schnell durchgegangen. Zumindest die relevanten
Informationen welche als Grundlage für die meisten Übungen dienen hat man schnell gelernt. Das
Ganze dauert ganz sicher weniger als ein Semester. Für die Variante des erhöhten eigenen
Anspruchs, gäbe es z.B. folgende Literatur (eins von den dreien sollte genügen)

Java als erste Programmiersprache: Vom Einsteiger zum Profi, das ist an Trockenheit kaum zu
überbieten behandelt aber so ziemlich jegliches Thema das man für Übungen benötigen würde.

Grundkurs Programmieren in Java, scheint vernünftig zu sein, behandelt die wichtigsten Themen
strukturiert, ein gutes Mittelding zwischen dem Ersten und dem Letzten.

Java von Kopf bis Fuß, das ist zwar schon etwas älter und greift nur auf Java 5 Funktionalität hat
aber einen recht eigenen Stil der versucht Java sehr anschaulich und "humorvoll" zu vermitteln, die
Menge an vermittelten Informationen ist auch recht überschaubar.
 
Zuletzt bearbeitet:
Wir haben folgende Bücher von der Uni gestellt bekommen:

RRZN / Leibnitz Universität Hannover Programmierung (8. Aufl.) 2011
RRZN / Leibnitz Universität Hannover Informationstechnologie (4. Aufl.) 2012

Finde ich total unübersichtlich und ich komme damit nicht wirklich zurecht.....
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
S Multiplikation durch Addition, Subtraktion und Vergleich von Zahlen Java Basics - Anfänger-Themen 14
G Java Bruchrechner Addition, Multiplikation... Java Basics - Anfänger-Themen 12
Z Matrix Klasse mit Mehrdimensionalen Array (Addition, Multiplikation, to String) Java Basics - Anfänger-Themen 57
2 Variablenüberlauf bei Addition, Multiplikation Java Basics - Anfänger-Themen 2
L Switch-Case Multiplikation wird nicht ausgegeben Java Basics - Anfänger-Themen 1
padde479 Array Multiplikation der ersten n Zahlen Java Basics - Anfänger-Themen 7
S Multiplikation von zwei Labels Java Basics - Anfänger-Themen 7
F Matrix Multiplikation Java Basics - Anfänger-Themen 3
O Erstes Programm: Matrizen Multiplikation Java Basics - Anfänger-Themen 10
H Variablen Multiplikation einer inkrementierten Variablen Java Basics - Anfänger-Themen 5
D Methoden Matrix Multiplikation Java Basics - Anfänger-Themen 27
J Funktionsaufrufe Multiplikation von Arrays Java Basics - Anfänger-Themen 3
Joker4632 Klassen BigDecimal Multiplikation liefert nicht erwarteten Wert Java Basics - Anfänger-Themen 6
TomatenBrot447 Adapter für eine optimierte Multiplikation Java Basics - Anfänger-Themen 5
U Ist diese Methode zur Matrix Vektor Multiplikation korrekt ? Java Basics - Anfänger-Themen 5
K Multiplikation zweier Matrizen Java Basics - Anfänger-Themen 23
P Variablen Negatives Ergebnis bei Multiplikation von großen Zahlen Java Basics - Anfänger-Themen 2
R Matrix-Vektor-Multiplikation Java Basics - Anfänger-Themen 13
K Seltsames Ergebnis in Netbeans bei einfacher Multiplikation Java Basics - Anfänger-Themen 5
V Vor jeder Multiplikation den linken Multiplikator abrunden Java Basics - Anfänger-Themen 4
M Matrix Matrix Multiplikation Java Basics - Anfänger-Themen 6
W Multiplikation mit rekursivem Aufruf Java Basics - Anfänger-Themen 17
S Multiplikation von großen Zahlen, ohne BigInt uä Java Basics - Anfänger-Themen 7
F.S.WhiTeY Multiplikation nach der Schulmethode Java Basics - Anfänger-Themen 6
K Matrizen Multiplikation Java Basics - Anfänger-Themen 3
B Multiplikation bei Generics Java Basics - Anfänger-Themen 9
G Multiplikation falsches Ergebnis Java Basics - Anfänger-Themen 5
K double Multiplikation Java Basics - Anfänger-Themen 2
K einfache Multiplikation Java Basics - Anfänger-Themen 6
O Überlauf durch Multiplikation Java Basics - Anfänger-Themen 7
volcanos Addition -> List<Integer> mit Arrays.asList() versus List<Integer>ArrayList<>() Java Basics - Anfänger-Themen 14
K Präzedenregeln in Java sagen, dass +expr und -expr vor + von Addition und - von Addition stehen, warum wird dann z. B. a+b als eine Addition ausgeführ Java Basics - Anfänger-Themen 7
J Double Variable und Addition Java Basics - Anfänger-Themen 2
JavaClap "Bruchrechner" liefert Fehler/keine Ausgabe bei Addition und Subtraktion Java Basics - Anfänger-Themen 0
L Addition von Arrays über die Parameterliste Java Basics - Anfänger-Themen 11
L Addition von 1 bis n, in Arrays umstellen Java Basics - Anfänger-Themen 15
E Addition Array Java Basics - Anfänger-Themen 6
M Array Addition Binärzahlen Java Basics - Anfänger-Themen 9
A Binäre Addition Java Basics - Anfänger-Themen 15
M Addition mit hohen Zahlen - Hilfe Java Basics - Anfänger-Themen 5
N Rekursive Addition mit Scanner Java Basics - Anfänger-Themen 12
X Compiler-Fehler Possible loss of precision bei addition von int und char Java Basics - Anfänger-Themen 5
C Logischer Fehler mit Addition von Arrays Java Basics - Anfänger-Themen 3
I Schriftliche Addition Arrays Java Basics - Anfänger-Themen 2
B Erste Schritte Addition von double in switch-Anweisung Java Basics - Anfänger-Themen 2
X Addition von Strings Java Basics - Anfänger-Themen 12
X Arrays/Addition Java Basics - Anfänger-Themen 18
R addition von 2 Array Objekten Java Basics - Anfänger-Themen 5
K Datentypen Kurzform Addition geht, Langform scheitert am Typen Java Basics - Anfänger-Themen 6
A Binäre Addition Java Basics - Anfänger-Themen 5
K char-int-Addition in System.out.print Java Basics - Anfänger-Themen 3
T Matrizzen addition mit zufallszahlen Java Basics - Anfänger-Themen 10
P Addition von 2 Variablen Java Basics - Anfänger-Themen 3
J Vector Addition Java Basics - Anfänger-Themen 5
E Addition von char und int als Zeichen ausgeben Java Basics - Anfänger-Themen 11
J Addition zweier Zahlen Java Basics - Anfänger-Themen 9
C Falsches Ergebnis float-Addition Java Basics - Anfänger-Themen 10
X Addition rekursiv ohne Schleife Java Basics - Anfänger-Themen 10
S Problem bei Matrix Addition Java Basics - Anfänger-Themen 5
E Addition von Arrays Java Basics - Anfänger-Themen 4
H Mysteriöse Ausgaben nach Addition Java Basics - Anfänger-Themen 5
S Addition zweier 32 Byte langer ByteArrays Java Basics - Anfänger-Themen 5
M Ausgabe einer gerade Zahl nur mit Addition,subtraktion und vergleichsoperatoren! Java Basics - Anfänger-Themen 4
J klasse vektor addition Java Basics - Anfänger-Themen 10
S Anzahl der Überträge bei einer Addition ausgeben Java Basics - Anfänger-Themen 8
S Addition von eigenen Objekten mit "+" Symbol Java Basics - Anfänger-Themen 19
A ungenaue addition Java Basics - Anfänger-Themen 2
A Addition mehrdimmensionaler Arrays - Klausurfrage :-( Java Basics - Anfänger-Themen 3
G Addition von 2 Matrizen Java Basics - Anfänger-Themen 31
J Addition von double values fehlerhaft? Java Basics - Anfänger-Themen 5
H Subtraktion mittels Negierung auf Addition zurückführen Java Basics - Anfänger-Themen 4
W Addition von Arrays bzw. Vektoren Java Basics - Anfänger-Themen 2
V Addition in einem Zweidimensionalenfeld Java Basics - Anfänger-Themen 8
Lion.King Subtraktion nach Eingabe im Terminal Java Basics - Anfänger-Themen 7
S Operatoren Subtraktion von Dualzahlen Vorzeichen/Betrag Java Basics - Anfänger-Themen 3
H Quotient durch Subtraktion bestimmen Java Basics - Anfänger-Themen 12
J Subtraktion von double Werten Java Basics - Anfänger-Themen 3
K Erste Schritte Fehler bei der Subtraktion Java Basics - Anfänger-Themen 4
O Methode - Problem mit Subtraktion in einer while-Schleife Java Basics - Anfänger-Themen 2
M Datentypen Double Maxvalue Subtraktion Java Basics - Anfänger-Themen 7
D Ungenaue Subtraktion Java Basics - Anfänger-Themen 7

Ähnliche Java Themen

Neue Themen


Oben