1. Dashboard
  2. Forum
    1. Unerledigte Themen
  3. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team-Mitglieder
    4. Trophäen
    5. Mitgliedersuche
  4. Tutorial Bereich
  • Anmelden
  • Registrieren
  • Suche
Dieses Thema
  • Alles
  • Dieses Thema
  • Dieses Forum
  • Seiten
  • Forum
  • Lexikon
  • Erweiterte Suche
  1. Informatik Forum
  2. Webmaster & Internet
  3. Entwicklung

größter gemeinsamer teiler

  • Ivy
  • 16. November 2006 um 13:16
  • Unerledigt
  • Ivy
    22
    Ivy
    Mitglied
    Reaktionen
    35
    Punkte
    4.920
    Beiträge
    889
    • 16. November 2006 um 13:16
    • #1

    #include <iostream>
    using namespace std;

    int a, b, erg;

    int ggt(int a, int b);

    int ggt (int a, int b){

    if (b==0)
    return a;

    else

    return ggt(b, a%b);

    }

    int main(){

    cout << "Geben Sie die Werte fuer a und b ein" << endl;
    cin >> a;
    cin >> b;


    erg = ggt(b, a%b);

    cout << erg << endl;
    }


    i will eigentlich nur wissen, was das fettgedruckte b da macht. bzw. kann ma wer erklären, wieso da des b drin is?

    Wer FU sagt, muss auch T sagen

  • sauzachn
    17
    sauzachn
    Mitglied
    Reaktionen
    51
    Punkte
    3.101
    Beiträge
    606
    • 16. November 2006 um 13:20
    • #2

    Auf http://www.inf.fh-flensburg.de/lang/krypto/algo/euklid.htm gibts das schön erklärt.

    Dipper dipper dii dipper dii dipper dii duuu

  • Ivy
    22
    Ivy
    Mitglied
    Reaktionen
    35
    Punkte
    4.920
    Beiträge
    889
    • 16. November 2006 um 13:22
    • #3

    ma des is dort so kompliziert....

    Wer FU sagt, muss auch T sagen

  • Plantschkuh!
    24
    Plantschkuh!
    Mitglied
    Reaktionen
    163
    Punkte
    6.173
    Beiträge
    1.181
    • 16. November 2006 um 14:45
    • #4
    Zitat von Ivy

    i will eigentlich nur wissen, was das fettgedruckte b da macht. bzw. kann ma wer erklären, wieso da des b drin is?


    Die Funktion ggt soll den größten gemeinsamen Teiler von zwei Zahlen berechnen. Zwei Zahlen sind zwei Inputs, deswegen hat die Funktion zwei Argumente. Beantwortet das deine Frage?

    *plantsch*

  • sauzachn
    17
    sauzachn
    Mitglied
    Reaktionen
    51
    Punkte
    3.101
    Beiträge
    606
    • 16. November 2006 um 17:26
    • #5
    Zitat von Ivy

    ma des is dort so kompliziert....


    Dann probier's doch einfach mal mit 2 Zahlen aus, vielleicht gehts dann leichter.

    Dipper dipper dii dipper dii dipper dii duuu

  • Vevusio
    6
    Vevusio
    Mitglied
    Reaktionen
    1
    Punkte
    371
    Beiträge
    71
    • 16. November 2006 um 22:09
    • #6

    das b wird einfach als parameter übergeben... mehr ist das nicht und mehr macht es auch nicht

    die funktion selbst ist rekursiv, ruft sich also selbst immer wieder auf, wieso man auf die art den größten gemeinsamen teiler ermitteln kann musst du dir halt überlegen oder auf dem geposteten link durchlesen, aber wenn dich deine neugier nicht gerade umbringt.... würd ich das einfach so hinnehmen da rekursion wenn man mit programmieren anfängt erstmal nicht so wichtig ist, man kann es einfach mal hinnehmen "aha ja die funktion ruft sich selbst auf, das ist rekursion"

    [FONT=Arial, Helvetica, sans-serif](\__/) [/FONT]
    [FONT=Arial, Helvetica, sans-serif] (='.'=) [/FONT]This is Bunny. Copy Bunny into your signature to help
    [FONT=Arial, Helvetica, sans-serif](")_(")[/FONT] him on his way to world domination.

  • Homer
    10
    Homer
    Mitglied
    Reaktionen
    9
    Punkte
    1.079
    Beiträge
    210
    • 16. November 2006 um 22:16
    • #7

    was viell noch zu erwähnen wäre, ist, dass eine rekursive funktion natürlich auch eine ausstiegbedingung haben muss...ansonsten würde die funktion ewig sich selbst aufrufen!
    (in dem bsp b==0)

    "ich bin so kluk. K-L-U-K"
    (Homer Jay Simpson)

  • Vevusio
    6
    Vevusio
    Mitglied
    Reaktionen
    1
    Punkte
    371
    Beiträge
    71
    • 16. November 2006 um 22:32
    • #8

    achja genau, 2 sachen noch

    1)

    int a, b, erg; <- man sollte keine globalen variablen verwenden, wenn man mehr als eine cpp file hat sind die dann unbekannt in den anderen files, man muss sich mit extern herumplagen, und es verursacht alles in allem nur probleme, wenn schon würde ich wenn ich unbedingt globale variablen in einem größeren projekt brauche eine abstrakte klasse erstellen und die variablen + helferfunktionen static machen aber so ist es jedenfalls schlecht

    2)

    Code
    int ggt(int a, int b);
    
    
    int ggt (int a, int b){
    ...
    }

    wenn du die funktion schon vor der main definierst dann brauchst du nicht zuerst eine deklaration und dann die definition zu schreiben sondern du kannst es gleich in einem machen also blos

    Code
    int ggt (int a, int b){
     ...
     }

    diese unterteilung in definition - deklaration macht man wenn man die funktionen in .h files deklariert und sie in cpp files definiert bzw vor der main in der cpp deklariert und nach der main definiert (wenn man kleine programme hat die nur aus ein paar funktionen bestehen)

    [FONT=Arial, Helvetica, sans-serif](\__/) [/FONT]
    [FONT=Arial, Helvetica, sans-serif] (='.'=) [/FONT]This is Bunny. Copy Bunny into your signature to help
    [FONT=Arial, Helvetica, sans-serif](")_(")[/FONT] him on his way to world domination.

  • Maximilian Rupp 27. Dezember 2024 um 12:05

    Hat das Thema aus dem Forum Programmieren nach Entwicklung verschoben.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!

Benutzerkonto erstellen Anmelden

Benutzer online in diesem Thema

  • 1 Besucher

Rechtliches

Impressum

Datenschutzerklärung