1. Weiterleitung zu NetzLiving.de
  2. Forum
    1. Unerledigte Themen
  3. zum neuen Forum
  • Anmelden
  • Suche
Dieses Thema
  • Alles
  • Dieses Thema
  • Dieses Forum
  • Seiten
  • Forum
  • Erweiterte Suche
  1. Informatik Forum
  2. Webmaster & Internet
  3. Entwicklung

C++ Fragen bräuchte eure Hilfe!

    • Frage
  • Heavy
  • 27. November 2003 um 17:31
  • Unerledigt
Hallo zusammen,

das Informatik-Forum geht in den Archivmodus, genaue Informationen kann man der entsprechenden Ankündigung entnehmen. Als Dankeschön für die Treue bekommt man von uns einen Gutscheincode (informatikforum30) womit man bei netzliving.de 30% auf das erste Jahr sparen kann. (Genaue Infos sind ebenfalls in der Ankündigung)

Vielen Dank für die Treue und das Verständnis!
  • Heavy
    Punkte
    3.507
    Beiträge
    664
    • 27. November 2003 um 17:31
    • #1

    Ich hätte Fragen bezgl Frage 6 und 10:

    http://www.pri.univie.ac.at/~itep/ws0203/t06.pdf


    Ich weiss einfach nicht wie sie zu diesen Ergebnissen kommen...

    Bei Frage 6 Gruppe 1 versteh ich die For-Anweisung nicht.
    Wo ist die Initialisierung und der Testteil?
    Bei Gruppe 2 komm ich nicht auf das richtige Ergebnis...


    Bei Frage 10 komm ich auch nicht auf den grünen Zweig...
    Wozu braucht man die return Anweisungen in den void Funktionen?
    Auch hier komm ich nicht auf das richtige Ergebnis. :(

  • Arthur Dent
    Punkte
    372
    Beiträge
    73
    • 27. November 2003 um 19:39
    • #2

    ad 6 (1):
    Die Initialisierung kann (wie auch die anderen beiden Teile) weggelassen werden. Der Testteil ist a (das entspricht a != 0)

    ad 6 (2):
    Die Schleife macht im Prinzip nichts anderes als die Quersumme des Integers zu berechnen. Die ist wie unschwer zu erkennen 9. Das a wird nie verändert und bleibt daher 234.

    ad 10:
    return statements brauchst du nicht zwingend in einer Funktion, die void zurückgibt. Es erfüllt dann einfach den Zweck, dass die Funktion an dieser Stelle beendet wird und an die Stelle im Programm zurückgesprungen, an der die Funktion aufgerufen wurde.

  • Heavy
    Punkte
    3.507
    Beiträge
    664
    • 27. November 2003 um 22:38
    • #3

    Ok, danke! :)


    Hmm, bei bsp 10 komm ich aber immer noch nicht ans richtige Ergebnis...
    Kann mir jemand erklären wie das Resultat zustande kommt? :confused:

    Also zuerst i=2, Parameterübergabe an int x, 2 ist nicht kleiner 2 daher komm ich zur nächsten Funktion f(x-1), 2 wird ausgegeben....aber es steht nicht einmal ein 2er im Ergebnis...

    Wo liegt mein Denkfehler?

  • KarlMurx
    Punkte
    35
    Beiträge
    7
    • 28. November 2003 um 10:45
    • #4

    Also was ich auf die schnelle sehe wird bei bsp. 10 - Gruppe1.
    Die Funktion zuerst mit 2 aufgerufen, daraus folgt der rekursive Aufruf mit
    x-1 also x=1 --> es wird "jetzt" ausgegeben, das return ist dazu da, damit der Teil nach der if - Bedingung nicht ausgeführt wird, sonst hättest eine nette Endlosrekursion.
    Also gehen wir um einen Rekursionsschritt zurück, also x=2 und die Ausführung ist vor der Zeile
    cout << 2*x; --> 4 wird ausgegeben.
    Anschliesend wird das Unterprogram beendet.
    Jetzt kommt noch ein Aufruf aus der for - Schleife (i=1) --> im Unterprogram ist die if - Bedingung wahr, es wird ein weiteres mal jetzt ausgegeben und beendet (return).

    Bei Gruppe 2 ist es eigentlich genau das selbe Schema, nur das der rekursive Aufruf und damit halt der Programmablauf etwas verschoben ist.

  • Zentor
    Punkte
    2.710
    Beiträge
    506
    • 28. November 2003 um 22:59
    • #5

    Ich kapier dafür nicht die Antwort zu Frage 6 von Gruppe 1,
    die forschleife wird nicht ausgeführt und daher müsste die Ausgabe doch
    0123 sein oder?
    mfg Zentor

  • d@ySleeper
    Gast
    • 2. Dezember 2003 um 14:26
    • #6

    natürlich wird die schleife ausgeführt
    a hat doch den wert 123, daher ist auch die schliefenabbruchbedingung nicht erfüllt ... das ist erst der fall wenn a nimma positiv ist.
    lg


    Zitat von Zentor

    Ich kapier dafür nicht die Antwort zu Frage 6 von Gruppe 1,
    die forschleife wird nicht ausgeführt und daher müsste die Ausgabe doch
    0123 sein oder?
    mfg Zentor

  • Zentor
    Punkte
    2.710
    Beiträge
    506
    • 2. Dezember 2003 um 15:47
    • #7

    Oh, ok, denkfehler, hab fälschlicher Weise gedacht
    1 = true
    alles andere false...
    mfg Zentor

  • Maximilian Rupp 27. Dezember 2024 um 12:08

    Hat das Thema aus dem Forum Programmieren nach Entwicklung verschoben.

  1. Datenschutzerklärung
  2. Impressum