Willkommen |
|
myGully |
|
Links |
|
Forum |
|
|
|
 |
22.11.12, 16:59
|
#1
|
Anfänger
Registriert seit: Oct 2008
Beiträge: 11
Bedankt: 0
|
Hilfe bei Java-Aufgabe
Hi Leute,
Brauche Hilf bei folgender Aufgabe:
Der Algorithmus
1. Lies den Wert von n als Übergabeparameter beim Programmstart
(args[0]) ein.
2. Setze i auf 3.
3. Solange i < 2n, wiederhole:
a. Erhöhe i um 1.
b. Gib Gib 1.0/(2i+1) aus.
soll auf drei verschiedene Arten implementiert werden: Schreiben Sie jeweils ein Java-
Programm, das diesen Algorithmus als while-, als for- und als do-while-Schleife realisiert.
Sämtliche Programme sollen die gleiche Ausgabe erzeugen!
Leider weiß ich echt nicht wie ich das angehen soll. Und mit den Skripten aus der Uni komm ich auch nicht weiter. Kann mir einer erklären bzw mir die Lösung aufzeigen?
|
|
|
22.11.12, 17:28
|
#2
|
OS X'ler
Registriert seit: Aug 2012
Ort: /dev/random
Beiträge: 40
Bedankt: 8
|
Dein Vorgehen ist doch ziemlich genau erklärt.
Kennst du dich mit den drei verschiedenen Schleifentypen aus?
Also, weißt du, wie du die implementierst und wo die Unterschiede liegen?
|
|
|
22.11.12, 18:18
|
#3
|
Anfänger
Registriert seit: Oct 2008
Beiträge: 11
Bedankt: 0
|
Also wo die unterschiede liegen weiß ich. Was mich an der Aufgabe stört ist der Punkt 3. wie binde ich das in den Programmstart ein?
|
|
|
22.11.12, 18:25
|
#4
|
OS X'ler
Registriert seit: Aug 2012
Ort: /dev/random
Beiträge: 40
Bedankt: 8
|
Also, dein Vorgehen sollte wie folgt sein:
- Du guckst, ob Parameter vorhanden sind. Es gilt also args.length>0
- Du definierst eine Variable n und setzt sie auf den Wert des Parameters. Die Parameter liegen als String-Array vor. Du kannst folgende Methode benutzen: Integer.parseInt()
- Du definierst eine Variable i und setzt sie auf den Wert 3
- Du schreibst deine Schleife. Als Abbruchbedingung nimmst du i<2*n
- In der Schleife gibst du den Text aus.
Klar?
|
|
|
23.11.12, 11:12
|
#5
|
Anfänger
Registriert seit: Oct 2008
Beiträge: 11
Bedankt: 0
|
Erstmal Dankeschön, dass du dir die Zeit genommen hast um mir zu helfen. Deine Aufzählung hilft mir schon sehr, nur krieg ich den Wert des Parameters nicht implementiert. Es erscheint beim Ausführen ein exception-Fehler. Hast du vll noch einen Tipp bzgl der Implementierung? Vll sollte ich noch erwähnen dass ich mit Eclipse arbeite.
|
|
|
23.11.12, 13:00
|
#6
|
Hinter dir!
Registriert seit: Apr 2010
Beiträge: 1.125
Bedankt: 487
|
Du solltest schon sagen, welche Exception auftritt.
Ein entsprechender Codeausschnitt wäre dazu auch nicht verkehrt.
|
|
|
23.11.12, 13:01
|
#7
|
Banned
Registriert seit: Mar 2012
Beiträge: 337
Bedankt: 93
|
Zeig uns mal bitte Deinen Code.
|
|
|
23.11.12, 13:37
|
#8
|
Anfänger
Registriert seit: Oct 2008
Beiträge: 11
Bedankt: 0
|
Danke auch nochmal an euch. Also soweit bin ich gekommen. In diesem fall tritt kein exception Fehler auf.
public class Blatt4Aufg4 {
public static void main(String[] args) {
int n = Integer.parseInt("0");
int i=3;
while(i<2*n)
i++;
System.out.println("Ergebnis = " + 1/(2*i+1));
}
}
|
|
|
23.11.12, 14:17
|
#9
|
Banned
Registriert seit: Mar 2012
Beiträge: 337
Bedankt: 93
|
Benutze eine IDE (Netbeans, Eclipse z.B.).
Wie Dzu jetzt vorzugehen hast hat d03jo4n ja erläutert...
|
|
|
23.11.12, 15:02
|
#10
|
Anfänger
Registriert seit: Oct 2008
Beiträge: 11
Bedankt: 0
|
Ich arbeite ja mit eclipse. Mein Problem ist der Übergabeparameter. Diese haben wir in den Vorlesungen nicht behandelt. Ich kriegs partout nicht hin. Vll muss ich einfach die nächste Vorlesung abwarten. Für jeden weiteren Tipp bin ich jedoch dankbar, auch möchte ich drauf hinweisen das ich nie eine fertige Lösung haben wollte.
|
|
|
23.11.12, 15:32
|
#11
|
Banned
Registriert seit: Mar 2012
Beiträge: 337
Bedankt: 93
|
"main(String[] args)"
"args" steht für "Arguments".
Dies sind die beim Aufruf übergebenen Parameter.
In Eclipse musst Du den Aufruf Deiner Main-Klasse entsprechend konfigurieren, da sonst natürlich keine Parameter übergeben werden.
|
|
|
23.11.12, 17:12
|
#12
|
OS X'ler
Registriert seit: Aug 2012
Ort: /dev/random
Beiträge: 40
Bedankt: 8
|
Hey king2rul,
du hast - wie ProgMaster andeutete - einen kleinen Fehler gemacht.
Integer.parseInt() erwartet einen String und gibt die darin gespeicherte Zahl zurück.
Dabei kann eine NumberFormatException auftreten, die du abfangen musst.
Deine Zahl steht im Array args (vgl. ProgMasters Post).
Vorgehensweise:
1. Prüfen, ob Parameter vorhanden
2. Konvertieren
Sieht konkret so aus:
Code:
// …
if( args.length < 1 )
{
System.out.println("Please submit a number");
return;
}
// == Wenn du hier ankommst, gibt es Parameter == //
int n = 0;
try
{
n = Integer.parseInt( args[0] );
}
catch( NumberFormatException ex )
{
System.out.println("Given argument is not a number: "+args[0]);
return;
}
// Hier geht's weiter mit deiner Schleife
// …
(Habe den Code jetzt nicht getestet, sollte aber funktionieren)
By the way, pack' deinen Code bitte in Code-Blöcke (#-Symbol in der erweiterten Ansicht), um uns das Lesen zu erleichtern
|
|
|
29.11.12, 14:02
|
#13
|
Anfänger
Registriert seit: Oct 2008
Beiträge: 11
Bedankt: 0
|
Hey d03jo4n,
vielen Dank für deine Hilfe und sry für die späte Antwort, jedoch hat mein Netbook letzte Woche den Geist aufgebeben -.- Jedenfalls hab ich deinen Rat befolgt und es scheint nun alles zu funktionieren  Echt cool von dir das du mir geholfen hast 
Hier "mein" Code
Code:
public class Blatt4Aufg4 {
public static void main(String[] args) {
if( args.length < 1 )
{
System.out.println("Please submit a number");
return;
}
int n;
try
{
n = Integer.parseInt( args[0] );
}
catch( NumberFormatException ex )
{
System.out.println("Given argument is not a number: "+args[0]);
return;
}
double i = 3;
while(i<2*n)
{
i++;
System.out.println("Ergebnis = " + 1/(2*i+1) );
}
}
}
|
|
|
Forumregeln
|
Du kannst keine neue Themen eröffnen
Du kannst keine Antworten verfassen
Du kannst keine Anhänge posten
Du kannst nicht deine Beiträge editieren
HTML-Code ist Aus.
|
|
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:07 Uhr.
().
|