myGully.com Boerse.SH - BOERSE.AM - BOERSE.IO - BOERSE.IM Boerse.BZ .TO Nachfolger
Zurück   myGully.com > Computer & Technik > Programmierung
Seite neu laden

Hilfe bei Java-Aufgabe

Willkommen

myGully

Links

Forum

 
Antwort
Themen-Optionen Ansicht
Ungelesen 22.11.12, 16:59   #1
king2rul
Anfänger
 
Registriert seit: Oct 2008
Beiträge: 11
Bedankt: 0
king2rul ist noch neu hier! | 0 Respekt Punkte
Standard 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?
king2rul ist offline   Mit Zitat antworten
Ungelesen 22.11.12, 17:28   #2
d03jo4n
OS X'ler
 
Benutzerbild von d03jo4n
 
Registriert seit: Aug 2012
Ort: /dev/random
Beiträge: 40
Bedankt: 8
d03jo4n ist noch neu hier! | 0 Respekt Punkte
Standard

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?
d03jo4n ist offline   Mit Zitat antworten
Ungelesen 22.11.12, 18:18   #3
king2rul
Anfänger
 
Registriert seit: Oct 2008
Beiträge: 11
Bedankt: 0
king2rul ist noch neu hier! | 0 Respekt Punkte
Standard

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?
king2rul ist offline   Mit Zitat antworten
Ungelesen 22.11.12, 18:25   #4
d03jo4n
OS X'ler
 
Benutzerbild von d03jo4n
 
Registriert seit: Aug 2012
Ort: /dev/random
Beiträge: 40
Bedankt: 8
d03jo4n ist noch neu hier! | 0 Respekt Punkte
Standard

Also, dein Vorgehen sollte wie folgt sein:
  1. Du guckst, ob Parameter vorhanden sind. Es gilt also args.length>0
  2. 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()
  3. Du definierst eine Variable i und setzt sie auf den Wert 3
  4. Du schreibst deine Schleife. Als Abbruchbedingung nimmst du i<2*n
  5. In der Schleife gibst du den Text aus.

Klar?
d03jo4n ist offline   Mit Zitat antworten
Ungelesen 23.11.12, 11:12   #5
king2rul
Anfänger
 
Registriert seit: Oct 2008
Beiträge: 11
Bedankt: 0
king2rul ist noch neu hier! | 0 Respekt Punkte
Standard

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.
king2rul ist offline   Mit Zitat antworten
Ungelesen 23.11.12, 13:00   #6
Your_Conscience
Hinter dir!
 
Registriert seit: Apr 2010
Beiträge: 1.125
Bedankt: 487
Your_Conscience ist noch neu hier! | 0 Respekt Punkte
Standard

Du solltest schon sagen, welche Exception auftritt.
Ein entsprechender Codeausschnitt wäre dazu auch nicht verkehrt.
Your_Conscience ist offline   Mit Zitat antworten
Ungelesen 23.11.12, 13:01   #7
ProgMaster
Banned
 
Registriert seit: Mar 2012
Beiträge: 337
Bedankt: 93
ProgMaster ist noch neu hier! | 0 Respekt Punkte
Standard

Zeig uns mal bitte Deinen Code.
ProgMaster ist offline   Mit Zitat antworten
Ungelesen 23.11.12, 13:37   #8
king2rul
Anfänger
 
Registriert seit: Oct 2008
Beiträge: 11
Bedankt: 0
king2rul ist noch neu hier! | 0 Respekt Punkte
Standard

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));

}

}
king2rul ist offline   Mit Zitat antworten
Ungelesen 23.11.12, 14:17   #9
ProgMaster
Banned
 
Registriert seit: Mar 2012
Beiträge: 337
Bedankt: 93
ProgMaster ist noch neu hier! | 0 Respekt Punkte
Standard

Benutze eine IDE (Netbeans, Eclipse z.B.).

Wie Dzu jetzt vorzugehen hast hat d03jo4n ja erläutert...
ProgMaster ist offline   Mit Zitat antworten
Ungelesen 23.11.12, 15:02   #10
king2rul
Anfänger
 
Registriert seit: Oct 2008
Beiträge: 11
Bedankt: 0
king2rul ist noch neu hier! | 0 Respekt Punkte
Standard

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.
king2rul ist offline   Mit Zitat antworten
Ungelesen 23.11.12, 15:32   #11
ProgMaster
Banned
 
Registriert seit: Mar 2012
Beiträge: 337
Bedankt: 93
ProgMaster ist noch neu hier! | 0 Respekt Punkte
Standard

"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.
ProgMaster ist offline   Mit Zitat antworten
Ungelesen 23.11.12, 17:12   #12
d03jo4n
OS X'ler
 
Benutzerbild von d03jo4n
 
Registriert seit: Aug 2012
Ort: /dev/random
Beiträge: 40
Bedankt: 8
d03jo4n ist noch neu hier! | 0 Respekt Punkte
Standard

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
d03jo4n ist offline   Mit Zitat antworten
Ungelesen 29.11.12, 14:02   #13
king2rul
Anfänger
 
Registriert seit: Oct 2008
Beiträge: 11
Bedankt: 0
king2rul ist noch neu hier! | 0 Respekt Punkte
Standard

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) );
	}
	}

}
king2rul ist offline   Mit Zitat antworten
Antwort


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

BB code is An
Smileys sind An.
[IMG] Code ist An.
HTML-Code ist Aus.

Gehe zu


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:21 Uhr.


Sitemap

().