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
  • Deutsch
  • Anmelden
  • Registrieren
  • Suche
Dieses Thema
  1. Informatik Forum
  2. Webmaster & Internet
  3. Entwicklung

C++ Fragen bräuchte eure Hilfe!

    • Frage
  • Heavy
  • 27. November 2003 um 17:31
  • Unerledigt
  • Heavy
    18
    Heavy
    Mitglied
    Reaktionen
    2
    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. :frowning_face:

    Religion ist ein Glaube,
    Wissenschaft als Teilgebiet ist ein Glaube,
    die Wahrheit liegt in der Gegenwart des Menschen.

  • Arthur Dent
    6
    Arthur Dent
    Mitglied
    Reaktionen
    2
    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
    18
    Heavy
    Mitglied
    Reaktionen
    2
    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?

    Religion ist ein Glaube,
    Wissenschaft als Teilgebiet ist ein Glaube,
    die Wahrheit liegt in der Gegenwart des Menschen.

  • KarlMurx
    2
    KarlMurx
    Mitglied
    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
    16
    Zentor
    Mitglied
    Reaktionen
    5
    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
    1
    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
    16
    Zentor
    Mitglied
    Reaktionen
    5
    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.

Jetzt mitmachen!

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

Benutzerkonto erstellen Anmelden

Rechtliches

Impressum

Datenschutzerklärung

  • Alles
  • Dieses Thema
  • Dieses Forum
  • Seiten
  • Forum
  • Lexikon
  • Erweiterte Suche
  • Deutsch
  • English
Zitat speichern