|
|
rekursive Programmierung |
[DS]-=Pencil=-
Senior Member
Dabei seit: 20.09.2002
Beiträge: 446
Herkunft: Berlin
|
|
rekursive Programmierung |
|
Hy,
weiss jemand wie man eine rekursive Addition in Java schreibt?
Wir müssen bis Freitag zig solcher Programme schreiben und ohne ein rekursives Beispielprogramm schaffe ich das nicht..
Hope You Help
__________________ [DS]-=Pencil=-
---------------------------
Eleminate the Enemy | Staatsfeind
Destroy Facism
www.rtcw-prison.net - www.darksoldiers.de
----------------------------
|
|
17.08.2004 14:41 |
|
|
[DS]-=Pencil=-
Senior Member
Dabei seit: 20.09.2002
Beiträge: 446
Herkunft: Berlin
Themenstarter
|
|
Die Fakultät meine ich nicht.
Sonder direkt eben rekursive Addition..
2+3 rekursiv gerechnet
Hope You Help
__________________ [DS]-=Pencil=-
---------------------------
Eleminate the Enemy | Staatsfeind
Destroy Facism
www.rtcw-prison.net - www.darksoldiers.de
----------------------------
|
|
17.08.2004 14:58 |
|
|
[DS]-=Pencil=-
Senior Member
Dabei seit: 20.09.2002
Beiträge: 446
Herkunft: Berlin
Themenstarter
|
|
@Duke dein Code ist iterativ
Also hier wäre eine Lösung (zumindest erstmal für die Subtraktion) die ich gerade versuche zu basteln, aber er gibt immer nur 6 aus
..
code: |
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
|
class minus
{
public static int minus(int m,int n)
{
if (n > 0) return m;
else return minus(m-1,n-1);
}
public static void main ( String[] args )
{
System.out.println(minus(6,2));
}
}
|
|
Hope you Help
__________________ [DS]-=Pencil=-
---------------------------
Eleminate the Enemy | Staatsfeind
Destroy Facism
www.rtcw-prison.net - www.darksoldiers.de
----------------------------
|
|
17.08.2004 16:45 |
|
|
LX
El Comandante en Jefe
Dabei seit: 25.11.2001
Beiträge: 5.372
Herkunft: Berliner Bronx
|
|
Kunststück, 2 ist ja auch größer 0, also gibt er den ersten Parameter (6) zurück.
Syntaktisch verstehe ich's, aber was das ganze soll, raffe ich nach wie vor net
__________________ JS-Games.de - Misled Scripting Skills Gone Mad | Meine Filmkritiken | Urban Photography
Kommt mal in den IRC-Channel: irc.eu.freenode.net | Port 6667 | #blackboard
"Ever tried. Ever failed. No matter.
Try again. Fail again. Fail better."
- Samuel Beckett
|
|
17.08.2004 17:02 |
|
|
[DS]-=Pencil=-
Senior Member
Dabei seit: 20.09.2002
Beiträge: 446
Herkunft: Berlin
Themenstarter
|
|
Ja, danke (ich Depp), es hat (logischerweise) jetzt funktioniert..
Es soll garnichts..
Es ist einfach nur eine Übungsaufgabe
..
Die richtige Lösung lautet wie folgt:
Subtraktion
code: |
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
|
class minus
{
public static int minus(int m,int n)
{
if (n < 1) return m;
else return minus(m-1,n-1);
}
public static void main ( String[] args )
{
System.out.println(minus(6,2));
}
}
|
|
Addition
code: |
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
|
class addition
{
public static int plus(int m,int n)
{
if (n < 1) return m;
else return plus(m+1,n-1);
}
public static void main ( String[] args )
{
System.out.println(plus(6,2));
}
}
|
|
Hope I Helped
..
__________________ [DS]-=Pencil=-
---------------------------
Eleminate the Enemy | Staatsfeind
Destroy Facism
www.rtcw-prison.net - www.darksoldiers.de
----------------------------
|
|
17.08.2004 17:34 |
|
|
[DS]-=Pencil=-
Senior Member
Dabei seit: 20.09.2002
Beiträge: 446
Herkunft: Berlin
Themenstarter
|
|
Da es hier rein passt, gleich ein weiteres Problem:
Ich habe jetzt versucht das GGT (rekursiv) zu erstellen:
code: |
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
|
class ggt
{
public static int plus(int m,int n)
{
if (n == m) return m;
else if (m > n) return ggt(m-n,n);
else (m < n) return ggt(m,n-m);
}
public static void main ( String[] args )
{
System.out.println(ggt(6,2));
}
}
|
|
Dennoch wird ein Fehler beim letzten "else" angesagt (not a statement und ; expected...)
Weiss jemand was das Problem ist?
Hope You Help
__________________ [DS]-=Pencil=-
---------------------------
Eleminate the Enemy | Staatsfeind
Destroy Facism
www.rtcw-prison.net - www.darksoldiers.de
----------------------------
|
|
17.08.2004 19:56 |
|
|
LX
El Comandante en Jefe
Dabei seit: 25.11.2001
Beiträge: 5.372
Herkunft: Berliner Bronx
|
|
code: |
1:
2:
3:
|
if (n == m) return m;
else if (m > n) return ggt(m-n,n);
else (m < n) return ggt(m,n-m); |
|
In der letzten Zeile fehlt ein "if". Allerdings kannst du hier auch einfach die Bedingung weglassen, da der einzig verbliebene Fall ja m<n ist, also nur else return(...).
Außerdem heißt deine Funktion immer noch plus().
__________________ JS-Games.de - Misled Scripting Skills Gone Mad | Meine Filmkritiken | Urban Photography
Kommt mal in den IRC-Channel: irc.eu.freenode.net | Port 6667 | #blackboard
"Ever tried. Ever failed. No matter.
Try again. Fail again. Fail better."
- Samuel Beckett
|
|
17.08.2004 20:04 |
|
|
[DS]-=Pencil=-
Senior Member
Dabei seit: 20.09.2002
Beiträge: 446
Herkunft: Berlin
Themenstarter
|
|
|
|
@LX , ich werde es mal verändern
@Black Star wie meinst du das
Hier gleich noch ein Problem mit dem Quicksort Algorithmuss:
code: |
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
|
class Quicksort
{ static int[] feld;
static final int maxIndex=99999;
static void feldFuellen()
{ for (int i=0; i<=maxIndex; i++)
{ feld[i] = (int)Math.round(Math.random()*900.0 + 100); }
} // feldFuellen
static void feldAusgabe()
{ System.out.println("Das Feld enthaelt die folgenden Elemente: ");
for (int i=0; i<=maxIndex; i++)
{ System.out.println(feld[i]);
System.out.println(" ");
}
System.out.println();
} // feldAusgabe
static void vertausche (int a, int b)
{ int ablage = feld[a];
feld[a] = feld[b];
feld[b] = ablage;
} // vertausche
static void quicksort(int links, int rechts)
{ int nachlinks = rechts; // Laufindex, der vom rechten Ende nach links laeuft
int nachrechts = links; // Laufindex, der vom linken Ende nach rechts laeuft
if (nachrechts < nachlinks)
{ // Pivotelement bestimmen
int pivot = feld[(nachrechts + nachlinks)/2];
while (nachrechts <= nachlinks)
{ // Links erstes Element suchen, das
// groesser oder gleich dem Pivotelement ist
while ((nachrechts < rechts) && (feld[nachrechts] < pivot))
nachrechts++;
// Rechts erstes Element suchen, das
// kleiner oder gleich dem Pivotelement ist
while ((nachlinks > links) && (feld[nachlinks] > pivot))
nachlinks--;
// Wenn nicht aneinander vorbei gelaufen, Inhalte vertauschen
if (nachrechts <= nachlinks)
{ vertausche(nachrechts, nachlinks);
nachrechts++;
nachlinks--;
}
} // end while
// Linken Teil sortieren
if (nachlinks > links) quicksort (links, nachlinks);
// Rechten Teil sortieren
if (nachrechts < rechts) quicksort (nachrechts, rechts);
} // end if
} // quicksort
public static void main(String[] arg)
{ feld = new int[maxIndex+1];
System.out.println("Quicksort-Demo: ");
feldFuellen();
// feldAusgabe();
Stoppuhr t = new Stoppuhr();
t.starte();
quicksort(0, maxIndex);
t.stoppe();
// feldAusgabe();
System.out.println("Zeit: " + t.lies() + " ms.");
} // main
} // class quicksort
|
|
Bei Stoppuhr t = new Stoppuhr(); wurde mir ein Fehler angezeigt..
Edit:
Ok das GGT funktioniert jetzt..
Danke für die Hilfe:
Hier der Quellcode
Größter gemeinsamer Teiler:
code: |
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
|
class ggt
{
public static int ggt(int m,int n)
{
if (n == m) return m;
else if (m > n) return ggt(m-n,n);
else return ggt(m,n-m);
}
public static void main ( String[] args )
{
System.out.println(ggt(6,2));
}
}
|
|
Hope you Help
__________________ [DS]-=Pencil=-
---------------------------
Eleminate the Enemy | Staatsfeind
Destroy Facism
www.rtcw-prison.net - www.darksoldiers.de
----------------------------
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von [DS]-=Pencil=-: 17.08.2004 20:17.
|
|
17.08.2004 20:16 |
|
|
MyK
Headbanger
Dabei seit: 24.01.2002
Beiträge: 84
|
|
Zitat: |
Original von [DS]-=Pencil=-
Bei Stoppuhr t = new Stoppuhr(); wurde mir ein Fehler angezeigt..
|
Ein Compiler oder ein Run Time Fehler? Fehlermeldung?
__________________ Success consists of simply getting up one more time than you fall down.
|
|
18.08.2004 19:49 |
|
|
[DS]-=Pencil=-
Senior Member
Dabei seit: 20.09.2002
Beiträge: 446
Herkunft: Berlin
Themenstarter
|
|
Ein Kompilier-Fehler..
Hope You Help
__________________ [DS]-=Pencil=-
---------------------------
Eleminate the Enemy | Staatsfeind
Destroy Facism
www.rtcw-prison.net - www.darksoldiers.de
----------------------------
|
|
19.08.2004 20:31 |
|
|
[DS]-=Pencil=-
Senior Member
Dabei seit: 20.09.2002
Beiträge: 446
Herkunft: Berlin
Themenstarter
|
|
So lautet die Fehlermeldung:
code: |
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
|
Quicksort.java:65: cannot resolve symbol
symbol: class Stoppuhr
location: class Quicksort
Stoppuhr t = new Stoppuhr();
^
Quicksort.java:65: cannot resolve symbol
symbol: class Stoppuhr
location: class Quicksort
Stoppuhr t = new Stoppuhr();
2 errors
|
|
Hope You Help
__________________ [DS]-=Pencil=-
---------------------------
Eleminate the Enemy | Staatsfeind
Destroy Facism
www.rtcw-prison.net - www.darksoldiers.de
----------------------------
|
|
21.08.2004 09:17 |
|
|
MyK
Headbanger
Dabei seit: 24.01.2002
Beiträge: 84
|
|
Gibt's denn überhaupt eine Klasse namens Stoppuhr? Ist sie exportiert/public?
__________________ Success consists of simply getting up one more time than you fall down.
|
|
21.08.2004 14:21 |
|
|
[DS]-=Pencil=-
Senior Member
Dabei seit: 20.09.2002
Beiträge: 446
Herkunft: Berlin
Themenstarter
|
|
nein, aber habe ich mit New Stopuhr nicht eine erstellt?
Gibt es ansonsten eine andere Variante wie ich das umgehen kann?
Hope You Help
__________________ [DS]-=Pencil=-
---------------------------
Eleminate the Enemy | Staatsfeind
Destroy Facism
www.rtcw-prison.net - www.darksoldiers.de
----------------------------
|
|
26.08.2004 10:24 |
|
|
Deef
...
Dabei seit: 24.08.2002
Beiträge: 431
|
|
Mit "new" bildet man Instanzen von Klassen ...
Klassen werden mit "class" definiert
__________________ Was sagen uns Signaturen?! 1.Ich kann Latein 2.Ich bin umheimlich tiefgründig 3.Ich kann googlen 4.Ich lese die Lyrics der Lieder die ich höre 5.Ich schreibe und denke mir Scheisse aus die keiner lesen will...
|
|
26.08.2004 11:55 |
|
|
|
|
|
|