anfängerfragen zu übungen (u.a. mod)

NetzUnity und Informatik-forum wurden zusammengelegt. Eine entsprechende Ankündigung wird demnächst noch folgen. Für 2025 ist hier einiges geplant! Bei Fragen bitte per DM an Maximilian Rupp wenden.
  • Hi,

    hoffe, mein problem passt hierher, weils eigentlich was eprog-technisches ist. aber ich machs an der hu, also c++ und somit denk ich, bin ich hier erfolgreicher.

    und zwar haben wir u.a. folgende übungen zu lösen:

    Zitat


    1) Schreiben Sie ein Programm, das zwei Zahlen m und n einliest und die n-te Ziffer der Zahl m ausgibt
    z.B. m=1358 n=2 Ausgabe: 5


    2) Schreiben Sie ein Programm, das eine dreistellige Zahl einliest und mit Hilfe der Ziffernsumme überprüft, ob die eingegebene Zahl durch 3 teilbar ist.


    3) Schreiben Sie ein Programm, das eine dreistellige Zahl einliest und die Zahl ausgibt, die durch Umkehrung der Ziffernfolge entsteht. (Also z.B.: Eingabe: 123 Ausgabe: 321)

    ich denke, vom ansatz her sind alle ähnlich zu lösen. aber genau der ansatz fehlt mir. uns wurde gesagt, dass sich alle mit dem mod bzw. % lösen lassen, wo mir der knoten aber nicht aufgeht, was der im ersten und dritten beispiel bewirken soll.
    beim 2. beispiel weiß ich nicht, wie ich programmiertechnisch auf die ziffernsumme/quersumme kommen soll. ich habs mal testhalber zum üben so programmiert:

    ist zwar nicht genau das, was verlangt wurde, aber es hätte meiner meinung nach trotzdem ein richtiges ergebnis liefern sollen. bei mir gibt er jedoch ständig "Diese Zahl ist nicht durch 3 teilbar." aus. selbst bei zahlen, die ohne rest durch 3 teilbar wären. was mach ich falsch?

    vielen dank im voraus, sollte sich wer erbarmen (können) ;)

    lg,
    tri

    Ich bin verantwortlich für das, was ich sage,
    nicht für das, was irgendwer versteht..

  • hmmmm
    in der zeile mit :
    if (b = 0)
    machst du eine zuweisung, keinen vergleich!!!
    vergleich wäre:
    if (b == 0)
    ->
    du weist in der if-abfrage b den wert 0 zu und überprüfst dann, ob der ausdruck true ist.
    0 ist aber gleichbedeutend mit false -> der else zweig wird ausgeführt, egal welchen wert b nach der modulo operation hatte.

    mon

  • aaaaaaaaaah!!! :idea: stimmt, war zu sehr in mathematik drin - so isses eh klar, jetzt funktionierts auch... danke dir!

    hoffe, meine denksperre zu den ersten beispielen ist auch so n mini-ding, dass sich schnell aufklären läßt..

    Ich bin verantwortlich für das, was ich sage,
    nicht für das, was irgendwer versteht..

  • wobei das natürlich nicht die anforderung der quersumme erfüllt -> probiers vielleicht mit EDIT: bla bla bla bla bla
    (mon == drunk) -> true
    // !!!!!!! nicht zu verwechseln mit: !!!!!!!!!
    mon = drunk -> das war vor ein paar stunden der fall

  • Ich hab das 2. und 3. Bsp, aber das 1. hab ich auch nicht.
    Was mir schwierigkeiten bereitet ist die n-te Stelle beim 1. Bsp, das 2. und 3. war für mich persönlich etwas einfacher zu lösen (nur 3 stellige Ziffernfolge), aber dafür hab ich auch eine kleinen Tipp vom UE Assistenten gebraucht.

    Also beim 2. Beispiel musst ja nur 3 Stellen in die umgekehrte Reihenfolge ausgeben. Du bekommst 3 Stellen getrennt in einzelnen Variablen, indem du die eingegebene Zahl in Einer Zehner Hunderter getrennt ausgibst mit Hilfe von modulo und der division durch (10, 100)
    Das 3. Beispiel funktioniert genauso, ist nur eine Erweiterung des 2. Beispiels.
    Brauchst die Stellen zusammen zu addieren und überprüfen ob die Zahl durch 3 teilbar ist.

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

Jetzt mitmachen!

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