Datentypen Anfängerhilfe

supermxy

Mitglied
Hallo gemeinsam,

ich fange gerade an Java Grundlagen zu lernen, hab mir dafür ein Buch gekauft. Nun bin ich bei dem Kapitel "Operatoren" und "Variablen" angekommen.

Dazu gibt es eine Übungsaufgabe, die ich einfach nicht gebacken bekomm^^

Übungsaufgabe:
Für die folgenden Aufgaben wird vorausgesetzt, dass die folgenden Variablen deklariert wurden:

Java:
int a = 3;
int b = 5;
int c = 6;
double x = 1.5;
double y = 2.3;
int int_ergebnis;
double double_ergebnis;

Aufgabe 1:
Welche Werte liefern die folgenden Ausdrücke rechts des =-Zeichens, und ist die Wertezuweisung möglich?

Java:
int_ergebnis = a * b + c;
int_ergebnis = c + a * b;
int_ergebnis = c - a * 3;
int_ergebnis = c / a;
int_ergebnis = c / b;
int_ergebnis = a + b / c;
double_ergebnis = c / b;
double_ergebnis = c + a / b;
double_ergebnis = x + y * b;
double_ergebnis = (x + y) * b;
double_ergebnis = y - x * b;

Ich habe da eingegeben:

Java:
// Übungsaufgaben 2.5 - Kapitel 2 //

public class Uebungsaufgabe1 
{
    public static void main(String args[])
	{
        int a = 3;
        int b = 5;
        int c = 6;
        double x = 1.5;
	    double y = 2.3;
	    int int_ergebnis;
	    double double_ergebnis;
		
		
		int ergebnis = a*b+c;
		System.out.println("a*(b+c)=" + ergebnis);
		int ergebnis = c+a*b;
		System.out.print("(c+a)*b=" + ergebnis);
		int ergebnis = c-a*3;
		System.out.print("(c-a)*3=" + ergebnis);
		int ergebnis = c/a;
		System.out.print("c/a=" + ergebnis);
		int ergebnis = c/b;
		System.out.print("c/b=" + ergebnis);
		int ergebnis = a+b/c;
		System.out.print("a+b/c=" + ergebnis);
		double ergebnis = c/b;
		System.out.println("c/b=" + ergebnis);
		double ergebnis = c+a/b;
		System.out.print("c+a/b=" + ergebnis);
		double ergebnis = x+y*b;
		System.out.print("x+y*b=" + ergebnis);
		double ergebnis = (x+y)*b;
		System.out.print("(x+y)*b=" + ergebnis);
		double ergebnis = y-x*b;
		System.out.print("y-x*b=" + ergebnis);
    }
}

Was dabei rauskommt, könnt ihr am Anhang sehen. Ich weiß für euch ist das alles ganz simple aufgaben und easy... aber ich hab keine Erfahrungen bisher und würde gerne wissen was da falsch ist. Habt geduld mit mir :) :) :toll:
 

Anhänge

  • Unbenannt.jpg
    Unbenannt.jpg
    93,3 KB · Aufrufe: 29
Zuletzt bearbeitet:

FetterOtter

Bekanntes Mitglied
Hallo supermxy,

ab Zeile 18 darfst du die Variable "Ergebnis" nicht neu definieren. Deswegen die "Duplicate"-Fehlermeldung.
Java:
ergebnis = c+a*b;
statt
Java:
 int ergebnis = c+a*b;
Im folgenden Code natürlich auch...

Ach so, und ab Zeile 28 willst du, dass die Variable "ergebnis" plötzlich ein double ist. Das geht so natürlich nicht. Gib ihr einen neuen Namen.
 
Zuletzt bearbeitet:

VfL_Freak

Top Contributor
Moin,

wobei Du natürlich auf die Datentypen achten musst (int und double !!)

Du hast doch zuvor zwei Variabeln deklariert
Java:
int int_ergebnis;
double double_ergebnis;
die kannst Du natürlich für Deine Ergebnisse nutzen .... wobei Du dann natürlich auch gleich folgendes machen kannst:
Java:
System.out.println( "a*(b+c)=" + (a*b)+c ); // besser einmal zuviel als zuwenig klammern !!!

Gruß
Klaus
 
Zuletzt bearbeitet:

supermxy

Mitglied
habe jetzt folgendes geschrieben:

Java:
// Übungsaufgaben 2.5 - Kapitel 2 //

public class Uebungsaufgabe1 
{
    public static void main(String args[])
	{
        int a = 3;
        int b = 5;
        int c = 6;
        double x = 1.5;
		double y = 2.3;
		int int_ergebnis;
		double double_ergebnis;		
		
		int ergebnis = a*b+c;
		System.out.print("a*(b+c)=");
		System.out.println(ergebnis);
		ergebnis = c+a*b;
		System.out.print("(c+a)*b=");
		System.out.print(ergebnis);
		ergebnis = c-a*3;
		System.out.print("(c-a)*3=");
		System.out.println(ergebnis);
		ergebnis = c/a;
		System.out.print("c/a=");
		System.out.println(ergebnis);
		ergebnis = c/b;
		System.out.print("c/b=");
		System.out.println(ergebnis);
		ergebnis = a+b/c;
		System.out.print("a+b/c=");
		System.out.println(ergebnis);
		ergebnis = c/b;
		System.out.print("c/b=");
		System.out.println(ergebnis);
		ergebnis = c+a/b;
		System.out.print("c+a/b=");
		System.out.println(ergebnis);
		ergebnis = x+y*b;
		System.out.print("x+y*b=");
		System.out.println(ergebnis);
		ergebnis = (x+y)*b;
		System.out.print("(x+y)*b");
		System.out.println(ergebnis);
		ergebnis = (y-x)*b;
		System.out.print("(y-x)*b=");
		System.out.println(ergebnis);
    }
}

jetzt kommen keine 10 errors mehr, aber immer noch 3 errors.
Weiterhin hab ich das Problem, dass er nur das ergebnis vom 1. Code anzeigt wenn ich "java Uebungsaufgabe1" eingebe. Siehe Anhang.
 

Anhänge

  • Unbenannt.jpg
    Unbenannt.jpg
    47,5 KB · Aufrufe: 22

VfL_Freak

Top Contributor
Moin,

wie schon geschrieben:

Du musst auf den Werte-/Datentyp deiner Ergbenisse achten!

Beim Dividieren erhäst eine Zahl mit Nachkomma-Stellen, versuchst aber, sie auf eine integer-Varable zu schreiben!! Das erzeigt die genannten Meldungen .....

Gruß
Klaus

[EDIT]
habe es mal auf die Schnelle etwas überarbeitet !!
public class Uebungsaufgabe1
{
public static void main(String args[])
{
int a = 3;
int b = 5;
int c = 6;
double x = 1.5;
double y = 2.3;
int int_ergebnis; // Du hast diese beiden Variablen nie genutzt
double double_ergebnis; // Du hast diese beiden Variablen nie genutzt

int_ergebnis = a*b+c;
System.out.println("a*(b+c)=" + int_ergebnis);

int_ergebnis = c+a*b;
System.out.println("(c+a)*b=" + int_ergebnis);

int_ergebnis = c-a*3;
System.out.println("(c-a)*3=" + int_ergebnis);

double_ergebnis = c/a;
System.out.println("c/a=" + double_ergebnis);

double_ergebnis = c/b;
System.out.println("c/b=" + double_ergebnis);

double_ergebnis = a+b/c; // hier wird zuerst dividiert !!
System.out.println("a+b/c=" + double_ergebnis);

double_ergebnis = c/b;
System.out.println("c/b=" + double_ergebnis);

double_ergebnis = c+a/b; // hier wird zuerst dividiert !!
System.out.println("c+a/b=" + double_ergebnis);

int_ergebnis = x+y*b; // hier wird zuerst multipliziert !!
System.out.println ("x+y*b=" + int_ergebnis);

int_ergebnis = (x+y)*b;
System.out.println("(x+y)*b" + int_ergebnis);

int_ergebnis = (y-x)*b;
System.out.println("(y-x)*b=" + int_ergebnis);
}
}
[/EDIT]
 
Zuletzt bearbeitet:

kaoZ

Top Contributor
Warum eigentlich nicht :

Java:
public class Übung
{
 
  public static void main (String[]args)
  {
    int a = 5, b = 4, c = 4, intErg = 0;    // int Variablen mit Wertzuweisung(Initialisierung)
    double x = 3, y = 10, doubleErg = 0;    // double Variablen mit Wertzuweisung(Initialisierung)
 
 
    intErg = a + b + c;
    System.out.println(intErg);
 
    doubleErg = x * y - 2;
    System.out.println(doubleErg);
    
    /* ab dieser Stelle könntest du auch einfach deine int variablen mit in die Rechnung der double
     * variablen einbinden , allerdings musst du bedenken das es umgekehrt NICHT geht , ergo kannst
     * du keine double ( Gleitpunktzahlen ) in einer int Variable Speichern. */  

    doubleErg = a+b+c+x*y / 4;
    System.out.println(doubleErg);
 
  }
}
//Ausgabe
13
28.0
20.5

usw usw.

int = Ganzzahlen / 12 , 10 , 5 usw.
double = Gleitpunktzahlen / 13.5 , 25.7 , 1.9 uws.

du musste einfach aufpassen das du nicht ausversehen versuchst z.B ein Ergebnis aus einer Division ( mit einer Gleitpunktzahl als Ergebnis ) in einer int Variable zu Speichern.

Das hier würde z.B nicht funktionieren :
Java:
    intErg = a+b+c+x*y / 4;
    System.out.println(intErg);

// man kann keine Gleitpunktzahlen in einer int Variable Speichern

wenn du eine Entwicklungsumgebung wie z.B Eclipse verwendest , markiert dir das Syntax Highlighting diesen Fehler auch gleich, wenn du natürlich ganz am Anfang stehst und versuchst mit Notepad deinen Code zu Schreiben erkennt man solche fehler wesentlich schlechter, dafür passiert dir , wenn du Java erst einmal beherrschst der Fehler mit Sicherheit nicht mehr so häufig.
 
Zuletzt bearbeitet:
Ähnliche Java Themen

Ähnliche Java Themen


Oben