Hallo zusammen
Ich habe vor drei Tagen begonnen mit Java zu arbeiten. Nun steht mir folgende Aufgabe im Weg.
Sie lautet: Schreibe eine Klasse, deren main-Methode für eine beliebig reelle Zahl b die zugehörige Wurzel (Wurzel aus b) auf fünf Nachkommastellen genau bestimmt und zusätzlich angibt, wie viele Rechenschritte dafür gebraucht wurden.
Ich dachte, ich kann diese Wurzel mit einschachteln lösen. Also ungefähr so:
(1^2)<3<(2^2)
Dann jeweils das Quadrat testen: 1,1. 1,2. 1,3 ... 1,9.
Falls eine Zahl grösser als 3, nehme diese Zahl (angenommen es wäre 1.2) und subtrahiere 0.1. Danach teste diese Zahl in 0.01 Schritten bis zu der Zahl die wiederum grösser als 3 ist.
1,11. 1,12. 1,13. ... 1,19.
Falls Zahl grösser als 3, nehme diese Zahl(angenommen es wäre 1.21 und subtrahiere nun 0.01.
Dann weitertesten bis zur Zahl die quadriert grösser als 3 ist. Jetzt in 0.001-Schritten.
1,111. 1,112. 1,113. ... 1,119
usw. bis fünf Nachkommastellen erreicht sind.
Ich habe nun ein ziemlich grosses Problem. Ich kenne bisher nur for/if-Schleifen, habe keine Ahnung wie ich einen Zähler einbauen soll und erst recht nicht wie ich den Befehl ausführen soll: Nimm diese Zahl subtrahiere x und verwende die neue Zahl in der neuen for-Schleife und teste dann in diesen Schritten usw. ohne die Variabeln zu verlieren etc, da ich diese ja immer nur in der For-Schleife behalten kann. So komme ich zum Problem, dass ich in einer for-schleife, 5 andere hätte jeweils mit if-Bedingung.
Ich wusste erst nicht einmal wie ich eine for-schleife unterbrechen kann, die Einführung in Java die ich geniessen darf ist richtig schlecht und die Aufgaben für einen Beginner, finde ich ziemlich übetrieben, wenn man nichtmal weiss, wie man grundlegende Sachen ausführt.
Mein Prog sieht bisher so aus und funktioniert nicht, da es in Endlosschleifen ausartet. Ich habe deshalb die restlichen For-Schleifen mal gelöscht, da es schon hier hapert.
Villeicht ist mein vorgehen auch viel zu kompliziert und ihr hättet mir eine einfachere Lösungsidee.
Ich entschuldige mich der Rechtschreibung. In meiner Verzweiflung blieb keine Zeit dies gründlich zu prüfen!
--- Wieso muss ich dem System.exit() eigentlich einen Wert zuordnen?
Gruss Zitronentee
Ich habe vor drei Tagen begonnen mit Java zu arbeiten. Nun steht mir folgende Aufgabe im Weg.
Sie lautet: Schreibe eine Klasse, deren main-Methode für eine beliebig reelle Zahl b die zugehörige Wurzel (Wurzel aus b) auf fünf Nachkommastellen genau bestimmt und zusätzlich angibt, wie viele Rechenschritte dafür gebraucht wurden.
Ich dachte, ich kann diese Wurzel mit einschachteln lösen. Also ungefähr so:
(1^2)<3<(2^2)
Dann jeweils das Quadrat testen: 1,1. 1,2. 1,3 ... 1,9.
Falls eine Zahl grösser als 3, nehme diese Zahl (angenommen es wäre 1.2) und subtrahiere 0.1. Danach teste diese Zahl in 0.01 Schritten bis zu der Zahl die wiederum grösser als 3 ist.
1,11. 1,12. 1,13. ... 1,19.
Falls Zahl grösser als 3, nehme diese Zahl(angenommen es wäre 1.21 und subtrahiere nun 0.01.
Dann weitertesten bis zur Zahl die quadriert grösser als 3 ist. Jetzt in 0.001-Schritten.
1,111. 1,112. 1,113. ... 1,119
usw. bis fünf Nachkommastellen erreicht sind.
Ich habe nun ein ziemlich grosses Problem. Ich kenne bisher nur for/if-Schleifen, habe keine Ahnung wie ich einen Zähler einbauen soll und erst recht nicht wie ich den Befehl ausführen soll: Nimm diese Zahl subtrahiere x und verwende die neue Zahl in der neuen for-Schleife und teste dann in diesen Schritten usw. ohne die Variabeln zu verlieren etc, da ich diese ja immer nur in der For-Schleife behalten kann. So komme ich zum Problem, dass ich in einer for-schleife, 5 andere hätte jeweils mit if-Bedingung.
Ich wusste erst nicht einmal wie ich eine for-schleife unterbrechen kann, die Einführung in Java die ich geniessen darf ist richtig schlecht und die Aufgaben für einen Beginner, finde ich ziemlich übetrieben, wenn man nichtmal weiss, wie man grundlegende Sachen ausführt.
Mein Prog sieht bisher so aus und funktioniert nicht, da es in Endlosschleifen ausartet. Ich habe deshalb die restlichen For-Schleifen mal gelöscht, da es schon hier hapert.
Java:
public class Wurzelrechner
{
public static void main(String[] args)
{ int a = 3;
for (int i=1; i<=a; i++)
{
if (i*i > a)
{
System.exit(0);
}
for ( i= i-1; i-1<=i; i += 0.1 )
{
if (i*i > a)
{
System.exit(0);
}
}
System.out.print(i);
}
}
}
Ich entschuldige mich der Rechtschreibung. In meiner Verzweiflung blieb keine Zeit dies gründlich zu prüfen!
--- Wieso muss ich dem System.exit() eigentlich einen Wert zuordnen?
Gruss Zitronentee
Zuletzt bearbeitet: