Partner:
Zurück   FIFA 4 LIFE Forum - die Community zur FIFA Serie > Off-Topic Foren > Off-Topic Forum > Hardware & Software Forum

Dies ist eine Diskussion zum Thema Programmieren im Hardware & Software Forum, Teil der Off-Topic Forum Kategorie

: Okay ich glaub ich versteh das "fakultaet" nicht ganz. Ist mir jetzt aber zu dieser Uhrzeit auch egal!...

Antwort
 
LinkBack Themen-Optionen Thema durchsuchen
Alt 26.08.2013, 01:17   #151
Stammspieler
 
Benutzerbild von thorsten212
 
Registriert seit: 27.06.2009
Ort: NRW
Beiträge: 5.393
Standard AW: Programmieren

Okay ich glaub ich versteh das "fakultaet" nicht ganz. Ist mir jetzt aber zu dieser Uhrzeit auch egal!
thorsten212 ist offline   Mit Zitat antworten
Alt 26.08.2013, 10:46   #152
SOLO ASK!
 
Benutzerbild von Lask Fan
 
Registriert seit: 04.09.2009
Ort: Österreich <3
Beiträge: 6.658
Standard AW: Programmieren

Fakultät 5
!5

1*2*3*4*5 = 120 ^^
Lask Fan ist offline   Mit Zitat antworten
Alt 26.08.2013, 11:28   #153
Stammspieler
 
Benutzerbild von thorsten212
 
Registriert seit: 27.06.2009
Ort: NRW
Beiträge: 5.393
Standard AW: Programmieren

Zitat:
Zitat von Lask Fan Beitrag anzeigen
Fakultät 5
!5

1*2*3*4*5 = 120 ^^
Das ist mir bewusst, aber dann versteh ich apollox Beitrag nicht.
thorsten212 ist offline   Mit Zitat antworten
Alt 26.08.2013, 13:20   #154
Super Moderator
 
Benutzerbild von apollox
 
Registriert seit: 10.06.2006
Ort: Berlin
Beiträge: 20.793
apollox eine Nachricht über ICQ schicken
Moderator des Monats Oktober 07 
Moderator des Monats März 08 
Standard AW: Programmieren

Wie ich schon sagte, die Funktion ruft sich immer wieder von neuen auf, somit entsteht eine Art verschachtelter Baum, ähnlich wie bei verschachtelten if-else-Anweisungen. Und wenn er beim untersten Blatt angekommen ist, also dem letzten eigenen Aufruf, wo "x=1" ist, beginnt der Rückweg über die return-Statements und der Erfolg natürlich über jeden einzelne Ebene und geht nicht direkt zur obersten Ebene, denn nach dem Funktionsaufruf im else-Zweig könnte ja noch weiterer Code kommen der ausgeführt werden soll.
Stell dir den else-Zweig als Bsp. wie folgt vor:
Code:
else 
{
    int fakPart = fakultaet (x-1);
    printf("Mir ist langweilig!");
    return fakPart * x;
Das printf soll einfach nur verdeutlichen, das halt zwischen rekursiven-Aufruf der eigenen Funktion und der eigentlichen Rückgabe noch was anderes kommen kann, was ja auf jeder Ebene, also bei jeder rekursiv aufgerufenen Funktion (Ebene) abgearbeitet werden muss, bevor die Funktion zum Ende kommt. Ein anderer Grund warum ein Rücksprung direkt zur obersten Ebene, wo die Rekursion begonnen hat nicht möglich ist, ist der Heap und Stack, also das Speichermanagement.

Das folgende Bild der Fachhochschule Regensburg verdeutlich das von mir beschriebene mit der Aufrufreihnfolge und insbesondere der Rückgaben mit 1*2, 2*3 usw.
Lask Fan gefällt dieser Beitrag.
apollox ist offline   Mit Zitat antworten
Alt 26.08.2013, 13:23   #155
SOLO ASK!
 
Benutzerbild von Lask Fan
 
Registriert seit: 04.09.2009
Ort: Österreich <3
Beiträge: 6.658
Standard AW: Programmieren

Jetzt versteh ichs danke
Es ruft sich zuerst auf bis es ansteht und sobald es das Maximum erreicht hat gibt es die Wert *= zurück
Lask Fan ist offline   Mit Zitat antworten
Alt 26.08.2013, 13:35   #156
Super Moderator
 
Benutzerbild von apollox
 
Registriert seit: 10.06.2006
Ort: Berlin
Beiträge: 20.793
apollox eine Nachricht über ICQ schicken
Moderator des Monats Oktober 07 
Moderator des Monats März 08 
Standard AW: Programmieren

Genau, denn ein Funktionsaufruf bedeutet ja, unabhängig was für eine Funktion, das die aktuelle Funktion pausiert, bis es das Ergebnis der aufgerufenen Funktion erhält und bei einer Rekursion ergibt sich dann halt so eine Art halber Baum bzw. Treppe, welche erst mit jedem Aufruf herunter gegangen wird und mit den Rückgabewerten geht man die Treppe wieder rauf, wie wenn man Kartoffeln ausm Keller holen soll
Denn da sieht der Code ja in etwa so aus, wenn du an die Kellertreppe kommst
Code:
holeKartoffeln{
  if Stufe dann{
    gehe eine Stufe;
    rufe erneut "holeKartoffeln" auf; (also prüfen ob weitere Stufe kommt)
    return
  }
  else{
    return "Kartoffeln erreicht"; (Rückweg wird Stufe für Stufe eingeleitet)
  }
}
So in etwa würde ja vermutlich die Aktion Kartoffeln aus dem Keller holen aussehen. Frag mich nicht warum ich jetzt darauf gekommen bin als Vergleich ausm Altag
apollox ist offline   Mit Zitat antworten
Alt 26.08.2013, 13:36   #157
wird fürs Posten bezahlt.
 
Benutzerbild von Tobi2694
 
Registriert seit: 03.12.2012
Ort: NRW
Beiträge: 5.137
Standard AW: Programmieren

Eigentlich wollte ich Programmieren lernen. Aber mir ist das jetzt schon zu hoch.
Vielleicht ist es doch besser wenn ich English übe, sollte einfacher sein.
Tobi2694 ist offline   Mit Zitat antworten
Alt 26.08.2013, 13:41   #158
SOLO ASK!
 
Benutzerbild von Lask Fan
 
Registriert seit: 04.09.2009
Ort: Österreich <3
Beiträge: 6.658
Standard AW: Programmieren

Es ist eigentlich ganz leicht, ich kenn da ein YT Tutorial der erklärt das sehr Anfänger freundlich. Ich brauchs aber nicht weil ich das in der Schule lerne ^^


Java Tutorial 1 - Installation vom JDK und eclipse [GERMAN] - YouTube


btw:

Wie findet ihr mein Programm? Es soll Ganzzahlen in Binär umrechnen. Ist wohl nicht die Sauberste Art oder die effektivste aber es funktioniert.
Und lasst euch nicht von den Methoden Namen verwirren ^^

Code:
public class Binary{
    public static void main(String[] args){
        int[] arrayFull = setBinaryArray(setArray(), setDezi());
        int[] arrayBinary = setBinary(arrayFull);
        for(int i = 0; i < arrayBinary.length; i++){
            Out.print(arrayBinary[i]);
        }
    }
    static int setDezi(){
        Out.print("Geben Sie eine ganze Zahl ein:  ");
        int x = In.readInt();
        return x;
    }
    static int[] setArray(){
        int[] array = new int[32];
        for(int i = 0; i < array.length; i++){
            array[i] = 0;
        }
        return array;
    }
    static int[] setBinaryArray(int[] arrayFull, int dezi){
        for(int i = 0; i < arrayFull.length; i++){
            arrayFull[i] = dezi%2;
            dezi /= 2;
        }
        return arrayFull;
    }
    static int[] setBinary(int[] arrayReverse){
        int i = 0;
        int j = arrayReverse.length-1;
        int help = 0;
        while(i <= arrayReverse.length/2){
            help = arrayReverse[i];
            arrayReverse[i] = arrayReverse[j];
            arrayReverse[j] = help;
            i++;
            j--;
        }
        return arrayReverse;
    }
}

Geändert von Lask Fan (26.08.2013 um 13:48 Uhr).
Lask Fan ist offline   Mit Zitat antworten
Alt 26.08.2013, 17:33   #159
Stammspieler
 
Benutzerbild von thorsten212
 
Registriert seit: 27.06.2009
Ort: NRW
Beiträge: 5.393
Standard AW: Programmieren

Du erwartest jetzt wirklich dass ich mir sowas in meinen Ferien angucke?
apollox gefällt dieser Beitrag.
thorsten212 ist offline   Mit Zitat antworten
Alt 26.08.2013, 18:12   #160
SOLO ASK!
 
Benutzerbild von Lask Fan
 
Registriert seit: 04.09.2009
Ort: Österreich <3
Beiträge: 6.658
Standard AW: Programmieren

Ich hab auch Ferien
Lask Fan ist offline   Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
Pingbacks sind an
Refbacks sind an


Anzeige
PS4-Turnier Dezember 2017 (1. Runde)
xKaroffelx
3:0
jonnydrama
Jaap31
4:2
DerCSL
kickersfreak23
9:4
Aroq
St.Andrew
2:5
CHLO666
Geelock81
4:0
Coske
Skuderian
0:4
cheax81
kaschi
2:3
Tommy93
twienron
0:3
GENClik60
duda
3:1
Hatirohanzo
NiGo
0:4
Asunis
makanter
3:2
TenjuRazer
Phil_4986
0:5
Marijuth
BlancoSGMS
1:3
xela0991
Deadline: 07.12.2017 um 23:59 Uhr
Freilose
D89
 
marcoyu
levs
 
PS4-Turnier Dezember 2017 (Achtelfinale)
D89
-:-
xKaroffelx
Jaap31
-:-
kickersfreak23
CHLO666
-:-
Geelock81
cheax81
-:-
Tommy93
marcoyu
-:-
GENClik60
duda
-:-
Asunis
makanter
-:-
Marijuth
levs
-:-
xela0991
Deadline: 12.12.2017 um 23:59 Uhr
Xbox-Turnier Dezember 2017 (Achtelfinale)
Domi8989
0:1
PaLiT
MahatmaGoennDir
1:3
Pekah
boozinsky
3:2
LudiiHD
shuuu
2:3
Shortsman
The Champion
5:0
otteck
Palästina
7:2
Pseudo80
nico1979
2:3
itzEZYY
Deadline: 07.12.2017 um 23:59 Uhr
Freilos: ThisIsBasher
Xbox-Turnier Dezember 2017 (Viertelfinale)
PaLiT
-:-
Pekah
boozinsky
-:-
Shortsman
ThisIsBasher
-:-
The Champion
Palästina
-:-
itzEZYY
Deadline: 12.12.2017 um 23:59 Uhr
PC-Turnier Dezember 2017 (Achtelfinale)
FabseN
1:2
triggahippie
Sehschlitz
2:1
Nikolinho
Daniel96
3:0
gooood2cu
Tonikroos1987
4:1
BorussenZwerg
hardtrain82
3:0
LIKEFIFA
BVBSirus
3:1
Skuderian
Deadline: 07.12.2017 um 23:59 Uhr
Freilose
El jugador
 
unleashed1988
PC-Turnier Dezember 2017 (Viertelfinale)
triggahippie
-:-
El jugador
Sehschlitz
-:-
Daniel96
Tonikroos1987
-:-
hardtrain82
BVBSirus
-:-
unleashed1988
Deadline: 12.12.2017 um 23:59 Uhr

Alle Zeitangaben in WEZ +1. Es ist jetzt 16:32 Uhr.

Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 3.6.0
Powered by vBCMS® 1.2.5 ©2002 - 2017 vbdesigns.de